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

シリーズAI入門:11. ニューラルネットワーク

FSCjJh3NeB
February 03, 2021

シリーズAI入門:11. ニューラルネットワーク

単純パーセプトロンを中心にニューラルネットワークの概観を軽く眺めます。

FSCjJh3NeB

February 03, 2021
Tweet

More Decks by FSCjJh3NeB

Other Decks in Education

Transcript

  1. 本節の参考書 n これならわかる深層学習入門 u 瀧 雅人(著) p 講談社 (2017/10/21) p

    ISBN-10: 4061538284 p ISBN-13: 978-4061538283 u 説明も丁寧で,数式も一段ずつ しっかりおってあるので, きちんと勉強にするのにオススメ 2
  2. Neural Network : NN n 神経細胞(neuron)を模して設計された学習手法 u 単純パーセプトロン u 3層パーセプトロン

    u 誤差逆伝搬 u オートエンコーダ u ディープラーニング ざっくりとは, こんな感じに進化 3
  3. ニューロン: 神経細胞 n 刺激を受けると活動電位を変化させて情報を伝達 u 例えば,つつかれるとか何かされると電気を流し, 他の神経細胞に “なんか起きた” という情報を伝える p

    例えば,軽くつつかれたときは情報は伝えず, ある程度強くつつかれて初めて伝える…のような閾値も u 脳はこの情報伝達の連鎖で情報処理している 4
  4. 単純パーセプトロン 審査員 3人から, 合格を2票あつめたら, 次のステージに進める カエル:合格 ウサギ:合格 おさる:失格 審査員とその判定 合格が2票で

    閾値を超えたので 合格!!! カエル:失格 ウサギ:合格 おさる:失格 失格 u=2 u=1 y=1 y=0 x1 x2 x3 x1 x2 x3 審査員の投票=入力,結果(合否)=出力 6
  5. 単純パーセプトロン カエル:合格 ウサギ:合格 おさる:失格 審査員とその判定 合格が3票で 閾値を超えたので 合格!!! カエル:失格 ウサギ:合格

    おさる:失格 失格 u=3 u=1 y=1 y=0 大物審査員 カエルさんは 一人で2票持っている!!! 審査員 3人から, 合格を2票あつめたら, 次のステージに進める これが 重み w x1 x2 x3 x1 x2 x3 審査員の投票=入力,結果(合否)=出力 7
  6. 勾配降下法 n “最小値を探す” ための単純な手法のひとつ u 数学において,最小値探しはよくある(=大事な) 問題の一つ。数理最適化問題として知られる。 p 他の手法としては,例えばニュートン法など n

    手続きは単純 u 教師データを持っているため,重みw をある値に設定し た場合に,どのくらい正しく分類できるか計算可能 p 正しく分類 = 誤差を最小にする u 重みw をちょっと変えてみては誤差を調べる u 誤差が一番小さくなったら w を確定する 10
  7. 勾配降下法 n 重みを ちょっと変える ? u よさげな重みを探すのはOK u どう探すか??? u

    基本的には,誤差と重みの関 係は右図のようになっていて, どこかに 誤差最小 となる 最適解があるはず u なので,それを探す 重みをちょっとずつ変えてみて,誤差を最小にする すごく単純 11
  8. 勾配降下法 n 基本的な考え方 u ある 重み を設定したとき, 右図の微分値(傾き)を算出 u 微分値を用い

    重み を少し移動 p 当然,下っていく方に動かす u 上記を,繰り返していって, 傾きがある程度小さくなったら 打ち切り Start 本手法は 最急降下法 という ( 勾配降下法 ⊃ 最急降下法 ) 12
  9. 勾配降下法 n 誤差 と 重み の関係を表す関数は自明? u 当然,自明ではない(微分は可能そうだがどんな形か分からない) n 関数が自明でないのに,どう微分値を求める?

    u 解析的に求めず,力尽くで算出する p f(x) の 任意の点の微分値 を 求めたいのなら… …で,求めるのが早くて簡単 J 13 f(x) x x+δ f(x+δ)
  10. 勾配降下法 n 疑問点 u 例えば,右図のような関数を考える u 最適解は,当然 B u でも,前掲の手法だと

    A に落ち着いて, そこで解の探索を打ち切ってしまう… みたいなことも,起きたりするのでは?? u おっしゃるとおり!!! p 他にもいろいろな種類の課題が… B A 問題に対応したいろいろなバリエーション手法も ただし,計算量の問題もあり何を使うべきかはケースバイケース ※ ちなみに,線型モデルにおいては二乗誤差が凸関数になることが知られている 14
  11. 勾配降下法 n やってることはこれ 1発目 2発目 3発目 ちょっと上過ぎ? もう少し右下を狙おう やり過ぎた。 もう少し左かな

    やったね! 勾配降下法はこの方向を計算している 狙撃手は目が見えていなくて,スポッター(観測手,補助者)が “もうちょい右” など指示を出している…と考えると,より正解に近い 15
  12. 単純パーセプトロンの限界 n 2値分類はうまくいく …だがそれだけ… u しかも,線形分離可能なものだけしか扱えない p 必ずしも,有限回の試行で最適解に収束しない n やっぱりいろいろやらせたい!!

    u パーセプトロンちゃんは,やればできる子!! …多分… 線形分離可能 線形分離不可能 ※1 線形分離可能 = 直線でスパッと分けられるの意 ※2 より正確には “超平面” 16
  13. 単純パーセプトロン カエル:20 ウサギ:80 おさる:32 審査員とその判定 152点/400点 u=152 大物審査員 カエルさんは 評価点2倍

    で評価する 審査員 3人がそれぞれ, 100点満点で評価 これが 重み w x1 x2 x3 x1 x2 x3 審査員の採点=入力,結果(合否)=出力 合計時には重みをかけて40点 = 0.23 19
  14. フーリエ級数のイメージ n どんな複雑な波形も,単純な波形の組み合わせで 表現ができる! u ひとつの波形(関数)だけだと,複雑は無理 u ふたつだと,少し良い u みっつだと,さらに良い

    1項のみ 2項まで 3項まで 4項まで 方波形の フーリエ級数近似 @wikipedia n パーセプトロンも関数 u たくさんの関数を重ねれば, 複雑な連続関数を模倣できる※ u 多ければ多いほど表現力が増す 22 ※ cf. 普遍性定理
  15. 多層(3層)パーセプトロンの課題 n 明らかに重みの計算が大変 u 2層の時には,対象は1つだけだった p 勾配法の計算は1つだけ(それでも,最適解探しは面倒) u 3層では,隠れ層 +

    出力 の数 p 隠れ層が多いほど複雑なものにも対応できるし, 画像などベクトルを扱いたければ出力も増やす必要 が,これよりさらに根本的で大きな問題が… 25
  16. 多層(3層)パーセプトロンの課題 n 入力と出力のズレ(誤差)を最小化する重みの探索 u 単層でも多層でも,何を入れて,何が出てきて, それが正解とどのくらいズレてたか…しか わからない u 隠れ層の 重み

    はどう計算すれば良いのか??? p 隠れ層のどれが,出力に対してどのくらい影響しているか, というのがわからなければ,どこをどう調整して良いのやら… 誤差逆伝搬法 26
  17. 多層(3層)パーセプトロンの課題 … … w1 w2 wk wn x1 x2 xk

    xn y 正解データ ! y 誤差E 既知 既知 単純パーセプトロンでは 入力に対するズレがわかっているので, ズレを最小化するよう 重み を計算可能 w11 wJI x1 xi xI … … … h1 hJ y1 yk yK … … v11 vKJ 誤差E 正解データ 正解データ 正解データ 既知 既知 調整しようにもどこをどう調整すれば…? 未知 未知 未知 27
  18. 誤差逆伝搬:はじめに ─ 普通に考えるとすごく大変 n 例えば,全層が1素子のみの例を考える u これを勾配降下法でなんとかする u 間の層をまとめて,単純パーセプトロン的に扱えれば なんとかなるはず

    u やったね! …と,思いきや… u まとめられるけど,まとめること自体や,まとめたやつ (合成関数)を微分するというのが大変に面倒 x1 y1 ただの関数の連鎖なので,まぁ まとめる ことはできる ひとつの時はそこそこ楽だったのに… 28
  19. 誤差逆伝搬:分割統治 n それなら,ひとつずつ解いていったら? … … 何らかの 重み はついていて, 何かの入力に対し, 何らかの出力はしている

    赤のノードの出力がいくらで, どんな 重み がかかって, 自分に入力されてきたか,はわかる 最終局面では,誤差も当然わかる 29
  20. 誤差逆伝搬:図解0 n 概念と記法の整理 u パーセプトロンは,入力を合算して活性化関数を通し,出力 i j k ひとつ前の層の各出力に重みをつけたのの合算 任意の活性化関数(シグモイド関数など)

    出力は,入力の合算 u を活性化関数にかけたもの 数式怖い!という人は とりあえず,今はパスしてOK は,入力層から数えて,何層目かを示す 入力の合算 活性化関数 出力 ※ さっきまでは出力は y って書いてなかった?? ←最終出力は y ,途中の出力が z という関係です 30
  21. 誤差逆伝搬:図解4 n ノード j に入ってくる 誤差影響度※ は以下の通り u ひとつ先の層の誤差が赤のラインの通り集約 j

    i 前のノードまでの 誤差影響度の総和 ゴールからここまでの 誤差影響度 iの出力値 ※ 最終の誤差に与える影響の度合い 最終出力の 誤差を表す関数 誤差影響度 数式怖い!という人は 数式は見ないでOK 34
  22. 誤差逆伝搬:図解5 n ノード i,j の間の重みは u j への入力として, i の出力に対して

    この重み がかかる j i iの出力値 前のノードまでの 誤差影響度の総和 ゴールからここまでの 誤差影響度 35
  23. 誤差逆伝搬:図解6 n 重み の傾きは,出力値 と 誤差 との関係で決定 u 両方わかってるので,計算できる j

    i iの出力値 前のノードまでの 誤差影響度の総和 ゴールからここまでの 誤差影響度 36
  24. 偏微分について n 念のため,偏微分について確認 u 変数が複数あるとき,任意の変数以外を定数として微分 u 記号には を用いる たとえば… としたとき

    文章で説明するなら… 変数として x, y の2つをもつ,ある関数 z があったとして, 変数 x 以外の値が変わらないとしたら,z の変化量は 2x 37
  25. 偏微分について n 前頁で示した説明に基づくと,誤差逆伝搬の図解6スライド にあった謎の記号の意味は以下の通り このエッジの 重みw 以外が固定されているとして, この 重みw が,誤差全体に与える影響はどのくらい?

    その影響の度合いは… ノードj への入力z と,ゴールからここまでの影響度 δ を それぞれ掛け合わせたくらいの感じ (= wをいじると,入力に誤差をかけただけ動く) 急に数式が出てきてびっくりしたかもしれませんが, 難しいことは何もいってない。全然怖くない! 38
  26. 図解4の補遺 n ごちゃっとした式を少しだけ読み解く u やってることは,誤差の影響度合いの合計 p ノード j の 影響度合いは,前のノード前の影響度合いと,

    それらへのノードへの入力の大きさで決まる つながってるノード全部 の意 (l+1)層への入力の大きさ ※ f ではなく f’ (微分)な点に注意 j 前のノードまでの 誤差影響度の総和 (l+1)層までの誤差影響度 j 39
  27. 誤差逆伝搬:まとめ n めちゃめちゃ大変かと思ったけど, よくよく考えてみたら意外と簡単にいけた u 多層の場合,重さを求めるための微分(勾配算出)が ものすごく大変そうだと思われた p 合成関数を作って,微分するという操作は困難 u

    単純に解けないか,いろいろと考えてみたところ, 普通に一段ずつ出力を計算していって誤差を求め, 影響度を一段ずつ戻すだけで求められるとわかった u やったね! 多層にした場合であっても, 無理なく重みが求められるように 40
  28. n 数式を追わずに ふわっと簡単に説明しているので, 「は??当たり前じゃん」と思うかもしれませんが… n 普通に いつでも 一段ずつ戻せる訳ではない!! u 戻せるのは

    活性化関数 が一定の条件を満たしているから p 微分が可能(連続したなめらかな関数)であると言うこと • そもそも微分できないと勾配降下法が使えない p 微分値が一定ではないこと • y=ax+b の様な活性化関数であれば,微分はできるが傾き一定でダメ …など,いろいろな工夫をして 簡単にできるようにした のが実態 41 特にシグモイド関数は なので, 微分したときに元の関数が出てきて,微分をずーっと繰り返せる
  29. パーセプトロンのアイデアのまとめ n 入力に対して適切な出力を行うよう 重み を計算 u 教師付であるので,適切な出力とは誤差最小 u 数理最適化問題を解けばよく,ここでは勾配降下法など シンプルなアイデアを採用

    n 複雑な問題のために拡張すると課題 u 多層化することで対応したが,勾配の算出に課題 u 誤差逆伝搬という手法で,勾配の算出を実現 p 行いたかった 重み の計算が実現できた 42
  30. 多層パーセプトロンの課題:勾配消失 n 隠れ層を深くすると,重み の調整に失敗 u 誤差逆伝搬については,誤差の影響度をゴールから逆に どんどん先送りしていくのだった u 活性化関数 f

    の微分に重みをかけて送っていく p 微分値が1以下だと…? 仮に 0.1 だとする x1 y1 0.1 0.12 0.13 0.14 誤差の伝搬 層が深くなると,影響度がほぼゼロになる(勾配消失)のため, 入力に近い層になるほど 重み の学習がおこなわれなくなってしまう 0.14 = 0.00001 44
  31. ニューラルネットワークいろいろ n ここでは パーセプトロン を見てきたが, それ以外の種類の ニューラルネットワーク も存在 u 制限ボルツマンマシン

    p 確定的なネットワークであるパーセプトロン型のNWに対し, 確率的なネットワークを作成する p 教師なし のニューラルネットワーク u 自己組織化特徴マップ p こちらも 教師なし のニューラルネットワーク 47 深層学習 ブームの元は このタイプ