Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シリーズAI入門:12a 深層学習 前編

FSCjJh3NeB
February 03, 2021

シリーズAI入門:12a 深層学習 前編

深層学習の基礎,オートエンコーダ(自己符号化)からCNNまでを眺めます。

FSCjJh3NeB

February 03, 2021
Tweet

More Decks by FSCjJh3NeB

Other Decks in Education

Transcript

  1. オートエンコーダ:自己符号化 n ちょっと変わったパーセプトロン u パーセプトロンは 教師あり学習 p 教師 と 出力

    の間の差(誤差)を 最小化するよう 重み を学習 u 教師データに入力データをそのまま使う オートエンコーダ x1 xi xI … … … y1 yk yK … … = x1 = xi = xI 可視層 可視層 隠れ層 2
  2. 再び記号の話 n 記号とは… u なんらかの基準により,世界を同値類に分けた結果 u 同値かどうか,同一性の判定が主問題 n 共通要素をもつ =

    なんらかの同一性をもつ 情報・次元の圧縮は 世界をうまく要約する,記号化する ということに他ならない 6
  3. オートエンコーダ:自己符号化 n 用語の整理 u 入力層,出力層を 可視化層 ともいう u 入力層から隠れ層への処理: エンコード

    u 隠れ層から出力層への処理: デコード x1 xi xI … … … y1 yk yK … … = x1 = xi = xI 可視層 可視層 隠れ層 エンコード デコード 7
  4. 層ごとの貪欲法? n ちょっと変わった学習のさせ方 u 多層パーセプトロンでは逆誤差伝搬で計算 p 勾配消失により多層にすると学習が進まない問題 p 積層オートエンコーダも結局同じ問題が起きる… u

    オートエンコーダならではの解決策 p オートエンコーダでは自分と同じ出力を得たい p 隠れ層でも自分と同じ出力を出すように学習させる 9
  5. 層ごとの貪欲法:図解0 n オートエンコーダは入力=出力 u 可視化層 と 隠れ層 の2層だけの構造ともいえる x1 xi

    xI … … … y1 yk yK … … = x1 = xi = xI やりたいことは 隠れ層 が入力と同じ出力を出せるようにすること 10
  6. 層ごとの貪欲法:図解1 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …

    … … h1 h2 h3 hn h1 層では,入力層を出力するように学習させる x h1 x x 11
  7. 層ごとの貪欲法:図解2 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …

    … … h1 h2 h3 hn h2 層では,h1 層を出力するように学習させる h2 x h1 h1 12
  8. 層ごとの貪欲法:図解3 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …

    … … h1 h2 h3 hn h3 層では,h2 層を出力するように学習させる h3 x h2 h2 13
  9. 層ごとの貪欲法:図解4 n 積層オートエンコーダでも話は同じ x1 xi xI … … … …

    … … h1 h2 h3 hn hn 層では,hn-1 層を出力するように学習させる hn x hn-1 hn-1 ※ 基本的には隠れ層を1層進めるたびに ノードの数は前の層より減らさないとダメ ノード数が同じなら特定の1ノードとの重みを1,それ以外を0でOK 情報の圧縮を考えるなら,増やすのも普通に考えると意味がない 14
  10. ファインチューニング n 最後の層に少し工夫 y1 yk yK x1 xi xI …

    … … … … … … … h1 h2 h3 hn 最後に適当な回帰層をくっつける x y = x 分類問題の場合: ロジスティック回帰層(シグモイドかソフトマックス) 回帰問題の場合: 線形回帰層 あとは誤差逆伝搬で調整 18
  11. 何かだまされているような…? n 勾配消失 で 深い層は計算できないのでは?? u 層ごとの貪欲法で何らかの重みは計算済み u この(事前学習した)状態で逆誤差伝搬すると, 学習が良い感じに進む!!!

    p 事前にいろいろやってきて,良い感じの値になってるので, ちょっと調整するだけでうまくいくイメージ 層ごとの貪欲法 を用いた 事前学習 と ファインチューニング で 教師あり学習 19
  12. 逆誤差伝搬 n 誤差の影響 δ を どんどん後ろに送る u δ は 前のδ

    に重みと活性化関数の微分値をかけたもの つながってるノード全部 の意 (l+1)層への入力の大きさ ※ f ではなく f’ (微分)な点に注意 j 前のノードまでの 誤差影響度の総和 (l+1)層までの誤差影響度 j ※ よくわからなければ,目をつぶっててください 22
  13. ReLU: Rectified Liner Unit n ちょっと特殊な形の関数 u 現在一般的に用いられる関数 正の範囲で微分値が1.0 ゼロの時は微分ができないため,

    その場合のみ,誤差伝搬がうまくできない問題も (まあ0か1かに割り当てて無理矢理動かしますが) 26
  14. ReLU の 家族 n よく似た派生形もいろいろ u 負の範囲の微分値がゼロは嫌:Leaky ReLU u 正の範囲の傾きを良い感じに:Parametric

    ReLU u 傾きは適当で良いのでは??:Randomized ReLU ※ カエルの子供はカエルではなく オタマジャクシです。念のため。 27
  15. 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の使い方,組み合わせ方の種類
  16. :Convolutional NN n 畳み込みニューラルネットワーク とも u 画像処理系によく使われるNN p 基本的なアイデアは意外と古く,1979年に日本の研究者 福島邦彦

    先生 が発表した ネオコグニトロン などがベース u 畳み込み層 と プーリング(サンプリング)層 を交互に積層 30 CNN CNN …の前に,NNでどうやって画像を扱うか? そもそも計算機は画像を同処理・表現するか?
  17. 機械はどのように画像を表現するか n 色は前述の通り,赤緑青の重ね合わせ u …3原色は 赤青黄 (Magenta, Cyan, Yellow)では?? p

    色の三原色はCMYだが,光の3原色はRGB(Red, Green,Blue) p モニターは発光して情報を伝えるので RGB が基本 32 ひとつひとつのセルはこんな感じで RGBの発光量を調整して色を表現
  18. 青色LEDの素晴らしさ n 学生の皆さんにはテレビ=液晶テレビですが… u 2003年くらいまではブラウン管テレビ が一般だった p 大きくて重く,奥行きがあり,30インチでも超大型 u なぜか???

    u 赤のLED,緑のLEDはあったけど,青がなかったから p LEDは発光力に優れ,壊れにくく,反応が高速!!! p なのでずっと使いたかったのだが,青がないので使えなかった 33 2014年 青色ダイオードの発明に関連し, 日本人の研究者がノーベル賞を受賞!
  19. ついでに画像の切り替え n 動画自体はパラパラアニメの要領 u 静止画を高速に切り替えていくことで動画にみせる n 静止画の切り替えは超単純 u 全部のセルを同時に変更したいけど,セルの数だけ 信号線を用意しないといけないので大変…

    p ケーブルが超太くなる… u 信号線は基本的にはRGBの3本の線だけ p 1セルずつ順番に更新していく p セルを高速に 走査 することで 一瞬で切り替わっているように見える 34 この更新の早さを リフレッシュレート という
  20. 機械はどのように画像を表現するか 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 とする 端のパネルは処理できないので落とす
  21. フィルタを用いた特徴抽出 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 ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という このフィルタを カーネル,フィルタの適用を 畳み込み という
  22. フィルタを用いた特徴抽出 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 このフィルタを カーネル,フィルタの適用を 畳み込み という ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という
  23. フィルタを用いた特徴抽出 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 ※ カーネルの各セル値は対象により最適値が異なる = 学習の余地がある 処理結果を 特徴マップ という このフィルタを カーネル,フィルタの適用を 畳み込み という
  24. 畳み込みの意味 n 画像の特徴を際立たせる ← パタン抽出器として機能するということ 41 1 0 1 0

    1 0 1 0 1 2 3 3 2 4 2 3 1 3 画像全体の中から, このXっぽい部分を探すと… 真ん中と,左上,右上,右下 あたりには合致しそうな箇所が! うまくフィルタを設計してあげることができれば, この画像には,こんな特徴がこのくらいある…ということが表現できる ひとつの画像にもいろいろな特徴があるので, 複数のフィルタを使って特徴をつかむ &
  25. プーリング 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とする プーリング は フィルタと違い,決められた演算を行うのみ
  26. NNでどうやって画像を扱うか 46 C1 C2 C3 B1 B2 B3 A1 A2

    A3 C1 B1 A1 A2 C3 B3 これを… … こうする A1B A1G A1R B1R C3B C3G … 色情報があれば さらに分解
  27. 画像1次元化の課題 n 画像のサイズは大きい… u かなり古い iPhone7 の段階で,4000 x 3000 を越える

    p 色の情報を加えると, 4000 x 3000 x 3 = 3,600万 !! • つまり 入力のサイズが 3,600万行 なので,学習に超時間がかかる… u 画像の特徴をうまく抽出し,もっと少ない情報で 表現できるようにしてあげないと,実用に耐えない u CNN は その辺の工夫を行った NN の手法 47
  28. n 畳み込みニューラルネットワーク とも u 画像処理系に解く使われるDNN p 基本的なアイデアは意外と古く,1979年に日本の研究者 福島邦彦 先生 が発表した

    ネオコグニトロン u 畳み込み層 と プーリング(サンプリング)層 を交互に積層 49 CNN CNN 先ほど見た画像の特徴抽出のこと。 フィルタのどのセルにどのくらい重みをつけるかがポイント ダウンサンプリングのこと。 Max か 平均 か位しかないので学習要素はない 特徴を際立たせつつ,少ない情報で表現する…のを繰り返す これにより,物体の識別などを上手く行えるNN
  29. n 共通する特徴を抜き出してどうこう…? u 本資料の最初の方で,イスを例に説明したとおり u 大量データの中からうまく共通した特徴を見つけ出す というのが,世界の記号化 n CNN =

    画像の特徴をうまく捉えて記号化する u 畳み込み と プーリング だけで できるのか?? u 残念,できない!! p と,いうわけで CNNの話が もう少し続きます 50 CNN CNN
  30. 畳み込みに関するパラメータ n 畳み込み を 行う上でのいくつかパラメータ u フィルタの数 p 1種類のフィルタだけで良い感じに特徴が出せる…ことは希 p

    何種類かのフィルタを用意して処理する u フィルタのサイズ p 小さすぎる(たとえば1x1)だと特徴が引っかかりすぎ, 大きすぎると引っかからなすぎ,ちょうど良いサイズにする必要 u フィルタの移動幅 p 1セルずつずらしても良いが大きいと処理に時間も… p フィルタのサイズ以下なら3セルなど一気に動かしても良い 51 CNN CNN (まれ)
  31. n ここまででわかったこと u CNN は 画像 から,何かの特徴を出せるらしい p NN で

    画像を扱うには サイズを減らして1次元にする必要 p 畳み込み で 特徴を探り, プーリング でダウンサンプリング • ネコのヒゲを捉えるフィルタ,ネコの柄を捉えるフィルタ… などなど,いろんな 畳み込み と圧縮を多段階で行う,ということ n 最終的に欲しいもの u 画像 の 特徴 というのが具体的に何なのか知りたい p ネコの画像を沢山与えて学習させたとして, 未知画像を これはネコ,これはネコじゃない と識別させたい 52 CNN CNN
  32. まとめ n 基本的には 画像 をうまく扱うための NN u 写真から ネコ を検出する…

    みたいなことを実現 n ポイント u 大きな画像をそのまま扱うのは大変なので圧縮する p 畳み込み と プーリング で,特徴を捉えつつダウンサイジング p 良い感じにダイエットしたところで,普通に学習させる u NN が 活躍するのは 畳み込み と 全結合 の2カ所 p 畳み込み 部分では,良い感じに特徴抽出できるよう学習 p 全結合 部分では,特徴とラベルの対応を学習 54 CNN CNN
  33. 残る課題 n 特徴抽出に際して図形の平行移動は対応可能 n しかし,ちょっと回転したりすると対応不能… n データの与え方の方を工夫する u 1枚の画像を数度ずつ回転させて複数回与えたり, おなじく拡大・縮小させて与えたり,反転したり,

    ちょっとゆがめてみたり,一部を隠したり… u どこまでも手間のかかることを… p これだけでも超面倒だし,これを計算させるわけなので, ひたすらめちゃめちゃ手間がかかる。 55 CNN CNN
  34. その後 n 毎度ながら,実はまだまだ続きが… n ここまで見てきた CNN に DNN の要素は…? u

    もちろん使える部分は多数あったが,基礎のアイデアが1979年に あったことからも明らかに,DNNじゃなくても良い u つまり,CNN 自体は DNN の一部分というわけではない n DNN の 成功を受けて,より DNN を活用した発展系も u AlexNet, VGG, GoogLeNet, ResNet などなど 56 CNN CNN