...

目的関数

by user

on
Category: Documents
1

views

Report

Comments

Transcript

目的関数
Takanori Watanabe
Penn Med, Radiology
自己紹介 (Who am I?)
• 氏名:渡辺貴則(わたなべ たかのり)
• 所属:Penn Medicine Postdoctoral Fellow
• 所属(前):University of Michigan、BS・MS・PhD
電気工学・コンピューターサイエンス専攻
自己紹介 (Who am I?)
専門:Machine Learning + NeuroImaging
• MLを脳画像に応用し、脳の病気のメカニズムを解析
– 精神病(Schizophrenia・PTSD)
– 神経発達障害(ADHD・Autism)
– 脳損傷(Traumatic Brain Injury from Concussion)
ただいまの研究テーマ・興味
大まかな研究興味
脳の世界 (physical)と精神の世界(mental)の間に
埋もれたパターンや、繋がりについて考えること
脳の物理的な世界
精神の世界
記憶・心・感情・人格
psychiatric condition
脳の支障が、精神に与える影響はどんなものか・・
精神病が脳の中で、測定可能なシグナルとして現れるの
かどうか・・
Personal History
0歳 2歳
14歳 15歳
18歳
去年の
夏からPenn
名古屋
愛知の近所の
名古屋
インターナショナル
中学校
スクール
(9月ー3月)
デトロイト・ミシガン州
ミシガン大学 (Ann Arbor)
ではでは、はじめましょう
このGoogle Trendのグラフは何でしょう?
2007年
https://www.google.com/trends/
2011年
2015年
このGoogle Trendのグラフは何でしょう?
2007年
https://www.google.com/trends/
2011年
2015年
このGoogle Trendのグラフは何でしょう?
2007年
https://www.google.com/trends/
2011年
2015年
このGoogle Trendのグラフは何でしょう?
2005年
https://www.google.com/trends/
2010年
2015年
何が言いたいかというと・・・
ミシガン大学院
マシーン・ラーニング
クラス生徒数
300
今マシーン・ラーニング
がアツイ!!!
250
200
150
100
50
0
2011 2013 2016
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
適用分野はたくさん!
• データから「有用な」パターンを掘り出し、
判断基準を抽出
• データがあれば、どこでも使える
文字認識
音声認識
スパム判定
医療診断
金融
商品推薦
顔認識
ネットワーク
解析
ソーシャル・ネットワーク
「コミュニティー」検出
機械学習の進化 – ゲーム編
高いほど良い
http://blog.livedoor.jp/yss_fpga/archives/53897129.html
2016年は??
http://www.bloomberg.com/news/articles/2016-03-12/google-s-software-wins-tournament-against-go-game-champion
なんで今マシーン・ラーニングが
注目されてるの?
インターネットの普及でデータがいっぱい!!
ビッグ・データと機械学習
• 巨大なデータがあらゆる分野で
恐ろしいペースで生まれている
一分間に生産される
データ量
(2015年時)
機械学習では
データが大事!
https://www.domo.com/blog/2015/08/data-never-sleeps-3-0/
並列計算 技術の向上とGPU計算
• 直列計算 (Serial Computing)
データ
• 並列計算 (Parallel Computing)
MapReduce 手法
データ
CPU
CPU/GPU
クラウドサービス
ディープ・ラーニング(DL)の爆発的な成功例
音声認識のミス率 (Speech Recognition)
10年停滞してた精度が
一気に30%向上
今のGoogle・Microsoftなどの
音声認識プログラムはDLによるもの
最新のディープ・ラーニングのできること
かなり具体的な質問に答えれる
http://cvlab.postech.ac.kr/research/dppnet/
グーグルの学習済みのディープ・ラーニング
モデルに好きな画像をアップロードもできる
http://deepdreamgenerator.com/
ただ、注意が必要
• やつらはとても恐ろしい「学習モデル」を返してくる
下の例は、まだまだかわいい方
• 演者みたいなチキン・ハートは、「Deep Dream」と
いうフレーズをググらないように
ディープ・ラーニングを使ったAI競争
機械学習・データサイエンス – 関連分野
わたなべ・タカノリの個人的見解
最適化問題
プログラミング
(Optimization Theory)
(Computer Science)
線型代数学
データベース管理
(Linear Algebra)
確立・統計論
(Probability Theory
and Statistics)
(Database Management)
プレゼン方式: 「数式よりも直感」
• 初めて「マシーン・ラーニング」を聞いた人向け
• 数式よりも、イメージを重視
パワポで数式打つのがめんどいから[Latex派]
直感・Intuitionをまず磨かないと、数式の細かい内容に溺れるだけから
• できるだけ図式に重点
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Network Data, Social Network, Connectomics, ADHD,Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Network Data, Social Network, Connectomics, ADHD,Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
マシーン・ラーニングって
裏でなにやってんの?
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Network Data, Social Network, Connectomics, ADHD,Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
たかのりって
裏でなにやってんの?
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Connectomes, Network Data, ADHD, Schizophrenia, Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
人工ニューラルネットワークが再び
アツイ! 一体どうして??
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Connectomes, Network Data, ADHD, Schizophrenia, Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
マシーン・ラーニングって
裏でなにやってんの?
機械学習の厳格な定義
トム・ミッチェル教授
(カーネギー・メロン大)
「コンピュータプログラムが、ある種の
タスクTと評価尺度Pにおいて、経験Eから学
習するとは、タスクTにおけるその性能をP
によって評価した際に、経験Eによって
それが改善されている場合である」
なるほど、わからん
What I feel like I just read
*ドラえもん10巻 (てんとう虫コミックス) ISBN-10: 4091400108
本日の目標
ミッチェル教授の機械学習の定義が一体
どういう意味なのかみんなで
「人間学習」しよう
「コンピュータプログラムが、ある種の
タスクTと評価尺度Pにおいて、経験Eから学
習するとは、タスクTにおけるその性能をP
によって評価した際に、経験Eによって
それが改善されている場合である」
そもそも「学習」の定義って何?
Herbert Simon
Learning is any process by which a system
improves performance from experience
Tom Mitchell
コンピュータプログラムが、ある種のタスクTと
評価尺度Pにおいて、経験Eから学習するとは・・
タスクTにおけるその性能をPによって評価した際に、経験E
によってそれが改善されている場合
T (タスク) = やろうとしていること(例:音声認識)
E (経験) = データ (例:音声データ)
P (性能・評価尺度) = 正解率
つまり・・・(Informally)
タスクTにおけるその性能をPによって評価した際に、
経験Eによってそれが改善されている場合
コンピューターにデータ(E)を見せて
タスク(T)の性能(P)を上げる
T (タスク) = やりたいこと・目的
E (経験) = データ
P (性能) = 正解率、損失関数、目的関数
スパム・フィルター
T (タスク) = メールがスパムか識別
E (経験) = スパムデータ(人に認定され
たもの[Amazon Crowd-sourcing])
P (性能) = 正解率
つまり・・・(Informally)
タスクTにおけるその性能をPによって評価した際に、
経験Eによってそれが改善されている場合
コンピューターにデータ(E)を見せて
タスク(T)の性能(P)を上げる
T (タスク) = やりたいこと・目的
E (経験) = データ
P (性能) = 正解率、損失関数、目的関数
チェッカー
T (タスク) = チェッカーゲーム
E (経験) = 自動ゲームモード
P (性能) = 勝率
機械学習を図に表すと・・・
• 経験(データ)を学習して、賢くなるプログラム
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
機械学習を図に表すと・・・
• 経験(データ)を学習して、賢くなるプログラム
– データの中から知識・ルールを自動獲得する
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
機械学習を図に表すと・・・
• 経験(データ)を学習して、賢くなるプログラム
– データの中から知識・ルールを自動獲得する
– 未知のデータに「学習した」知識を応用
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
おや、こいつは
見たことがないぞ?
未知データ
(Testing Data)
分類ルール
機械学習を図に表すと・・・
• 経験(データ)を学習して、賢くなるプログラム
– データの中から知識・ルールを自動獲得する
– 未知のデータに「学習した」知識を応用
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
「学習」が成功してれば
識別可能
未知データ
(Testing Data)
*写真はイメージです。 実際のマシーン・ラーニングと異なる場合がありますのでご注意ください
教師あり vs. 教師なし学習
教師あり学習(Supervised Learning)
• データが入力と出力 のぺアからなる
出力 (output) = 予測すべきものの正解
教師なし学習(Unsupervised Learning)
• データは入力のみ
入力(input) だけを見て、なんらかのパターンを検出
酸度
入力 (input)
問題設定(教師あり)
出力・正解
(output)
入力 = ワインの酸度と塩化レベル
出力 = ワインの種類
白ワイン
赤ワイン
目的例: 赤ワイン VS 白ワイン
の分類ルールを学習
Classification Problem
分類境界線
塩化レベル
教師あり vs. 教師なし学習
教師あり学習(Supervised Learning)
• データが入力と出力 のぺアからなる
出力 (output) = 予測すべきものの正解
教師なし学習(Unsupervised Learning)
• データは入力のみ
入力(input) だけを見て、なんらかのパターンを検出
酸度
入力 (input)
問題設定(教師なし)
入力 = ワインの酸度と塩化レベル
出力 = ワインの種類
???
目的例:入力だけを見て、ワイン
の種類をグループ分けしよう
塩化レベル
教師あり vs. 教師なし学習
教師あり学習(Supervised Learning)
• データが入力と出力 のぺアからなる
出力 (output) = 予測すべきものの正解
教師なし学習(Unsupervised Learning)
• データは入力のみ
商品推薦とか
に応用できる
入力(input) だけを見て、なんらかのパターンを検出
酸度
問題設定(教師なし)
入力 = ワインの酸度と塩化レベル
出力 = ワインの種類
入力 (input)
これが好きな人には
これをオススメ
フルーティ
辛口
濃厚
目的例:入力だけを見て、ワイン
の種類をグループ分けしよう
Clustering Problem
塩化レベル
代表的な教師あり学習
回帰分析 (regression analysis)
• 出力が数値 (continuous)
例:気温=24.3度、体脂肪率=15.3%、糖分=0.321グラム、Fractional anisotropy=0.821
クラス分類 (classification problem)
• 出力が個別的・カテゴリー分けされている (discrete)
例:病状=ADHD or 正常、 Digit=0,1,2,3,...,10、 弁当の売り上げ=0個、1個、2個・・・
代表的な教師あり学習
回帰分析 (regression analysis)
• 出力が数値 (continuous)
例:気温=24.3度、体脂肪率=15.3%、糖分=0.321グラム、Fractional anisotropy=0.821
学習された
「予測線」
未来株価の予測
出力=株価
Stock Price
入力=日付
https://www.google.com/finance
*写真はイメージです。実際は日付けだけじゃなく、株価に関する全情報を入力します。
代表的な教師あり学習
クラス分類 (classification problem)
• 出力が個別的・カテゴリー分けされている (discrete)
例:病状=ADHD or 正常、 Digit=0,1,2,3,...,10、 弁当の売り上げ=0個、1個、2個・・・
物体認識・Object Recognition
学習データ(Training data)
車
バイク
未知データ
(Test data)
車? バイク?
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
この中で一体何が・・・?
分類ルール
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
この中で一体何が・・・?
1. 特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
分類ルール
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
この中で一体何が・・・?
1. 特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
データの「特徴」を
どう数値で表すか
数字にしないとコンピューターが読み込めないしね・・
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
分類ルール
この中で一体何が・・・?
1. 特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
どうやって、評価尺度・
性能を「最高」にするか
機械学習の2つの最重要ファクター
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
この中で一体何が・・・?
1. 特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
どっちの分類ルールの
方が「評価」高い?
(上 か下どっち?)
分類ルール
機械学習の中身
1.特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
機械学習の中身
1.特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
特徴抽出(Feature Extraction)
• データから「特徴」を抽出し、ベクトル(数値)で表す
– 「特徴」の候補はたくさん!!!
– どの「特徴」が有用なのかは、目的による・・・
例:スパム処理のための、「Bag of words」
–
–
文章の特徴を表しそうな単語(特徴語)を何個か事前に決める
単語の頻度をカウントし、文書をベクトルで表現
特徴 ベクトル
今だけ
儲かる
𝒙=
楽に
出会い系
⋮
ダイエット
=
3
2
2
0
⋮
1
特徴抽出後のデータ形式・フォーマット
• 教師なし学習の場合
• 教師あり学習の場合
応用例
ワインの特徴からテイスト分類
特徴ベクトル・説明変数
ワイン1
ワイン2
学習データ
(行の数=サンプル数)
ワイン3
⋮
⋮
特徴抽出後のデータ形式・フォーマット
• 教師なし学習の場合
• 教師あり学習の場合
応用例
ワインの特徴から評価を推測
特徴ベクトル・説明変数
興味ある方は、こちらでデータを
ダウンロード!! (or send me an email)
ワイン1
ワイン2
学習データ
(行の数=サンプル数)
ワイン3
⋮
https://archive.ics.uci.edu/ml/datasets/Wine+Quality
⋮
目的変数
どうやって特徴抽出するの?
特徴抽出その一:人の労力を使う
(手法抽出・hand-crafted feature)
• 目的:「猫・犬・マグカップ・帽子」を分類!
どんな特徴がいいかな?
特徴ベクトル
学習データ
𝑥=
ひげある?
目ある?
しっぽある?
楕円形?
ハンドルある?
景色は外?
テーブルに乗ってる?
学習した機械
「たぶん犬だなこりゃ」
=
0
1
1
0
0
1
0
特徴抽出その一:人の労力を使う
(手法抽出・hand-crafted feature)
ひげある?
𝒙=
目ある?
⋮
テーブルの上?
• Human Errorの可能性が・・・
• Laborコスト的に・・・
• 特徴が特定の目的内容に依存しすぎ
– 例えば、「じゃあ今度はパンダかクジラかを学習してよ」
・・・となったら、特徴抽出をゼロからやり直し・・・
𝑥1
𝑥2
= ⋮
𝑥𝑑
特徴抽出その二:計測値をそのまま使う
例:写真で撮った画像をそのまま入力
• この方法は結構ポピュラー (有用な特徴が分からない場合とか)
注意点:特徴の数が多いと、学習が難しくなる
人間が見えるもの
特徴ベクトル
機械が見えるもの
𝒙=
23
151
32
⋮
12
=
ピクセル1
ピクセル2
ピクセル3
⋮
ピクセル𝑑
𝑑 =「次元数」
(dimension)
特徴抽出その三:特徴を学習
(Feature Learning)
アイディア
• あらかじめ重要な「特徴要素」が分からないなら、
入力データから学習しよう
• マシーン・ラーナーの職人技・研究領域!!
複雑なデータから何を取り出したいかを、数学的にモデリング
• ここ数年、ディープ・ラーニングによる革命が!!
詳細は後述
特徴学習の応用例:物体認識
(Object Recognition)
入力画像
ピクセル単位だと
分類が実にムズイ・・・
ピクセル2
バイク
非バイク
ピクセル1
特徴学習の応用例:物体認識
(Object Recognition)
入力画像
ハンドル
特徴学習
車輪
ぶ・分類しやすい・・・
ピクセル2
分類ルール
ハンドル
バイク
非バイク
ピクセル1
車輪
Computer Visionの特徴学習
(専門的な研究分野)
SIFT
HoG
Textons
Spin image
RIFT
GLOH
音声データからの特徴学習
(専門的な研究分野)
Spectrogram
Flux
MFCC
ZCR
Rolloff
特徴抽出においての注意点
目的に関係ない「特徴要素」はただのノイズ
• 全くデタラメな知識を「学習」させてしまう危険性があがる
応用分野の専門家の意見が重要となる(コラボが大事)
• 例: 神経医学者「自閉症では脳のこの部分に異常が起きるよ」
あらかじめ大切な「要素」が分からない場合
• 理想:学習データをできるだけ増やす…
• 現実:それができないケースが多い
例:医療データはサンプル数・被験者数が大変限られてる
• 研究領域:正則化(regularization)という手法を使う
僕の研究課題は、新しい正則化手法の開発がほとんど・・・
特徴抽出
まとめ
特徴抽出方法 (Feature extraction method)
• 機械学習において、常に活発な研究分野
T (タスク)
P (性能・評価尺度)
E (経験)
入力データ
入力データ
マシーン・ラーニング
(学習アルゴリズム)
特徴抽出
学習ルール
?
学習ルール
機械学習の中身
1.特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
入力
データ
特徴抽出
?
学習
ルール
MLの定義と最適化の関連性
コンピューターにデータ(E)を
見せて
タスク(T)の性能(P)を上げる
T (タスク) = 目的(例:音声認識)
E (経験) = データ (例:音声データ)
P (性能・評価尺度)
T (タスク)のP (性能)を最高にしたい!!
じゃあ、P (性能)を数値で表す必要がある
性能を数値化
コンピューターにこの
数値を最大化させる
では、どうやって性能(P)の数値化する?
目的関数の設定
目的関数
(Objective Function)
目的関数とは、データ(E)と機械モデル(T)
との間の一致、または不一致の尺度(P)
高いほどいい
低いほどいい
目的関数のチョイスは、タスク・目的の内容による
•
•
教師つき? 教師なし?
回帰問題? 分類問題?
クラスタリング問題?
目的関数の例:残差平方和
(Sum of Squared Error)
設定:気温で、アイスクリームの売り上げを予測
• 回帰問題 (Regression Problem)
下の予測線と測定値の一致度を数値でどう表す?
学習データの残差の二乗を全部足してみたらいかが?
アイスクリーム
売り上げ (円)
15000
7月21日の売り上げ
測定値=(22℃, 10821円)
残差(エラー)
予測値 − 測定値
回帰直線に
よる予測線
2月21日の売り上げ
測定値=(12℃, 6321円)
10000
5000
10
20
30
気温 (℃)
目的関数の例:残差平方和
(Sum of Squared Error)
線形最小二乗回帰 (Linear Least squares regression)
• 下の目的関数の最小させる予測線
残差平方和= 残差1
2
+ 残差2
2
+ ⋯ + 残差𝑛
アイスクリーム
売り上げ (円)
15000
回帰直線に
よる予測線
10000
5000
10
20
30
気温 (℃)
2
どうやって目的関数を最大化するの?
これを答えるには
目的関数をコントロールする
「モデル」
という概念を紹介する必要が
モデル = 機械の設定を調整するノブ
目的関数 f(w)
• インプット:学習データと、タスクのモデル (w)
• アウトプット:一致・不一致の尺度(モデルの性能)
学習データ
目的関数 f(w)
「モデル」のイメージ
機械の設定を調整するノブ
(Tuning Knob)
モデル (w)
性能 P
最適化とは
このノブをうまく
調整すること
さっきのLinear Least squaresの最適化過程
(うまくチューニングしようとしてる過程)
モデル (w)
さっきのLinear Least squaresの最適化過程
(うまくチューニングしようとしてる過程)
モデル (w)
モデルの種類
おおざっぱに分けると、2種類ある
線形モデル (Linear model)
非線形モデル (Nonlinear)
• 非常に解釈がしやすい
• モデルの解釈が困難
• 調整がムズカシイ
モデル解釈は、医療応用にはすごく大事
• 調整が楽
• シンプルだけど、強力
人工ネットワークが停滞した大きな理由
• 線形モデルで分類できないもの
も分類可能
ただし、これは調整が成功した場合のみ…
線形
非線形
非線形
(調整失敗)
線形モデルについてちょっとだけ・・・
(重みベクトルの紹介)
線形モデルと重みベクトル (weight vector)
線形モデルは、重みベクトル wで表現ができる
• 重みベクトルの次元数は、特徴ベクトルと同じ
• 線形モデルの「予測」= 特徴ベクトルと重みベクトルと
の間のドット積(dot product)
特徴ベクトル
𝒙=
𝑥1
𝑥2
⋮
𝑥𝑑
重みベクトル
𝒘=
𝑤1
𝑤2
⋮
𝑤𝑑
ドット積
𝑥1 𝑤1 + 𝑥2 𝑤2 + ⋯ + 𝑥𝑑 𝑤𝑑
特徴要素1の重み
特徴要素2の重み
特徴要素1の予測に対しての
重要性という解釈ができる
線形モデルと重みベクトル (weight vector)
線形モデルは、重みベクトル wで表現ができる
• 重みベクトルの次元数は、特徴ベクトルと同じ
• 線形モデルの「予測」= 特徴ベクトルと重みベクトルと
の間のドット積(dot product)
特徴ベクトル
𝒙=
𝑥1
𝑥2
⋮
𝑥𝑑
重みベクトル
𝒘=
𝑤1
𝑤2
⋮
𝑤𝑑
ドット積
𝑥1 𝑤1 + 𝑥2 𝑤2 + ⋯ + 𝑥𝑑 𝑤𝑑
特徴要素1の重み
分類問題の場合(例:病気vs正常)
分類問題の場合(例:病気vs正常)
ドット積 < しきい値 (threshold)
ドット積 > しきい値 (threshold)
特徴要素2の重み
予測 = 0 (正常)
予測 = 1 (病気)
どうやって、「モデル」を最適化させるの?
最適化アルゴリズム
(Optimization Algorithm)
最適化アルゴリズム一覧 (selected)
今日はこれに注目
•
•
•
•
ディープ・ラーニングの
大体はこれ使ってる
勾配降下法 (Gradient Descent)
確率的勾配降下法 (Stochastic Gradient Descent)
貪欲法 (Greedy algorithm)
制約付き最適化 (Constrained Optimization)
– Linear Program
– Quadratic Program
– Conic Program
• etc, etc・・・
勾配降下法 (Gradient Descent)
イメージ:ボールを目的関数の上に転ばせる
モデル初期値
目的関数
f(w)
モデル値
w
勾配降下法 (Gradient Descent)
イメージ:ボールを目的関数の上に転ばせる
モデル初期値
GO!
目的関数
f(w)
最小値 (minimum)
(チューニングされたマシーン)
モデル値
w
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute cradient at current value)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
微分・接線の傾きに
向かってステップ
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
微分・接線の傾きに
向かってステップ
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
微分・接線の傾きに
向かってステップ
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
微分・接線の傾きに
向かってステップ
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute gradient)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
現在値
微分・接線の傾きに
向かってステップ
実際は何がおこってるの?
1. モデル wに「初期値」を与える
2. 繰り返しこれを行う (反復法: Iterative method)
– 現在値で、微分(勾配)計算 (compute cradient at current value)
– 微分の方向に向かって「ステップ」を踏む
– 微分値が0になるポイントに辿り着いたら終了
モデル初期値
(initial value)
微分値が0!終了!
(接線の傾きが横向き)
現在値
*実際の終了条件は多少異なるが、ニュアンスを一緒
勾配降下方の実装はわりと簡単。でも…
目的関数がこんなんだった場合・・・
モデル初期値
この場合
初期値の設定が
非常に重要
ここだったら
全体最小値に辿り着けた
局所的最小値
(local minimum)
ここで停滞してしまう・・・
全体最小値
(global minimum)
こ、ここに辿り着きたかったのに・・・
目的関数の分類: 凸関数 vs非凸関数
(Convex vs Nonconvex function)
Convex
• 初期値はどこからでもOK
Nonconvex (OTL)
• 初期値設定に失敗すると、
GAME OVER
ディープネットの目的関数のイメージ
ど、どこにボール(初期値)
をおけばいいんだ・・・
初期値の設定の仕方が
最近までずっと分からなかった
最適化のまとめ
• タスク(T)の評価尺度を、目的関数で数値化
• 目的関数のインプットは、「学習データ」と「モデル w」
– モデル w = 機械の設定の調整ノブ
• 最適化アルゴリズムを実装し、機会の性能(P)を最適化
– 最適化の難しさは、目的関数が凸か非凸かによって強く影響される
機械学習の中身・まとめ
1. 特徴抽出
(Feature Extraction)
2. 最適化問題
(Optimization Problem)
機械学習システムの中身か!!
学習
データ
特徴
抽出
手で設計するか
学習するか
最適化
問題
目的関数の設定
(凸か非凸か?)
最適化アルゴリズムの実装
学習
ルール
機械学習・実用編
・・・っとその前に
Any questions?(ちょっと一息)
機械学習・実用編
回帰分析応用 – 医療編
Background
• 発達障害の代表例: 自閉症(Autism), ADHDなど
• よく見られる症状:コミュニケーション力の障害
– 心の理論能力の欠如 (Theory of mind)
• Linear regression(線形回帰)を応用して、脳皮質の重要な組織と
EQ(感情移入指数)の関連性を解析
Theory of mind
(心の理論)
他者の心理を行動から
想像や理解する能力
回帰分析応用 – 医療編
Linear regression(線形回帰)を応用して、脳皮質の重要な組
織とEQ(感情移入指数)の関連性を解析
• 解析結果:男女によってバラつきがあることが判明
ADHDと自閉症は男子の方が比率が圧倒的に高いこともあり、興味深い結果だ・・・
FA
EQ 感情移入指数
(Empathizing Quotient)
分類応用: 文字認識 (勾配下降方)
設定:{0, 1, …,9}の数字文字の分類ルールを
線形モデルで学習
• この場合、文字それぞれに、重みベクトルがある
• 目的関数: Softmax regression
• 最適化アルゴリズム:勾配下降方
学習データ
文字分類: Gradient Descent
10個の重みベクトルの初期値
(10個の「ニューロン」と呼ばれる場合も)
学習データ
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
文字分類: Gradient Descent
1
2
3
4
5
6
学習データ
7
8
9
0
学習完了。
未知データの予測
• 未知データと、学習した10個の重みベクトルの
ドット積(dot product)を計算
• ドット積の一番高い数値が分類予測
• この場合、「2」のドット積が一番高い
– 俗に「2ニューロンが発火」ともいう (2 nd neuron fired)
1
2
3
4
5
6
未知データ
7
8
9
0
学習完了。
未知データの予測
• 未知データと、学習した10個の重みベクトルの
ドット積(dot product)を計算
• ドット積の一番高い数値が分類予測
• この場合、「2」のドット積が一番高い
– 俗に「2ニューロンが発火」ともいう (2 nd neuron fired)
1
2
3
4
5
6
未知データ
7
8
9
0
K平均法クラスタリング
(K-means Clustering)
K平均法・アルゴリズム (教師なし学習)
• 教師なしで、学習データをKグループに分類しよう
アルゴリズム内容(つまり反復内容)
– Kクラスの中心点を計算
– 分類ルール:中心点に近いクラス
目的関数
K=2グループの場合の
中心点の初期設定
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
Clustering in Action
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 (K-means Clustering)
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
k平均法 分類完了
反復内容
Kクラスの中心点を計算
分類ルール:中心点に近いクラス
目的関数
クラスタリング・医療(Neuro)編
分類された白質組織
学習データ
Surgical Atlas Generation
クラスタリング
学習
Right
Cingulum
Gray’s Anatomy
Corpus
Callosum
151
Surgical Planning Lab Atlas
Left
Cingulum
機械学習の応用
ネットワーク・データ編
「コミュニティー検出」
ネットワーク・データ
代表例のひとつ:ソーシャル・ネットワーク・データ
コミュニティー・検出
(Community Detection)
教師なし、クラスタリングの一種
目的関数
特異値分解 (SVD)で
最適化
Singular Value Decomposition
コミュニティー
応用例
同コミュニティーメンバー
への商品推薦
ハブ、リッチクラブの方々には
集中的サービス
ハブ (Hubs)
人
リッチ・クラブ (Rich club)
コミュニティー・検出
(Community Detection)
コミュニティー・検出
(Community Detection)
応用例
同コミュニティーメンバー
への商品推薦
ハブ、リッチクラブの方々には
集中的サービス
目的関数
自分のLinkedInのネットワークも見れる
http://socilab.com/
アメリカ小学校・低学年
男子
女子
目的関数
アメリカのハイスクール
白人
黒人
ほか
目的関数
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:ネットワークデータ編
Keywords: Connectomes, Network Data, ADHD, Schizophrenia, Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
ごめんなさい、時間の都合により
正則化などの手法によるMLの工夫などは
完全に省略しました・・・
人・コネクトーム
(The Human Connectome)
• 近年人の脳のシステムを
ネットワーク視点から見る
研究が活発
• NIHはHuman Connectome
Project (HCP)を実地中
Same idea as the human genome project
(人ゲノム・プロジェクト)
人・コネクトームのコミュニティー
(Communities in the Human Connectome)
目的関数
年齢と脳コミュニティーの変化
目的関数
人コネクトームを応用した、医療診断
(Clincial Diagonsis with the Human Connectome)
学習データ
Healthy
Disorder
Classifier
学習
分類
ルール
未知データ
分類
ルール
Healthy?
Disorder?
医療応用の場合、モデル wの解釈が大事
My Research at Penn
Traumatic Brain Injury (TBI・外傷性脳損傷)
TBI 対 正常 の分類の正解率
更に線形モデルを脳スペースにマッピングすることにより、
TBIと正常の人のConnectomeの違いの解釈が可能
*Under review
My Current Research at Penn
(自閉症、Autism Spectrum Disorder)
Under progress
• データ:約150人の赤ちゃんのコネクトームを生後6・
12・24ヶ月時にスキャン
• 自閉症のお医者さんが診断できるのは、生後24ヶ月後から
– 上のデータの子供の2割ほどが24ヶ月時に自閉症と診断された
• 研究課題:生後6ヶ月・12ヶ月のコネクトームを見て、機
械学習で診断できないものだろうか・・・
– これができれば、24ヶ月まで待たなくても、6ヶ月時のときの早期診断に
よる治療ができ、進行を食い止めることが出来るかもしれない・・・
My Research at UM
(ADHD・注意欠陥多動性障害)
My Research at UM
(統合失調症・精神分裂症 schizophrenia)
本日お話すること
1. Machine Learning・機械学習の基本
Keywords: データの数値化 (Feature representation)・最適化問題 (Optimization)
2. MLの応用:脳ネットワークで医療診断
Keywords: Connectomes, Network Data, ADHD, Schizophrenia, Traumatic Brain Injury
3. ディープ・ラーニング(深層学習)
Keywords: Neural network (NN)、Feature Learning、Parallel Computing, GPU
人工ニューラルネットワークが再び
アツイ! 一体どうして??
これまで紹介したものは
浅層ネットワーク・・・
(Shallow Network)
浅層ネットワーク例:さっきの文字認識
• 浅い=一つしか「層」がない
(only one “layer” in the network)
モデル (w)
浅層ネットを人工知能的に見たら
(AI view of shallow network)
例えば、「学習」が完了したマシーンの中に
猫モデルと犬モデルがあると想像してください
猫モデル (w1)
入力データ
犬モデル (w2)
猫ニューロン
犬ニューロン
浅層ネットを人工知能的に見たら
(AI view of shallow network)
理想:このマシーンに猫の画像を入力した場合
猫ニューロンが発火 (ドット積が大きい方)
猫モデル (w1)
入力データ
犬モデル (w2)
猫ニューロン
犬ニューロン
浅層ネットを人工知能的に見たら
(AI view of shallow network)
理想:このマシーンに犬の画像を入力した場合
犬ニューロンが発火 (ドット積が大きい方)
猫モデル (w1)
入力データ
犬モデル (w2)
猫ニューロン
犬ニューロン
浅層ネットをもっと細かく見たら…
浅い=一つしか「層」がない
𝒙
𝒘
特徴 𝒙
重み 𝒘
ベクトル
ベクトル
𝑥1
𝑤1
𝑥2
𝑤2
Single
Neuron
𝑥1 × 𝑤1
ドット積
𝑑
𝑥2 × 𝑤2
𝑥𝑖 𝑤𝑖
𝑖=1
⋮
𝑥𝑑
⋮
𝑤𝑑
𝑥𝑑 × 𝑤𝑑
人工ニューロン
(Activation function)
識別
ルール
(0か1)
深層ネットワーク (Deep Network)
深い=複数の「層」がある
入力
第一層
第二層
第三層
人工ニューロン
𝑥1
(Activation function)
𝑥2
∑
⋮
𝑥𝑑
⋮
⋮
⋮
識別
ルール
さっき見た浅層ネット
(AI view of shallow network)
「猫 or 犬」ネット
浅層バージョン
猫モデル (w1)
入力データ
犬モデル (w2)
猫ニューロン
犬ニューロン
深層ネットバージョン
(AI view of deep network)
この中には、「人工ニューロン」が
ギッシリつまっている!!
第一層
第二層
第三層
入力データ
猫ニューロン
⋮
⋮
⋮
犬ニューロン
なぜ複数の層?
(why go deep)
深層の理由その1:生物ニューロンのモデル
(model of the biological neuron)
人間は単細胞生物ではない
単体ニューロンで表現できるコンセプトは
余りにも限られている
生物ニューロン
(biological neuron)
人工ニューロン
(artificial neuron)
http://cs231n.github.io/neural-networks-1/
深層の理由その1:生物ニューロンのモデル
(model of the biological neuron)
人間の知性を表現するには
多くのニューロン、そして「層」が必要となる
これはあくまでAIコミュニティの一部からの仮説だが、個人的には賛同する
生物ニューロン
(biological neuron)
人工ニューロン
(artificial neuron)
http://cs231n.github.io/neural-networks-1/
深層の理由その2: 階層的特徴学習
(Hierarchical Feature Learning)
機械学習システムの特徴抽出を覚えてますか?
深層学習の「層」達は、実は特徴学習を行ってるわけです
このとき学習される特徴を、階層的特徴といいます
階層的特徴ってどういうこと?
(hierarchical feature?)
階層的特徴 (Hierarchical Feature)
具体的な特徴
層4 (物体)
多くの自然データの特徴には
「階層」が存在する。
深層学習の特徴学習
• はじめの層では抽象的な特徴を抽出
• 深い層ほど、具体的な特徴を抽出
層3 (パーツ)
層2 (エッジ)
層1 (ピクセル)
抽象的な特徴
入力画像
レゴでイメージするとこんな感じ
具体的特徴
抽象的特徴
階層的特徴 (Hierarchical Feature)
具体的特徴
層4 (物体)
層3 (パーツ)
層2 (エッジ)
層1 (ピクセル)
抽象的特徴
入力画像
これまでに深層学習で学習成功した
階層的特徴の一覧
入力
データ
第一層
特徴
第二層
特徴
第三層
特徴
第四層
特徴
画像
ピクセル
エッジ
パーツ
物体
テクスト
字
単語
文章
記事
音声
サンプル測定
スペクトル帯
あいうえお
単語
深層の理由その3:脳の感覚器システムその類似
(similarity with sensory system of the brain)
人間が聴覚・視覚から得る「入力データ」も
階層的にプロセスされる
2ストリームの仮説 (Two streams hypothesis)
http://www.cell.com/trends/cognitive-sciences/abstract/S1364-6613(11)00175-6
ディープ・ラーニングの
「特徴抽出」能力はすごい!
ではどうやって最適化するのか?
手で設計するか
学習する
目的関数の設定
(凸か非凸か?)
最適化の実装
30年前 (mid 1980s)
バック・プロパゲーション計算が再発見される
• 深層ネットの目的関数の微分(勾配)を計算する手法
このときはまだ深層ネットという用語はなく一般的にはmultilayer neural networkと呼ばれていた
http://home.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
30年前 (mid 1980s)
バック・プロパゲーション計算が再発見される
• 深層ネットの目的関数の微分(勾配)を計算する手法
このときはまだ深層ネットという用語はなく一般的にはmultilayer neural networkと呼ばれていた
AIコミュニティ
目的関数の勾配
(gradient)
計算ができる
勾配下降で
(gradient descent)
深層ネットを
最適化できる!
そして
80年代の人工ネットの研究ブームへ・・・
だが予想とは裏腹に
なかなか期待していたような
研究結果は出なかった・・・
深層ネット:当時の失敗理由その1
深層ネットの目的関数はとても非凸(Nonconvex)
• 最適化の初期値の設定の仕方が当時分からなかった
?
深層ネット:当時の失敗理由その2
学習するのデータ量が足りない
• 深層ネットの複雑なモデルを学習するには
とにかくデータがたくさん必要!!!
深層モデルの
調整ノブ
浅層モデルの
調整ノブ
vs
深層ネット:当時の失敗理由その3
バックプロパゲーションの計算量は半端じゃない!
• 当時のコンピューターで計算するには
ヒジョーに苦しかった
こんな計算
むり・・・
そしてAI冬の時代へ・・・
https://en.wikipedia.org/wiki/AI_winter
人工ネットワーク(NN)のざっくりした歴史
NN第一次
ブーム
1950
NN第二次
ブーム
NN冬の時代
(AI Winter)
1957
パーセプトロン
(浅層NNの基盤)
1952
人工・チェッカー
プログラム (IBM)
1980
1984
深層NNの
アイディア
1973
ライトヒル・レポート
(パーセプトロンの死)
NN第三次
ブーム
NN冬の時代
(AI Winter)
2006
1990s
SVMなどのカーネル
手法の活躍などで
NNはほぼ
ガン無視状態
1986
バックプロップ提案
(深層NNの微分の仕方)
いったい
何が???
深層ネットの復活
深層ネット:当時の失敗理由のまとめ
1. 深層ネットモデルの初期値設定法が分からない!
2. 学習するのにデータが足りない!
3. バックプロパゲーションの計算量は膨大!
言いかえれば
深層ネットの実装を成功させるには
上の3つの課題を乗り越る必要がある
深層ネット課題その1:初期値設定の仕方
2006年、トロント大学(現Google)のGeoffrey
HintonによるPretrainingの提案
• Pretraining=深層ネットを最適化する事前に
行うアルゴリズム
• Pretrainingで深層ネットの初期値設定ができる
深層ネット学習前の準備運動
• Pretraining法の例
– RBM (Restricted Boltzmann Machine)
– Autoencoder
*最新の深層ネットの実装では、Dropout法やRectified linear unit neuronなどの工夫の応用が主流
深層ネット課題その1:初期値設定の仕方
昔の初期設定法のイメージ
(ランダム初期化)
現在の初期設定法のイメージ
(Pretraining)
深層ネット課題その2
学習するデータが足りない
インターネットの普及で時代は「ビッグ・データ」
• 分野によっては、大量にデータが手に入る
右の図
一分間に生産される
データ量
(2015年時)
深層ネット課題その3
バックプロパゲーションの計算量が厳しい
• CPU・GPUの性能向上とコストダウン
• 並列計算 (Parallel Computing)技術の向上
CPU/GPU
クラウドサービス
深層ネット:昔失敗した理由
1. 深層NNの目的関数はとってもNonconvex!!!
2. 学習するのにデータが足りない
3. バックプロパゲーションの計算量は膨大!!
深層ネット:課題クリア法
1. Pretrainingで初期値設定
2. ビッグ・データ (特定の分野に限られるが)
3. CPU/GPUのレベル向上、クラウド計算サービス
深層ネットの学習が可能になった!
じゃあどんな結果がここ最近出てきた?
207
深層学習ベンチマーク: 文字認識
深層学習ベンチマーク: 音声認識
深層学習ベンチマーク: 物体認識
http://media.nips.cc/Conferences/2013/Video/Tutorial1A.pdf
深層学習・物体認識の失敗例
ま、まあ納得ですよね^^;
http://www.brain-magazine.fr/article/page-pute/28444-Jouons-un-peu
ディープ・ラーニングを使った
最新の応用方法
ゲーム
Google Mind
(Atari game)
AlphaGo
画像から自動キャプション
テクストから画像
こんな質問にも答える
http://cvlab.postech.ac.kr/research/dppnet/
リアル・タイム翻訳機
(マイクロソフトで開発中)
深層学習はすごい!けど・・・
深層ネットは、「Trial and error」の要素が強い
– 「層」をいくつ入れる?
– 1つの層に何個の人工ニューロンを入れる?
– どのActivation function (ニューロンモデル)を使う?
これらのデザインをなんらかの「理論・規則」に
基づいた設定法はないだろうか?
深層モデルの
調整ノブ
深層学習はすごい!けど・・・
最近深層学習の研究者達が、メディアの発表の
仕方に疑問を持っているという記事をよく見かける
気がする・・・
• AlphaGoの勝利のあとのメディアの見出しの例
– 「Machines have conquered the last games」
– 「 We know now that we don’t need any big new
breakthroughs to get to true AI 」
深層学習はすごい!けど・・・
• 過去の「AIの冬」は、アンリーズナブルな期待からきた
失望感によるもの…なので
ディープ・ラーニングの向上に注目しつつも、分
別のある期待レベルに抑えましょうね
…ってな感じのニュアンスのことを言ってました
まだまだ残った課題
(深層ネットに限った話ではないが)
• 人間と比べて学習に必要なデータ量が多すぎる
– この辺りも人間の知性に近づけれないだろうか…
• 人間は教師なし学習が、機械より圧倒的に優れている
– 経験のないことへの予測が人間にはできる
• 人工ニューラル・ネットのモデルと人間の脳とのシステム
の差異を縮める
– これには、神経学者(neuroscience)達の協力も必要
Don’t worry, this won’t
happen anytime soon
ニューロンの数の比較
http://videolectures.net/deeplearning2015_montreal/
まとめ:ディープ・ラーニングと階層的特徴の抽出
具体的特徴
層4 (物体)
層3 (パーツ)
層2 (エッジ)
層1 (ピクセル)
抽象的特徴
入力画像
本日の目標 (覚えてますか?)
ミッチェル教授の機械学習の定義が
一体どういう意味なのかを
みんなで「人間学習」しよう
「コンピュータプログラムが、ある種の
タスクTと評価尺度Pにおいて、経験Eから学
習するとは、タスクTにおけるその性能をP
によって評価した際に、経験Eによって
それが改善されている場合である」
直感的に捕らえると、こういうこと
タスクTにおけるその性能をPによって評価した際に、
経験Eによってそれが改善されている場合
コンピューターにデータ(E)を見せて
タスク(T)の性能(P)を上げる
T (タスク) = やりたいこと・目的
E (経験) = データ
P (性能) = 正解率など
この機械学習システムの中身は一体・・・?
E (経験)
T (タスク)
学習データ
マシーン・ラーニング
(学習アルゴリズム)
(Training Data)
P (性能・評価尺度)
学習ルール
本日のプレゼンで覚えてほしいのは
下の図
タスクTにおけるその性能をPによって評価した際に、
経験Eによってそれが改善されている場合
コンピューターにデータ(E)を見せて
タスク(T)の性能(P)を上げる
T (タスク) = やりたいこと・目的
E (経験) = データ
P (性能) = 正解率など
これが機械学習システムの中身!!!
学習
データ
特徴
抽出
手で設計するか
学習するか
最適化
問題
目的関数の設定
(凸か非凸か?)
最適化アルゴリズムの実装
学習
ルール
Thank You!!!
Fly UP