Share
Embed
Transcript
56 slides
-
オートエンコーダ:自己符号化 n ちょっと変わったパーセプトロン u パーセプトロンは 教師あり学習 p 教師 と 出力
の間の差(誤差)を 最小化するよう 重み を学習 u 教師データに入力データをそのまま使う オートエンコーダ x1 xi xI … … … y1 yk yK … … = x1 = xi = xI 可視層 可視層 隠れ層 2 -
再び記号の話 n 記号とは… u なんらかの基準により,世界を同値類に分けた結果 u 同値かどうか,同一性の判定が主問題 n 共通要素をもつ =
なんらかの同一性をもつ 情報・次元の圧縮は 世界をうまく要約する,記号化する ということに他ならない 6 -
オートエンコーダ:自己符号化 n 用語の整理 u 入力層,出力層を 可視化層 ともいう u 入力層から隠れ層への処理: エンコード
u 隠れ層から出力層への処理: デコード x1 xi xI … … … y1 yk yK … … = x1 = xi = xI 可視層 可視層 隠れ層 エンコード デコード 7 -
積層オートエンコーダ n 単に隠れ層を多層にしてみたオートエンコーダ u 4層以上の多層パーセプトロンのオートエンコーダー版 u 特に変わったアイデアではないのだが… ディープニューラールネットワーク これが 深層学習
の核 層ごとの貪欲法 と 事前学習 という テクニックに工夫 8 Deep Neural Network: DNN -
層ごとの貪欲法? n ちょっと変わった学習のさせ方 u 多層パーセプトロンでは逆誤差伝搬で計算 p 勾配消失により多層にすると学習が進まない問題 p 積層オートエンコーダも結局同じ問題が起きる… u
オートエンコーダならではの解決策 p オートエンコーダでは自分と同じ出力を得たい p 隠れ層でも自分と同じ出力を出すように学習させる 9 -
層ごとの貪欲法:図解0 n オートエンコーダは入力=出力 u 可視化層 と 隠れ層 の2層だけの構造ともいえる x1 xi
xI … … … y1 yk yK … … = x1 = xi = xI やりたいことは 隠れ層 が入力と同じ出力を出せるようにすること 10 -
層ごとの貪欲法:図解1 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …
… … h1 h2 h3 hn h1 層では,入力層を出力するように学習させる x h1 x x 11 -
層ごとの貪欲法:図解2 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …
… … h1 h2 h3 hn h2 層では,h1 層を出力するように学習させる h2 x h1 h1 12 -
層ごとの貪欲法:図解3 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …
… … h1 h2 h3 hn h3 層では,h2 層を出力するように学習させる h3 x h2 h2 13 -
層ごとの貪欲法:図解4 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …
… … h1 h2 h3 hn hn 層では,hn-1 層を出力するように学習させる hn x hn-1 hn-1 ※ 基本的には隠れ層を1層進めるたびに ノードの数は前の層より減らさないとダメ ノード数が同じなら特定の1ノードとの重みを1,それ以外を0でOK 情報の圧縮を考えるなら,増やすのも普通に考えると意味がない 14 -
隠れ層のノード数は本当に減らさないとダメ? n 実は減らすどころか,増やしても良い u スパース自己符号化器 p なにも考えないと前頁の脚注の通り,恒等写像で無意味 p 適切な制約を加えることで,うまく学習できる p
これにより,表現力を増すことができる • 高次元空間にマッピングできる x1 xi xI … … … y1 yk yK … … = x1 = xi = xI 15 -
積層オートエンコーダでの教師あり学習 n hn 層の学習は,hn-1 層のデータで行った n ほしいのはy層(出力層) u hn 層はy層に合うように学習しないといけないのに…
u hn 層 まで来たら,y層をつないで逆誤差伝搬 事前学習&ファインチューニング 17 -
ファインチューニング n 最後の層に少し工夫 y1 yk yK x1 xi xI …
… … … … … … … h1 h2 h3 hn 最後に適当な回帰層をくっつける x y = x 分類問題の場合: ロジスティック回帰層(シグモイドかソフトマックス) 回帰問題の場合: 線形回帰層 あとは誤差逆伝搬で調整 18 -
何かだまされているような…? n 勾配消失 で 深い層は計算できないのでは?? u 層ごとの貪欲法で何らかの重みは計算済み u この(事前学習した)状態で逆誤差伝搬すると, 学習が良い感じに進む!!!
p 事前にいろいろやってきて,良い感じの値になってるので, ちょっと調整するだけでうまくいくイメージ 層ごとの貪欲法 を用いた 事前学習 と ファインチューニング で 教師あり学習 19 -
事前学習を用いない勾配消失対策 n 事前学習の課題 u 層ごとの貪欲法 による事前学習は非常に効果があり, 深層学習の有用性を示した u でも,一層ずつ学習を積み重ねるので計算コスト大 u
勾配消失の原因 = 活性化関数の微分値が常に小数値 p 活性化関数自体をうまく設計しておけば良いのでは??? 21 -
逆誤差伝搬 n 誤差の影響 δ を どんどん後ろに送る u δ は 前のδ
に重みと活性化関数の微分値をかけたもの つながってるノード全部 の意 (l+1)層への入力の大きさ ※ f ではなく f’ (微分)な点に注意 j 前のノードまでの 誤差影響度の総和 (l+1)層までの誤差影響度 j ※ よくわからなければ,目をつぶっててください 22 -
逆誤差伝搬と勾配消失 問題はここ!!! f(x) は 活性化関数で,活性化関数にはシグモイド関数が使われるのだった とにかく,「なんか微分したやつの値が小さいのが問題らしい」と理解してればOK 「そうなんだ。シグモイド関数を微分したらそうなるんだね」くらいの気分でOK ※ 以前示したときと数式が微妙に違うのは無視する 微分というのは
各点における傾きなので 微分値を求めると… Max で 0.25 シグモイド関数 シグモイド関数を微分したやつ 23 -
活性化関数の工夫 n 微分して最大値が 0.25 など小さいのが問題 u じゃぁ,そうならない活性化関数使えば良いんじゃ…? u 深層学習でよく用いられる活性化関数 p
tanh(ハイパボリックタンジェント)関数 p ReLU (Rectified Liner Unit) 関数 その通りです… 24 -
ReLU: Rectified Liner Unit n ちょっと特殊な形の関数 u 現在一般的に用いられる関数 正の範囲で微分値が1.0 ゼロの時は微分ができないため,
その場合のみ,誤差伝搬がうまくできない問題も (まあ0か1かに割り当てて無理矢理動かしますが) 26 -
ReLU の 家族 n よく似た派生形もいろいろ u 負の範囲の微分値がゼロは嫌:Leaky ReLU u 正の範囲の傾きを良い感じに:Parametric
ReLU u 傾きは適当で良いのでは??:Randomized ReLU ※ カエルの子供はカエルではなく オタマジャクシです。念のため。 27 -
DNNいろいろ n DNNと一口に言っても実は種類※が… u CNN Convolutional NN p 画像処理系でよく用いられるNN u
RNN Recurrent NN p 自然言語処理系でよく用いられるNN u LSTM Long-Short Term Memory p 上記,RNNの拡張版 u GAN Generative Adversarial Networks p DNNの種類ではなく,学習のさせ方だがこれも重要 28 ※ 正確にはDNNの使い方,組み合わせ方の種類 -
:Convolutional NN n 畳み込みニューラルネットワーク とも u 画像処理系によく使われるNN p 基本的なアイデアは意外と古く,1979年に日本の研究者 福島邦彦
先生 が発表した ネオコグニトロン などがベース u 畳み込み層 と プーリング(サンプリング)層 を交互に積層 30 CNN CNN …の前に,NNでどうやって画像を扱うか? そもそも計算機は画像を同処理・表現するか? -
機械はどのように画像を表現するか n 色は前述の通り,赤緑青の重ね合わせ u …3原色は 赤青黄 (Magenta, Cyan, Yellow)では?? p
色の三原色はCMYだが,光の3原色はRGB(Red, Green,Blue) p モニターは発光して情報を伝えるので RGB が基本 32 ひとつひとつのセルはこんな感じで RGBの発光量を調整して色を表現 -
青色LEDの素晴らしさ n 学生の皆さんにはテレビ=液晶テレビですが… u 2003年くらいまではブラウン管テレビ が一般だった p 大きくて重く,奥行きがあり,30インチでも超大型 u なぜか???
u 赤のLED,緑のLEDはあったけど,青がなかったから p LEDは発光力に優れ,壊れにくく,反応が高速!!! p なのでずっと使いたかったのだが,青がないので使えなかった 33 2014年 青色ダイオードの発明に関連し, 日本人の研究者がノーベル賞を受賞! -
ついでに画像の切り替え n 動画自体はパラパラアニメの要領 u 静止画を高速に切り替えていくことで動画にみせる n 静止画の切り替えは超単純 u 全部のセルを同時に変更したいけど,セルの数だけ 信号線を用意しないといけないので大変…
p ケーブルが超太くなる… u 信号線は基本的にはRGBの3本の線だけ p 1セルずつ順番に更新していく p セルを高速に 走査 することで 一瞬で切り替わっているように見える 34 この更新の早さを リフレッシュレート という -
機械はどのように画像を表現するか n フィルタ処理 u 各セルに数値処理することで,画像をぼかしたり, 逆に鮮明化したりする 35 ぼかし処理 隣接するセルの値と,対象セルの値を 平均するなど,何らかの処理
オリジナル 例によって「これ何の授業でしたっけ?」となってると思いますが, CNNで必要になる知識なので耐えてください。 -
機械はどのように画像を表現するか n フィルタ処理 u フィルタとは,あるセルを中心に周りのセルの数値を どのように変化させるか表したもの 36 1 ぼかし処理用フィルタ 周りのセルの値の0.5倍と,自分の値を加算し,
置き換える…というフィルタ オリジナル 0.5 0.5 0.5 0.5 1 0.5 0.5 0.5 0.5 白のパネルは全部 0 とする -
機械はどのように画像を表現するか n フィルタ処理 u フィルタとは,あるセルを中心に周りのセルの数値に 基づいて,セル値をどのように変化させるか表したもの 37 0.5 0.5 0.5
0.5 1 0.5 0.5 0.5 0.5 0.5 周囲のセルの値に0.5をかけて合計したものと, 自分のセルの値を足したものを,新たなセル値にする 黒のパネルは 1,白は全部 0 とする 端のパネルは処理できないので落とす -
フィルタを用いた特徴抽出 n フィルタを使うと,画像の特徴を際立たせることも 38 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 2 3 3 2 4 2 3 1 3 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という このフィルタを カーネル,フィルタの適用を 畳み込み という -
フィルタを用いた特徴抽出 n フィルタを使うと,画像の特徴を際立たせることも 39 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 2 3 3 2 4 2 3 1 3 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 このフィルタを カーネル,フィルタの適用を 畳み込み という ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という -
フィルタを用いた特徴抽出 n フィルタを使うと,画像の特徴を際立たせることも 40 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 2 3 3 2 4 2 3 1 3 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という このフィルタを カーネル,フィルタの適用を 畳み込み という -
畳み込みの意味 n 画像の特徴を際立たせる ← パタン抽出器として機能するということ 41 1 0 1 0
1 0 1 0 1 2 3 3 2 4 2 3 1 3 画像全体の中から, このXっぽい部分を探すと… 真ん中と,左上,右上,右下 あたりには合致しそうな箇所が! うまくフィルタを設計してあげることができれば, この画像には,こんな特徴がこのくらいある…ということが表現できる ひとつの画像にもいろいろな特徴があるので, 複数のフィルタを使って特徴をつかむ & -
移動不変性 n 計算機から見ると,1ピクセルズレただけでも 全く別の画像… u フィルタは画像全体の中から,あるパタンに合致する パタンを探すので,このズレ問題に対し対応できる u これが 移動不変性
p ただし,画像が回転していたりする場合はダメ 42 重複は 1セル だけ。 だから全然違う画像。 元画像 比較画像 -
プーリング n 単に情報を減らすダウンサンプリングも似た感じで可能 43 0 -9 -3 1 3 0
-4 5 -1 2 2 9 0 8 2 4 3 5 8 9 -1 2 0 8 このダウンサンプリング処理を プーリング という Maxプーリングという処理だと, 周囲のセル中,最大のもので置換 4つのセルを1つにするとして, Max は 8 なので,8とする プーリング は フィルタと違い,決められた演算を行うのみ -
NNでどうやって画像を扱うか n NNはベクトルは扱えるが… u これまで見てきた例はすべて1次元ベクトル u 画像は2次元,色も加えると3次元ベクトル u どのようにして扱うか? p
考えられる2つの戦略 • NNを多次元(最低2次元)でも扱えるようにする • 画像の方を1次元にする 45 -
NNでどうやって画像を扱うか 46 C1 C2 C3 B1 B2 B3 A1 A2
A3 C1 B1 A1 A2 C3 B3 これを… … こうする A1B A1G A1R B1R C3B C3G … 色情報があれば さらに分解 -
画像1次元化の課題 n 画像のサイズは大きい… u かなり古い iPhone7 の段階で,4000 x 3000 を越える
p 色の情報を加えると, 4000 x 3000 x 3 = 3,600万 !! • つまり 入力のサイズが 3,600万行 なので,学習に超時間がかかる… u 画像の特徴をうまく抽出し,もっと少ない情報で 表現できるようにしてあげないと,実用に耐えない u CNN は その辺の工夫を行った NN の手法 47 -
n 畳み込みニューラルネットワーク とも u 画像処理系に解く使われるDNN p 基本的なアイデアは意外と古く,1979年に日本の研究者 福島邦彦 先生 が発表した
ネオコグニトロン u 畳み込み層 と プーリング(サンプリング)層 を交互に積層 49 CNN CNN 先ほど見た画像の特徴抽出のこと。 フィルタのどのセルにどのくらい重みをつけるかがポイント ダウンサンプリングのこと。 Max か 平均 か位しかないので学習要素はない 特徴を際立たせつつ,少ない情報で表現する…のを繰り返す これにより,物体の識別などを上手く行えるNN -
n 共通する特徴を抜き出してどうこう…? u 本資料の最初の方で,イスを例に説明したとおり u 大量データの中からうまく共通した特徴を見つけ出す というのが,世界の記号化 n CNN =
画像の特徴をうまく捉えて記号化する u 畳み込み と プーリング だけで できるのか?? u 残念,できない!! p と,いうわけで CNNの話が もう少し続きます 50 CNN CNN -
畳み込みに関するパラメータ n 畳み込み を 行う上でのいくつかパラメータ u フィルタの数 p 1種類のフィルタだけで良い感じに特徴が出せる…ことは希 p
何種類かのフィルタを用意して処理する u フィルタのサイズ p 小さすぎる(たとえば1x1)だと特徴が引っかかりすぎ, 大きすぎると引っかからなすぎ,ちょうど良いサイズにする必要 u フィルタの移動幅 p 1セルずつずらしても良いが大きいと処理に時間も… p フィルタのサイズ以下なら3セルなど一気に動かしても良い 51 CNN CNN (まれ) -
n ここまででわかったこと u CNN は 画像 から,何かの特徴を出せるらしい p NN で
画像を扱うには サイズを減らして1次元にする必要 p 畳み込み で 特徴を探り, プーリング でダウンサンプリング • ネコのヒゲを捉えるフィルタ,ネコの柄を捉えるフィルタ… などなど,いろんな 畳み込み と圧縮を多段階で行う,ということ n 最終的に欲しいもの u 画像 の 特徴 というのが具体的に何なのか知りたい p ネコの画像を沢山与えて学習させたとして, 未知画像を これはネコ,これはネコじゃない と識別させたい 52 CNN CNN -
n ここまでで良い感じに画像は圧縮できた n あとは普通の 教師あり でよいので, 画像を1次元化し,教師画像に対応するラベルを 普通に学習させるだけでOK! u 1次元化した画像
と NN を接続する層を 全結合層 という 53 CNN CNN -
まとめ n 基本的には 画像 をうまく扱うための NN u 写真から ネコ を検出する…
みたいなことを実現 n ポイント u 大きな画像をそのまま扱うのは大変なので圧縮する p 畳み込み と プーリング で,特徴を捉えつつダウンサイジング p 良い感じにダイエットしたところで,普通に学習させる u NN が 活躍するのは 畳み込み と 全結合 の2カ所 p 畳み込み 部分では,良い感じに特徴抽出できるよう学習 p 全結合 部分では,特徴とラベルの対応を学習 54 CNN CNN -
残る課題 n 特徴抽出に際して図形の平行移動は対応可能 n しかし,ちょっと回転したりすると対応不能… n データの与え方の方を工夫する u 1枚の画像を数度ずつ回転させて複数回与えたり, おなじく拡大・縮小させて与えたり,反転したり,
ちょっとゆがめてみたり,一部を隠したり… u どこまでも手間のかかることを… p これだけでも超面倒だし,これを計算させるわけなので, ひたすらめちゃめちゃ手間がかかる。 55 CNN CNN -
その後 n 毎度ながら,実はまだまだ続きが… n ここまで見てきた CNN に DNN の要素は…? u
もちろん使える部分は多数あったが,基礎のアイデアが1979年に あったことからも明らかに,DNNじゃなくても良い u つまり,CNN 自体は DNN の一部分というわけではない n DNN の 成功を受けて,より DNN を活用した発展系も u AlexNet, VGG, GoogLeNet, ResNet などなど 56 CNN CNN