209 Views
November 24, 16
スライド概要
物流スタートアップで働く機械学習エンジニア。 データ基盤や機械学習プロダクトの企画、設計、開発、運用を担当しています。
LT Thursday 2016.11.24 ニューラルネットと深層学習の歴史 阿部晃典 サイバーエージェント メディアディベロップメント事業本部 1
自己紹介 ● ● ● 名前: 阿部晃典 GitHub: @akabe 略歴 ○ 〜2016.3 東北の山奥で大学生活 ■ プログラミング言語の基礎理論 ■ ちょっと機械学習 ○ 2016.4〜 サイバーエージェント(新卒入社) ■ 広告配信設定の自動化 2
今日のお話 ● ● ● 大学時代のニューラルネットの歴史の調査を圧縮した内容 機械学習初心者向け(のつもり) 話すこと ○ ● ニューラルネットの歴史に沿って著名な研究・手法を紹介 ■ 分類問題(機械学習の基礎) ■ パーセプトロン ■ 多層ニューラルネットワーク ■ 深層学習の主な研究(主観と偏見で選定) 話さないこと ○ ○ プログラミング・ライブラリ・ツールの話 アルゴリズムや手法の詳細 3
ニューラルネット、深層学習とは? ● 人工ニューラルネットワーク ○ ○ ● 生物の神経系に着想を得た機械学習モデル 信号を加工する人工ニューロンを複数繋いで構成 深層学習(ディープラーニング) ○ ニューロンを沢山繋いだニューラルネットを使った手法の総称 ○ グラフィカルモデルとかを含むこともあるけど、多くはニューラル ネットが主役 既存の手法よりも良い精度を出したので、流行っている ■ 4
分類問題(機械学習の基礎) 5
このリンゴは美味しいですか? 青森県産で、種は5個 ※ リンゴを食べずに、 「美味しいかどうか」 だけ知りたい 6
過去データから推定したい x1(種の個数) x2(青森産か否か) y(美味しいか否か) 3 +1(青森産) 美味しい 4 +1(青森産) 美味しい 3 -1(青森産ではない) まずい 4 -1(青森産ではない) まずい 6 -1(青森産ではない) 美味しい 5 +1(青森産) 不明 過去のデータ 7
座標空間で考える たぶん、美味しい x2 青森産 (+1) 美味しい まずい 不明 種の個数(x1) 青森産 でない (-1) 8
美味しい・まずいを分離境界で判断 分離境界を引いて、 ● 上:美味しい ● 下:まずい x2 青森産 (+1) 美味しい まずい 不明 種の個数 (x1) 青森産 でない (-1) 9
分離境界を数式で表す f(x1, x2) = -3 + 1 * x1 + 2 * x2 x2 青森産 (+1) 美味しい f(x1, x2) > 0 まずい 不明 種の個数(x1) 青森産 でない (-1) f(x1, x2) = 0 f(x1, x2) < 0 10
重みと特徴 f(x1, x2) = -3 + 1 * x1 + 2 * x2 重み ● 特徴 (feature) ○ ○ ○ ● 特徴 直感的には分類に用いる指標 人間が悩みながら決める(特徴職人) 一部のタスクでは、深層学習で特徴も獲得することができる 重み (weight) ○ ○ 直感的には特徴の 重要度 教師データから機械学習で 自動的に計算 する(学習・訓練) 11
ニューラルネット基礎研究の開花 (‘40s〜’50s) 重みの学習方法が発明されたのは50年代後半 ● 1943 ○ ● ● The Snark [Minsky] 世界初のニューロコンピュータ(ちゃんと学習出来なかった) 1957 ○ Hebbian learning rule [Hebb] ニューロンの学習のメカニズム 1951 ○ ● 人工ニューロンの数理モデル 1949 ○ Threshold logic units (TLU) [McCulloch & Pitts] Perceptron [Rosenblatt] 初めて、まともに重みを学習できるようになった 12
1950〜60年代 ニューラルネットの黄金期 (パーセプトロンの流行) 13
パーセプトロン [Rosenblatt 1957] ● ● ● 教師データを元に重み (= 分離境界) を自動的に求める手法の1つ 単一の人工ニューロンで構成(1層のニューラルネット) 簡単なアルゴリズムで重みを計算することができる ○ 学習は反復法(ランダムな初期値から徐々に解に近づけていく) x1 特徴量 (入力) x2 w1 w2 クラス (出力) y w3 x3 y = sign(w1 * x1 + w2 * x2 + w3 * x3) 重み 14
パーセプトロンの学習 (1) まず、ランダムに分離境界を引く 15
パーセプトロンの学習 (2) 点を1つ選んで正しく分離できているかチェック 【間違った予測】 本当は赤なのに 青と判定されている 16
パーセプトロンの学習 (3) 予測が間違いなら、正しく予測できる方向に境界を移動 分離境界を移動 正しく予測できる ようになった 17
パーセプトロンの学習 (4) 点の選択と境界の移動を反復して、正しい境界を求める 18
パーセプトロンの収束定理 [Rosenblatt 1962] 与えられた教師データが線形分離可能(直線で分離できる)ならば、必ず ● ● パーセプトロンの学習が収束して、 教師データ内の全ての点を正しく分類する重みを求める ことができる。 19
パーセプトロン、 いいじゃん! 20
パーセプトロン関連研究が盛んに (‘50s〜’60s) ● 1957 ○ ● ● ADALINE [Widrow & Hoff] Perceptron の改良版 1962 ○ The Mark I Perceptron [Rosenblatt, Wightman+] 画像認識用のニューロコンピュータ 1960 ○ ● 初めて、まともに重みを学習できるようになった 1958 ○ Perceptron [Rosenblatt] Perceptron convergence theorem [Rosenblatt] 線形分離可能ならば、訓練データを全て正しく分類できる Mark I Perceptron 21
22
1970年代 黄金期の終焉/冬の時代 23
パーセプトロンの欠点 ● ● ● ● ノイズに弱い 収束が遅い 線形分離不可能なのとき、重みを学習できない [Minsky & Papert 1969] ○ 現実には線形分離でない問題も多い 多層化(パーセプトロン同士を接続)したときに、学習できなかった ○ 学習に必要な中間素子の信号を推定する方法がない ○ 多層化できれば、線形分離不可能な問題も解けるのに... 24
1980年代 黄金期の再来(多層ニューラルネット) 25
多層ニューラルネット ● 複数の人工ニューロンを接続して作ったネットワーク ○ ● ● 「層 (layer)」という単位でネットワークの規模を図ることが多い 線形分離ではない問題も解ける(= 曲線の分離境界を引ける) 学習:勾配法 + 誤差逆伝搬法 [Rumelhart, Hinton & Williams 1986] ○ ニューラルネットの微分を効率的に計算できるようになった 第4層 第3層 第2層 第1層 26
人工ニューロンの出力情報の変移 ● 1950〜60年代 人工ニューロンの出力は 真偽値(あるクラスに属するか否かの情報のみ) 人工ニューロンは重みと特徴の線形和の符号のみを出力(ステップ関数) ■ 微分との相性がすこぶる悪い ○ ○ ● 1980年代 人工ニューロンの出力は 確率値(あるクラスに属する確率) 重みと特徴の線形和をシグモイド関数で変換 ■ シグモイド関数は 微分との相性が良い (微分の計算コストが小さい) ○ ○ ● 最近 ○ 主に折れ線関数を使うのが一般的(後述) 27
万能近似 [Cybenko 1989 等] ● 隠れ層(中間層)に十分な数のニューロンがあれば、2層ニューラルネットは任意の 連続関数を近似できる。 y = |x| y = sin(x) y = -x^2 28
多層ニューラルネット、 いいじゃん! 29
30
1990〜2000年代 冬の時代、再び 31
多層ニューラルネットの欠点 多層ニューラルネットの強力さは諸刃の剣だった。 ● ● 過学習 勾配の消失 32
過学習 (over-fitting) ちょっとした誤差等に引きずられてメチャメチャな分離境界を引いてしまう。 33
勾配の消失 (vanishing gradient) 学習が出力層付近で完結してしまい、下層部の存在意義がない。 34
さよなら、ニューラルネット After being extremely popular in the early 1990s, neural networks have fallen out of favor in research in the last 5 years. In 2000, it was even pointed out by the organizers of the Neural Information Processing System (NIPS) conference that the term “neural networks” in the submission title was negatively correlated with acceptance. In contrast, positive correlations were made with support vector machines (SVMs), Bayesian networks, and variational methods. [Simard+ ICDAR2003] 35
2000年代後半〜 3度目の黄金期(深層学習) 36
2006ごろから諸問題が徐々に解決 規模の大きなニューラルネットが使えるようになってきた。 ● RBM による教師なし事前学習 [Hinton & ○ ○ ● ReLU (Rectified linear units) [Nair & Hinton ‘10], Maxout [Godfellow ‘13] ○ ○ ● Salakhutdinov ‘06] 浅いニューラルネットで予め「良い初期値」を教師なし学習する。 深いニューラルネットに良い初期値を入れて教師あり学習すると、精度が上がる。 シグモイド関数の代わりに折れ線近似した関数を使って、勾配消失を防ぐ。 これ以降は折れ線関数を使うのが一般的になった。 Dropout [Hinton+ ‘12] ○ ランダムにニューロンを欠落させながら学習すると、精度が上がる。 計算機能力の向上も大きい。 37
画像認識コンペでの圧勝 [Krizhevsky, Ilya & Hinton, NIPS‘12] ● ImageNet Large Scale Visual Recognition Challange (ILSVRC) 2012 ○ ● 写真に写っている物体を識別するコンペ( 1000 クラス) トロント大学の Hinton らのチームが大差で優勝 チーム 誤差 SuperVision 0.15315 ISI 0.26172 OXFORD_VGG 0.26979 38
深層化による発見 [Lee+ ICML’09] ● ● 下位層で得られた特徴から、上位層でより高度な特徴を学習 最下層への入力はピクセル生データで良い ○ 従来は SIFT などの特徴抽出を自力で行う必要があった。 エッジ成分 (下位層) 顔のパーツ (中間層) 人の顔 (上位層) 39
おばあさん細胞の再現 (Google) [Le+ ICML’12] ● ● おばあさん細胞仮説 ○ 自分のおばあさんを見たときだけ強く反応する細胞 ○ 一般に、複合的な概念を表現するニューロン(仮想的な 存在) 自動的におばあさん細胞らしきものを獲得 ○ ○ モデル:9 層オートエンコーダ 訓練集合:一千万枚の画像 40
自然言語処理への応用 ● 単語をベクトル表現に変換 [Mikolov+ ICLR’13] ○ ○ ● word2vec とかで有名アレ vec(“King”) - vec(“Man”) + vec(“Woman”) ≒ vec(“Queen”) 句・文をベクトル表現に変換 [Socher+ EMNLP’11, NIPS’11] ○ 似た意味の文は似たようなベクトルに変換される 41
他の分野への応用 ● ● Deep Q-learning [Mnih+ ‘13] ○ クラシックゲームを畳み込みニューラルネットで強化学習 ○ 画面のピクセルデータから、プレイ方法を獲得させる ○ 長期戦略が不要なゲームでは熟練者に勝利 Execute to learning [Zaremba+ ‘14] ○ ○ ソースコードから実行結果をリカレントニューラルネットで学習 文字単位で入力 42
まとめ 栄枯盛衰 43
Appendix 44
多層ニューラルネットの学習 (1) ニューラルネットの重みを適当に初期化する 第4層 ● ● ニューラルネットの各矢印に重みが対応 全ての重みをランダムに初期化 第3層 第2層 第1層 45
多層ニューラルネットの学習 (2) 適当な教師入力を順伝搬 予測結果 第4層 第3層 ● ● ● ● 教師データから任意に点を1つ選ぶ 教師入力をニューラルネットに入力 出力側に向かって順方向伝搬 予測結果が出力される 第2層 第1層 教師入力 46
多層ニューラルネットの学習 (3) 予測結果と教師出力から誤差(の勾配)を計算 予測結果 教師出力 誤差勾配 第4層 第3層 第2層 第1層 47
多層ニューラルネットの学習 (4) 誤差の勾配を逆伝搬 誤差勾配 第4層 第3層 ● ● ● 出力側に誤差の勾配を入力 出力から入力に向かって逆伝搬 入力側からニューラルネット全体の勾配が 出力 第2層 第1層 ニューラルネット全 体の勾配 48
過学習の検出 過学習すると、訓練集合の誤差が小さいのに、テスト集合の誤差が大きくなる 49