ニューラルネットワークの歴史と手法2

12.8K Views

June 01, 22

スライド概要

大学院で使っているニューラルネットワークの資料です.HubelとWeiselからLeNetまで取り扱っています.

現在作成中のため,recurrent neural networkが不足しています.

profile-image

コンピュータを使って色々計算しています.個人的な技術に関するメモと講義資料が置いてあります.気が向いた時に資料を修正しています. 公立小松大学臨床工学科准教授 https://researchmap.jp/read0128699

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ニューラルネットワークの 歴史と手法2 HubelとWeiselからLeNetまで 公立小松大学 藤田 一寿 Ver. 20241111 かなりマニアックな部分があります. 必ず元論文をチェックしましょう!!

2.

内容 • 視覚 • 自己組織化マップ • 多層パーセプトロン • 誤差逆伝播法 • Autoencoder • Hopfield networkとBoltzmann machineは他のスライドに • LeNet

3.

神経科学の発展とニューラル ネットワーク研究

4.

人間の視覚処理 第一次視覚野:V1 ITの構造 (Tanaka, 2003) (Kandel) 下側頭葉:IT (inferior temporal cortex) Figure 25-12 Possible functions mediated by the two pathways connecting visual processing centers in the cerebral cortex. The icons represent salient physiological properties of cells in these areas. On the top is the pathway extending to the posteri or parietal cortex, which is thought to be particularly involved in processing motion, depth, and spatial information. On the bottom is the pathway to the inferior temporal cortex, which is more concerned with form and color. Feeding into those two cortical pathways are the P an d M 腹側経路 pathways from the retina. (MT = middle temporal; LGN = lateral geniculate nucleus.) (Adapted from Van Essen and Gallant 1994.) V1の構造 (Carlson) V2 V4 網膜 V1 IT LGN 組み合わ 組み合わ センサ 角度 基本画像 features—movement, depth, form, and color. To express the specific combination of properties in the visual field at any given mo ment, せ せ independent groups of cells with different functions must temporarily be brought into association. As a result, there must be a mechanism Instead, as we have seen in this chapter, visual images typically are built up from the inputs of parallel pathways that process different by which the brain momentarily associates the information being processed independently by different cell populations in differe nt cortical regions. This mechanism, as yet unspecified, is called the binding mechanism.

5.

第一次視覚野の衝撃的な研究 • HubelとWieselの実験(1968年) • 第一次視覚野の神経細胞は方向に選択性を持つ.. Wiesel Hubel (Purves et al., Neuroscience)

6.

第1次視覚野 • 第1次視覚野では,似た角度を抽出 する細胞が隣り合っている. • さらに,それが見た目の位置が保 存された状態で並んでいる (retinotopical map). • このマップは,生後,自己組織的 に形成されている(生得的ではな い). (Blasdel, 1992) サルの脳の方位選択性

7.

脳の理論的研究とそのアプローチ • トップダウン的手法 • 脳を情報処理機械とみなし,その計算理論を明らかにすることで脳を理解する. • 機能から考える. • ボトムアップ的手法 • 脳を構成する構成要素とその相互作用により,どのようにして脳の情報処理機 能が実現しているのか明らかにする. • 部品から考える. 0, 1, 2, 3, 4 5, 6, 7, 8, 9 画像 脳 数字だとわかる

8.

David Marrの3つのレベル (Marr, 1982) • 計算論 • 計算の目的はなにか,なぜそれが適切なのか,そしてその実行可能な方略の理 論はなにか. • 表現とアルゴリズム • この計算理論はどのようにして実現することができるか,特に入出力の表現は なにか,そして,変換のためのアルゴリズムはなにか. • ハードウェアによる実現 • 表現とアルゴリズムがどのようにして物理的に実現されるか. 0, 1, 2, 3, 4 5, 6, 7, 8, 9 画像 脳 数字だとわかる

9.

HubelとWieselの研究に関係 • Self-organizing map (von der Marsberg,1976; Kohonen, 1982) • 入力されたベクトルを類似度に応じてd次元マップに射影する. • V1の角度マップを再現できる. • 似た入力をまとめる能力があるため,量子化などで使われる. • また,さらにd次元マップに射影できる特徴から,次元削減にも使われる. • Neocognitron (Fukushima, 1980) • 英語ではBiological cyberneticsの論文が初出である. • 畳み込みニューラルネットワークの元祖と言われる. • Neocognitronについては深層ニューラルネットワークで取り扱う. • Sparse coding (Olshausen, 1996)

10.

自己組織化マップ

11.

自己組織化マップ (Self organizing map) • ニューラルネットワークの一種である. • 第1次視覚野のモデルから出発した(von der Malsburg, 1976). • Kohonenの自己組織化マップが広く普及した(Kohonen, 1982). • 入力層と競合層の2層からなる. 競合層 von der Marburgは数理モデルで第1次視覚野の方位選択 性細胞のマップを再現した (von der Malsburg, 1973). 線は抽出した線の角度を表す. 入力層

12.

自己組織化マップ (Self organizing map) • 競合層のニューロンは入力の特徴を抽出する. • 例えば斜め45度の入力に対し応答するニューロンは,斜め45度の画像が 入ったとき発火する. • 斜め45度の入力に対し応答するニューロンに隣接するニューロンは斜め 45度に近い角度,たとえば40度や50度に応答するニューロンが並ぶ. (von der Malsburg, 1973) 波形を自己組織化マップに入れると,似た波形 を抽出するニューロン群ができる (Kohonen)

13.

Kohonenの自己組織化マップの構造 • Kohonenの自己組織化マップは入力層と競合層の2層からなる. • ネットワークはN個のニューロン(ユニット)で構成されており,それぞ れが重み𝒘𝑖 を持っている. • 重みはreference vector, codebook vectorなどとも呼ばれる. • 競合層では,入力に対し最も近い重みを持つユニットが発火する. • winner-take-all(勝者総取り)と呼ぶ. • 入力に対し最も近い重みを持つユニットを勝ちユニット(勝ちニューロン) と呼ぶ. 競合層 入力層

14.

Kohonenの自己組織化マップの構造 • 競合層ではユニットが格子状に配置されている. • ユニットの隣接関係は格子上での隣接関係で決まる. • 重みが最も近い2つのユニットが格子上で隣接でなければのそれらのユニッ トは隣接関係にない. • ユニットは競合層上の位置𝒓𝑖 に配置されている. 競合層 ユニット 重み:𝒘𝑖 競合層上での場所:𝒓𝑖 ユニットの隣接関係:格子で決まる ニューロンの位置𝒓𝑖 O 競合層の座標

15.

Kohonenの自己組織化マップのアルゴリズム 1. 入力𝒙(𝑡)を提示する. 2. 入力に最も近いユニットを勝者ユニット𝐶𝑤 とする. 𝑐 = argmin𝑖 𝒘𝑖 − 𝒙 3. 勝者ユニットとそれに隣接するユニットの重みを入力に近づける. 𝒘𝑡+1 ← 𝒘𝑡𝑖 + ℎ𝑐𝑖 𝑡 𝒙(𝑡) − 𝒘𝑖 𝑡 𝑖 ℎ𝑐𝑖 (𝑡)は隣接関数である. 𝒓𝑖 − 𝒓𝑐 2 ℎ𝑐𝑖 𝑡 = ℎ0 𝑡 exp − 𝜎2 𝑡 ℎ0 と𝜎は時間的に学習が進むにつれて減衰する. 4. ステップ数𝑡がある値以下ならば1に戻る. 勝者ユニット(winner)は best matching unitとも言う

16.

Kohonenの自己組織化マップの学習の様子 • 空間に一様に分布する入力を与えたところ,重みは空間全体に広がる. • ユニットの隣接関係は格子で固定されているので,競合層上で隣り合う ユニットは,近い入力に対し応答するようになる. (Kohonen)

17.

自己組織化マップで何ができるか • 次元削減 • ベクトル量子化 • データの可視化 • クラスタリング

18.

ニューラルネットワークから 人工ニューラルネットワーク へ

19.

多層パーセプトロン

20.

多層パーセプトロン • いわゆるパーセプトロンは線形分離不可能な問題を解けない. • データを直線で分けられる問題しか解けない • 例:AND演算は解けるが,XOR演算は解けない. • パーセプトロンで線形分離不可能な問題を解くための方法として多層化が ある(多層パーセプトロン). • Rosenblattはパーセプトロンを多層化することで線形分離不可能な問題を解け るようにした. 2 2 2 1 1 2 2 1 2 1 直線で分けられる. パーセプトロンで解ける. 2 1 1 2 直線で分けられない. パーセプトロンで解けない

21.

多層パーセプトロンでXOR演算を実現する (0, 1) 1 0 出力1 (1, 1) 入力1 (0, 0) 0 (0, 1) 1 0 (1, 1) 1 入力 出力1 出力2 出力3 (0, 0) 0 0 0 (0, 1) 0 1 1 (1, 0) 1 0 1 (1, 1) 0 0 0 (1, 0) (1, 0)のときに1を出力するネットワーク1 出力1 (0, 0) 0 1 出力3 (1, 0) XORは線形分離不 可能な問題 (0, 1) 1 0 (1, 1) 入力1 (0, 0) 0 1 出力2 (1, 0) 2つのネットワークの出 力のどちらかが1のとき 1を出力するネットワー ク3 (0, 1)のときに1を出力するネットワーク2 2このネットワークで直線を2本ひいて,もう一つのネットワークでそれらを統合すると考えることもできる.

22.

XOR演算を実現するための多層パーセプトロン • XOR演算を実現するには図のような2層のパーセプトロンを作れば良 いことが前のスライドから分かった. • 入力を生成する層を入力層,出力を生成する層を出力層,入力層と出 力層の間の層を中間層もしくは隠れ層という. 入力層 中間層 出力層 入力層を数えて3層というこ ともある.この資料では,入 力層は数えないことにする. ニューロンのことをユニット とも言う.

23.

多層化の問題 • 多層化により線形分離不可能な問題が解ける. • しかし,どのように多層化したパーセプトロンを学習すればよい分か らない. • Rosenblattはランダム接続を用いることで,運任せであるが入力を線形分 離可能な状態に変換しようとした. このネットワークを使えばXOR演算を実現で きる.しかし,実現するための重みを自動を 決める方法が分からない.

24.

多層パーセプトロンの数式表 現 ひとまず,学習方法を導くために多層パーセプトロンの数式表現を見てみよう

25.

多層パーセプトロンの数式表現 • 図のような2層のニューラルネットワークを考える. • このネットワークは入力は𝐷次元ベクトル,出力は𝐾次元ベクトルであ る. • 一度に全体を考えるのは難しいので,入力層と中間層から考えていこ 中間層 う. 入力層 出力層

26.

中間層のユニットの出力 • 入力は𝐷次元であるとすると,入力ユニットは𝐷個ある. • 入力 𝒙 は𝐷次元ベクトルで表現できるので入力は次のように表される. • 𝒙 = 𝑥0 , 𝑥1 , … , 𝑥𝑖 … , 𝑥𝐷 T • 𝑥𝑖 が入力ユニットiの出力である. • 𝑥0 は常に1である. 中間層 入力層 𝑥𝐷 (1) 𝑤𝑗𝐷 … (1) 𝑤𝑗𝑖 𝑥𝑖 (1) … 𝑥0 𝑤𝑗0 𝑧𝑗

27.

中間層のユニットの出力 • 中間層のユニット𝑗と入力層のユニット𝑖の重みを • (1) 𝒘𝑗 = (1) (1) (1) T 𝑤𝑗0 , 𝑤𝑗1 , … , 𝑤𝑗𝐷 • とすると,中間層のユニット𝑗の入力 𝑎𝑗 は次のように書ける. (1) 1 T 𝐷 • 𝑎𝑗 = σ𝑖=0 𝑤𝑗𝑖 𝑥𝑖 = 𝒘𝑗 𝒙 中間層 • つまり,入力と重みをかけたものの総和が入力になる. 入力層 • 中間層のユニット𝑗の入力 𝑧𝑗 は次のように書ける. 𝑥𝐷 … • 𝑧𝑗 = ℎ 𝑎𝑗 • ℎ ⋅ は活性化関数である. (1) 𝑤𝑗𝐷 (1) 𝑤𝑗𝑖 𝑥𝑖 … 𝑥0 (1) 𝑤𝑗0 𝑎𝑗 𝑧𝑗

28.

出力層のユニットの出力 • 中間層のユニットが𝑀個あるとする. • 中間層の出力𝒁は𝑀次元ベクトルで表現できるので次のように表される. T • 𝒛 = 𝑧0 , 𝑧1 , … , 𝑧𝑗 … , 𝑧𝐷 出力層 中間層 • 𝑧𝑗 が中間層のユニット𝑗の出力である. 𝑧𝑀 • 𝑧0 は常に1である. (2) (2) (2) (2) • 𝒘𝑘 = 𝑤𝑘0 , 𝑤𝑘1 , … , 𝑤𝑘𝑀 T … • 中間層のユニット𝑗と出力層のユニット𝑘の重みを (2) … (2) 2 T 𝒛 • 中間層のユニットjの入力 𝑧𝑗 は次のように書ける. • 𝑦𝑘 = 𝜎 𝑎𝑘 • 𝜎 ⋅ は活性化関数である. (2) 𝑤𝑘𝑗 𝑧𝑗 • とすると, 出力層のユニット𝑘の入力 𝑎𝑘 は次のように書ける. • 𝑎𝑘 = σ𝑀 𝑗=0 𝑤𝑘𝑗 𝑧𝑗 = 𝒘𝑘 (2) 𝑤𝑘𝑀 𝑧0 𝑤𝑘0 𝑎𝑘 𝑦𝑘

29.

多層パーセプトロンの数式表現まとめ • 図のような2層のニューラルネットワークを考える. • 出力層のユニットkの出力 𝑦𝑘 は次のように書ける. • 𝑎𝑗 1 中間層 (1) 1 T 𝑀 = σ𝑖=0 𝑤𝑗𝑖 𝑥𝑖 = 𝒘𝑗 𝒙 入力層 • 𝑧𝑗 = ℎ 𝑎𝑗 1 • 𝑎𝑘2 𝑎𝑗 (2) 2 T 𝑀 = σ𝑗=0 𝑤𝑘𝑗 𝑧𝑗 = 𝒘𝑘 𝒛 • 𝑦𝑘 = 𝜎 𝑎𝑘2 出力層 𝒙 = 𝑥0, 𝑥1, … , 𝑥𝐷 T :入力 (1) (1) (1) (1) T (2) (2) (2) (2) T 𝒘𝑗 = 𝑤𝑗0 , 𝑤𝑗1 , … , 𝑤𝑗𝐷 :中間層のユニットjと入力層 のユニット間の重み 𝒛 = 𝑧0, 𝑧1, … , 𝑧𝐷 T :中間層のユニットの出力 𝒘𝑘 = 𝑤𝑘0 , 𝑤𝑘1 , … , 𝑤𝑘𝑀 のユニット間の重み :出力層のユニットkと中間層 1 2 𝑎𝑘

30.

出力を1つの式で書いてみる • 出力層のユニット𝑘の出力 𝑦𝑘 1つの式で書くと次のようになる. (2) (1) 𝑀 σ • 𝑦𝑘 = 𝜎 σ𝑀 𝑤 ℎ 𝑗=0 𝑘𝑗 𝑖=0 𝑤𝑗𝑖 𝑥𝑖 • すべての重みをまとめたベクトルを 𝒘とすると,出力は 𝒘と 𝒙の関数 𝑦𝑘 (𝒘, 𝒙)である. 中間層 入力層 出力層

31.

多層パーセプトロンの誤差関 数

32.

多層パーセプトロンの誤差関数 • 多層パーセプトロンは分類機である. • つまり,多層パーセプトロンは入力に対しラベルを付ける. • しかし,多層パーセプトロンは正しいラベルをつけるとは限らない. • どの程度間違っているか(どの程度正確か)を定量的に評価する必要 中間層 がある. 入力層 出力層 出力が1だった. 正しいラベルは0である. どれほど間違っている? 入力

33.

多層パーセプトロンの誤差関数 • ラベルに対応した目標ベクトル𝒕𝑛 が付いた入力 𝒙𝑛 が多層パーセプトロ ンに入力されたとき,出力が 𝒚 𝒘, 𝒙𝑛 = (𝑦1 , . . , 𝑦𝑘 , … , 𝑦𝐾 )であったとす る. • このとき,出力が目標ベクトルにどれほど近いかを評価したい. • 近い遠いなので,出力と目標ベクトルの距離の2乗を評価基準とする. 数式で書くと 中間層 1 • 𝐸𝑛 (𝒘) = 2 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 2 • となる. 𝟏 は後々数式を格好良くするためのものである. 𝟐 • これを2乗誤差という. ⋅ はL2ノルムであり,ベクトルの大きさを表す.つまりユークリッド距離を計算している. 𝑎, 𝑏 2 = 𝑎, 𝑏 𝑎, 𝑏 T = 𝑎2 + 𝑏2 L2ノルム(ユークリッド距離)でなくても,例えばマンハッタン距離でも良いのではと考える人 がいるかも知れない.もちろんどんな距離でも良い. では,なぜユークリッド距離なのか考えてみると面白い. 入力層 出力層

34.

多層パーセプトロンの誤差関数 • 𝒙𝑛 が𝑁個あるとする. • 𝑁個すべての入力に対する出力と目標ベクトルの2乗誤差は 1 2 • 𝐸 𝒘 = 2 σ𝑁 𝑛=1 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 • となる. • これを誤差関数と呼ぶ. • 誤差関数の値が小さければ小さいほど,出力と目標ベクトルの差が小 さい. • つまり, 誤差関数の値が小さければ小さいほど性能が良い. 誤差関数として2乗誤差を紹介したが,必ずしも2乗誤差である必要はない.必要に応じ(取り扱う問題に 応じ),誤差関数を作る必要がある.2乗誤差以外でよく使われるものにクロスエントロピーがある.

35.

出力と答えの差=誤差 中間層 入力層 出力層 入力 𝒙𝑛 出力 答え 𝒚𝑛 (𝒘, 𝒙𝑛 ) 𝒕𝑘 出力と答えの差 出力と答えの差の大きさの総和=誤差 𝒚𝑛 𝒘, 𝒙𝑛 − 𝒕𝑛 𝑁 𝐸 𝒘 = 1 ෍ 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 2 2 𝑛=1 出力 𝒚𝑛 (𝒘, 𝒙𝑛 ) 𝒕𝑘 答え

36.

ニューラルネットワークの学 習とバックプロパゲーション

37.

誤差関数の最小化 • 性能が良いニューラルネットワークを作るということは,誤差関数の 値を小さくする重み 𝒘を探すということになる(ただしネットワーク の構造は同じとする). 誤差関数の値 が小さい 性能が良い 誤差関数の値 を小さくする 重みを探す 性能を良くし たい

38.

誤差関数の最小化 • 誤差関数の値を小さくする重み 𝒘をどう探すか. • 高校数学では関数の最小値を求めるとき,極小値(微分が0)を求めた. • つまり,重みが𝒘のとき誤差関数𝐸 𝒘 を最小にする場合 • ∇𝐸 𝒘 = 0 • を満たすと考えられる. • しかし,解析的に求めるのは無理である. ∇𝐸 𝒘 は 𝐸 𝒘 の勾配を意味する.よくわからなければ単に微分(つまり傾き)と思っておく. ∇𝐸 𝒘 = 0の時,誤差が最小になるためには𝐸 𝒘 が凸関数である必要がある.しかし,𝐸 𝒘 が凸関数 である保証は無い.つまり, ∇𝐸 𝒘 = 0 のときの𝒘を求めても,それが誤差を最小にするとは限らな い. 誤差を最小とする重みではないかもしれないが,分類がそこそこ正確にできれば良いので今は深 く考えないでおこう. 𝐸 𝒘 の関数 ∇𝐸 𝒘 ≠ 0 ∇𝐸 𝒘 = 0 接線

39.

勾配降下 • 勾配を用いて繰り返し計算で∇𝐸 𝒘 = 0となる𝒘を求める方法に勾配 降下法がある. • 𝜏回繰り返し計算し求めた重みを 𝒘𝜏 としたとき,次の𝜏 + 1回目の計 算で求まる重み 𝒘𝜏+1 は • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸 𝒘𝜏 • と書ける. • 𝜂は学習率と呼ばれるパラメタである.

40.

図による勾配降下の理解 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸 𝒘𝜏 𝐸 𝒘 の関数 𝐸 𝒘 の関数 −𝜂∇𝐸 𝒘0 𝒘1 𝒘0 𝒘0 から−𝜂∇𝐸 𝒘0 移動する. −𝜂∇𝐸 𝒘1 𝒘2 𝒘1 𝒘1 から−𝜂∇𝐸 𝒘1 移動する. −𝜂∇𝐸 𝒘1 は∇𝐸 𝒘0 より小さいため移動距離は小さくなる. 𝐸 𝒘 が最小値に近づけば近づくほど勾配が小さくなり,それに伴い𝒘の移動距離が小さくなる. 𝐸 𝒘 が最小値になるところまで 𝒘 移動すれば,勾配が0となり 𝒘 の移動距離も0となる.

41.

Online learning, batch learning, mini-batch learning • 3種類の重みの更新方法がある. • Online learning • データ一つづつ用い学習する.訓練データの総数が分からない場合やコンピュータのメモリが少ない場合有効である.た だし,学習が一つ一つのデータに影響される.つまり,学習に対しノイズや外れ値の影響がある. • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸𝑛 𝒘𝜏 𝟏 • 𝐸𝑛 (𝒘) = 𝟐 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝟐 • Batch learning • 訓練データすべて用い学習する.すべてのデータを使うため,学習がノイズや外れ値などの影響を受けにくい.逆に,ノ イズや外れ値の影響が少ないため,local mimimumから抜け出すのが難しいかもしれない.また,大量のメモリが必要で ある. • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸 𝒘𝜏 𝟏 𝟐 = σ𝑁 𝑬 • 𝐸 𝒘 = 𝟐 σ𝑁 𝑛=1 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝑛=1 𝑛 誤差関数は凸関数ではないので,多数の局所最小値(local minimum)を持つ. • Mini-batch learning • 訓練データをいくつかに分け,それぞれについて学習する.現在最も使われる.Onlineとbatchの良いとこ取り. • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸𝑏 𝒘𝜏 𝟏 • 𝐸𝑏 𝒘 = 𝟐 σ𝒙𝑛∈𝑿batch 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝟐 • 𝑿batchにはbatch size個のデータ点 𝒙𝑛 が入っている. このスライドでは誤差の総和を取っているが平均でも良い. 誤差の大きさを学習率で調整するか,個数で割って調整する かの差である.

42.

勾配の計算:1層のニューラルネットワークの場合 • 勾配法を使うには誤差関数の勾配を求める必要がある. • まず図のような1層のニューラルネットワークを考える. • 目標ベクトル𝒕𝑛 = 𝑡𝑛1, … , 𝑡𝑛𝑖 , … , 𝑡𝑛𝐾 T が付いたデータ 𝒙𝑛 = 𝑥𝑛0, … , 𝑥𝑛𝑖 , … , 𝑥𝑛𝐷 Tをネットワークに入力したときの出力を𝒚𝑛 = 𝑦𝑛1, … , 𝑦𝑛𝑖 , … , 𝑦𝑛𝐾 T とする. • このときの誤差関数は 入力層 1 • 𝐸𝑛 (𝒘) = 2 σ𝑘 𝑦𝑛𝑘 − 𝑡𝑛𝑘 2 𝑥𝐷 出力層 𝑦𝐾 𝑤𝑘𝐷 … 𝑤𝑘𝑖 𝑦𝑘 𝑥𝑖 … 目標ベクトルが持つ数値の個数K 1つの入力が持つ数値の個数D 出力が持つ数値の個数K 𝑥0 𝑤𝑘0 𝑦1

43.

勾配の計算:1層のニューラルネットワークの場合 • 出力𝑦𝑛𝑘 は次のように書けるとする. • 𝑦𝑛𝑘 = σ𝑖 𝑤𝑘𝑖 𝑥𝑛𝑖 • 𝐸𝑛 (𝒘)を 𝑤𝑘𝑖 で微分すると 𝑖 2 = ෍ 𝑤𝑘𝑖 𝑥𝑛𝑖 − 𝑡𝑛𝑘 𝑥𝑛𝑖 … 𝑘 𝑤𝑘𝐷 𝑤𝑘𝑖 𝑦𝑘 𝑥𝑖 𝑘 𝜕 1 ෍ ෍ 𝑤𝑘𝑖 𝑥𝑛𝑖 − 𝑡𝑛𝑘 𝜕𝑤𝑘𝑖 2 𝑦𝐾 𝑥𝐷 … 𝜕𝐸𝑛 𝜕 1 = ෍ 𝑦𝑛𝑘 − 𝑡𝑛𝑘 2 𝜕𝑤𝑘𝑖 𝜕𝑤𝑘𝑖 2 = 出力層 入力層 𝑖 = 𝑦𝑛𝑘 − 𝑡𝑛𝑘 𝑥𝑛𝑖 • となる. • これを勾配法で使えば,最適な𝒘が求まる. 𝑥0 𝑤𝑘0 𝑦1

44.

多層パーセプトロンの数式表現の振り返り • 図のような2層のニューラルネットワークを考える. • 出力層のユニットkの出力 𝑦𝑘 は次のように書ける. • 𝑎𝑗 1 中間層 (1) 1 T 𝑀 = σ𝑖=0 𝑤𝑗𝑖 𝑥𝑖 = 𝒘𝑗 𝒙 入力層 • 𝑧𝑗 = ℎ 𝑎𝑗 1 • 𝑎𝑘2 𝑎𝑗 (2) 2 T 𝑀 = σ𝑗=0 𝑤𝑘𝑗 𝑧𝑗 = 𝒘𝑘 𝒛 • 𝑦𝑘 = ℎ 𝑎𝑘2 出力層 𝒙 = 𝑥0, 𝑥1, … , 𝑥𝐷 T :入力 (1) (1) (1) (1) T (2) (2) (2) (2) T 𝒘𝑗 = 𝑤𝑗0 , 𝑤𝑗1 , … , 𝑤𝑗𝐷 :中間層のユニットjと入力層 のユニット間の重み 𝒛 = 𝑧0, 𝑧1, … , 𝑧𝐷 T :中間層のユニットの出力 𝒘𝑘 = 𝑤𝑘0 , 𝑤𝑘1 , … , 𝑤𝑘𝑀 のユニット間の重み :出力層のユニットkと中間層 1 2 𝑎𝑘

45.

多層パーセプトロンの誤差関数の微分 • ラベル 𝒕𝑛 = (𝑡𝑛1 , … , 𝑡𝑛𝑖 , … , 𝑡𝑛𝐾 ) が付いたデータ 𝒙𝑛 = (𝑥𝑛0 , … , 𝑥𝑛𝑖 , … , 𝑥𝑛𝐷 )を ネットワークに入力したときの出力を𝒚𝑛 = (𝑦𝑛1 , … , 𝑦𝑛𝑖 , … , 𝑦𝑛𝐾 ) とする. • このときの誤差関数は 1 𝐸𝑛 𝒘 = ෍ 𝑦𝑛𝑘 − 𝑡𝑛𝑘 2 2 𝑘 2 1 (2) 2 = ෍ ℎ 𝑎𝑘 𝒘𝑘 − 𝑡𝑛𝑘 2 中間層 入力層 𝑘 𝑎𝑗 • と書ける. • 𝑤𝑘𝑗 について誤差関数の微分をとると 2 𝜕𝐸𝑛 𝜕𝑎𝑘 • (2) = (2) (2) 𝜕𝑤𝑘𝑗 𝜕𝑎𝑘 𝜕𝑤𝑘𝑗 𝜕𝐸𝑛 出力層 • となる.この式はチェインルールを用い導いている. 1 2 𝑎𝑘

46.

多層パーセプトロンの誤差関数の微分 2 𝜕𝐸𝑛 𝜕𝐸𝑛 𝜕𝑎𝑘 • (2) = 2 (2) 𝜕𝑎𝑘 𝜕𝑤𝑘𝑗 𝜕𝑤 中間層 𝑘𝑗 2 𝜕𝑎𝑘 (2) 𝜕𝑤𝑘𝑗 2 入力層 = • 𝛿𝑘 ≡ • 𝜕𝐸𝑛 (2) 𝜕𝑤𝑘𝑗 出力層 𝜕 (2) 𝑀 σ 𝑤 (2) 𝑗=0 𝑘𝑗 𝑧𝑗 = 𝑧𝑗 𝜕𝑤𝑘𝑗 𝑎𝑗 𝜕𝐸𝑛 ,とすると 𝜕𝑎𝑘 2 1 𝑎𝑘 = 𝛿𝑘2 𝑧𝑗 • と書ける. • ここで 𝛿𝑘 を誤差という. 𝑀 2 𝑎𝑘 (2) 2 T = ෍ 𝑤𝑘𝑗 𝑧𝑗 = 𝒘𝑘 𝑗=0 𝒛

47.

多層パーセプトロンの誤差関数の微分 • 𝛿𝑗 1 ≡ 𝜕𝐸𝑛 𝜕𝑎𝑗 1 2 𝐸𝑛 = ෍ ℎ 𝑎𝑘 2 𝑘 2 とすると = 𝐸𝑛 𝑎1 𝜕𝐸𝑛 1 • 𝛿𝑗 • 1 2 𝑎𝑘 • 𝛿𝑗 1 ≡ 𝜕𝐸𝑛 1 𝜕𝑎𝑗 = 𝜕 1 1 2 𝜕𝑎𝑗 σ𝑘 ℎ 2 𝑎𝑘 − 𝑡𝑛𝑘 𝜕𝑎𝑗 2 𝜕𝐸𝑛 1 𝜕𝑎𝑗 = 1 𝜕𝑎𝑗 2 σ𝑘 ℎ 𝑎𝑘2 𝑎𝑗 1 2 2 2 = 𝐸𝑛 𝑎1 , … , 𝑎𝑘 … , 𝑎𝑀 𝑎𝑗 1 2 … , 𝑎𝑀 𝑎𝑗 1 𝜕𝐸𝑛 𝜕𝑎1 2 𝜕𝑎1 1 𝜕𝑎𝑗 + ⋯+ 2 𝜕𝐸𝑛 𝜕𝑎𝑘 2 𝜕𝑎𝑘 1 𝜕𝑎𝑗 2 +…= σ𝑘 𝜕𝐸𝑛 𝜕𝑎𝑘 2 𝜕𝑎𝑘 1 𝜕𝑎𝑗 中間層 2 − 𝑡𝑛𝑘 2 , … , 𝑎𝑘 2 = (2) 1 1 2 を計算する時,多変数関数のチェインルールを使う. 1 2 1 = σ𝑀 だから 𝑎𝑘 は 𝑎𝑗 の関数である. 𝑗=0 𝑤𝑘𝑗 ℎ 𝑎𝑗 𝜕 𝑎𝑗 − 𝑡𝑛𝑘 =σ 入力層 出力層 𝑎𝑗 2 𝜕𝐸𝑛 𝜕𝑎𝑘 𝑘 2 1 𝜕𝑎𝑘 𝜕𝑎𝑗 1 2 𝑎𝑘 • これが中間層の誤差となる. 𝛿𝑗 1 2 2 2 𝜕𝑎𝑘 σ = σ𝑘 2 = 𝛿 𝑘 𝑘 1 𝜕𝑎 𝜕𝑎 𝜕𝑎 1 𝜕𝐸𝑛 𝜕𝑎𝑘 𝑘 𝑗 2 = σ𝑘 𝛿𝑘 𝑗 𝜕 1 𝜕𝑎𝑗 2 1 σ𝑀 𝑗=0 𝑤𝑘𝑗 ℎ 𝑎𝑗 2 = ℎ′ 𝑎𝑗 1 σ𝑘 𝛿𝑘 𝑤𝑘𝑗 2 • この式をみると,出力層の誤差 𝛿𝑘 が中間層の誤差に出てきている. • これは誤差が中間層に伝播したと考えられるので,誤差の逆伝播という. (2)

48.

誤差逆伝播法(バックプロパゲーション法) • 中間層jの誤差は𝛿𝑗 1 = ℎ′ 𝑎𝑗 1 (2) のように書けた. σ𝑘 𝛿𝑘2 𝑤𝑘𝑗 • この式は,隣接する中間層𝑙と𝑚の間でも成り立つ(𝑚の方が出力に近いと する). • 𝛿𝑗 𝑙 = ℎ′ 𝑎𝑗 𝑙 (𝑚) σ𝑘 𝛿𝑘𝑚 𝑤𝑘𝑗 • このように,誤差は出力層から入力層へ伝播していく. • 出力層から入力層へ伝播することを逆伝播という. • この誤差を使い,最適な重みを求める方法を誤差逆伝播法(バックプロパ ゲーション法)という.

49.

様々な活性化関数 • 誤差逆伝播法を使い多層パーセプトロンを学習可能にするためには, 誤差が微分できなければならないし,微分が値を持たなければならな い. • つまり,パーセプトロンで用いたステップ関数の微分は,0以外のとき 0となり,誤差逆伝播法では使えない. • 微分が0だと,誤差 𝛿𝑙 が0となる. • 多層パーセプトロンでは次に紹介する活性化関数がよく用いられる.

50.

多層パーセプトロンと活性化 関数

51.

様々な活性化関数 昔の主流 Sigmoid関数 ℎ 𝑥 = 1 1 + exp(−𝑥) tanh関数 ℎ 𝑥 = tanh 𝑥 今使われている Rectified linear関数 (Rectified Linear Unit: ReLU) 𝑥 if 𝑥 ≥ 0 ℎ 𝑥 =ቊ 0 otherwise Leaky rectified linear関数 𝑥 if 𝑥 ≥ 0 ℎ 𝑥 =ቊ 𝑎𝑥 otherwise GELU (Gaussian Error Linear Unit) ℎ 𝑥 = 𝑥Φ 𝑥 = 𝑥 𝑥 1 + erf 2 2 Φ 𝑥 :ガウス分布の累積分布関数 erf: Gaussian error function 出力を0-1にしたい場合や − 1-1にしたい場合は,今で もsigmoid関数とtanhが使わ れる.

52.

なぜSigmoid関数なのか • Sigmoid関数は式展開しやすい. • 神経細胞の応答と親和性が高い. 1. 神経細胞の発火率は入力を大きくすればするほど大きくなる.しかし, 発火率は一定以上には上がらない. 2. イオンチャネルの開閉確率は膜電位の大きさに依存する. 3. 神経細胞集団内の発火する神経細胞の数は入力を増やせば増やすほど大 きくなる.しかし,神経細胞の数の上限は決まっている. 入力 3 発火数 開閉確率 2 発火率 1 膜電位 入力

53.

現在はReLUを使う • Sigmoid関数は初期の人工ニューラルネットワークでよく使われてい た. • 現在は,特別な考えがなければReLUを使えば良い(Bishop and Bishop, 2023). • ReLUはより深いネットワークを効率的に学習できる. • 重みのランダムな初期化に対する感度が低下する. • 8bit固定小数点型のような低精度な型に対しても適している.

54.

Rectified linearはFukushimaが初めて使った? • 現在主流のReLUはFukushimaが1969年の論文ですでに使っている. (Fukushima 1969より)

55.

なぜこのような神経生理学とは異なる発想ができたのだろうか • ステップ関数やSigmoid関数の方が神経細胞の応答と対応させられる. • 神経細胞の発火率は入力が強ければ強いほど高くなるが,発火率の高さには限 界がありいずれ飽和する. • しかし,Fukushimaはなぜ神経細胞の応答と対応させにくいReLUを発想 できたのか? • Fukushimaは「生理学からはヒントをもらうが,開発時には実際の脳は いったん忘れて研究を進めることが重要だ.ただ,それだけではいずれ限 界が来る.その時はもう一度,生理学に戻って考える.これを繰り返すこ とで,前進していけるだろう」(NikkeiBPnet, 2015)と語っている. • これはKanadeの「素人発想,玄人実行」にも通じる.

56.

普遍的な近似器 • 2層ニューラルネットワークは,幅広い活性化関数において,任意の精 度で関数の近似ができる. • このことから,ニューラルネットワークは普遍的な近似器であると言 われる(Bishop and Bishop, 2023). • ニューラルネットワークが近似器だからといって,学習によりそれを 見つけられるかどうかは分からない.

57.

普遍的な近似器 • 2層ニューラルネットワークは,幅広い活性化関数において,任意の精 度で関数の近似ができる. • このことから,ニューラルネットワークは普遍的な近似器であると言 われる(Bishop and Bishop, 2023). • ニューラルネットワークが近似器だからといって,学習によりそれを 見つけられるかどうかは分からない.

58.

多層パーセプトロンの限界

59.

多層パーセプトロンの限界 • 深層化に限界があった. • ネットワークの層を増やしても意味がない. • 勾配消失問題 • 何が起こっているか良く分からない. • ニューラルネットワークはブラックボックスになってしまう. • では他の手法はブラックボックスではないのかというと,どうなんでしょう. • これら問題とサポートベクタマシン(SVM)の登場により,ニューラルネットワ ークの冬の時代が訪れる. • SVMの考え方は単純である(理解は難しいが). • ライブラリを簡単に使える. • SVMはパラメタを調整することで結果が変わる.パラメタの値でSVMの状態を説明でき た気になれる. • 分類機の主流はニューラルネットワークからSVMへ移行した.

60.

深くしても意味がない • 通常,層間の接続はランダムな値で初期化される. • ランダムなネットワークは,入力を何らかのパターンに変換する. • 深い(層が多い)ネットワークでは,入力層に近いランダムなネットワークが入力を変換し,そのラ ンダムネットワークの出力パターンを出力層に近いネットワークが学習するという現象が起こる. • ランダムネットワークの出力パターンを用いればデータを識別できてしまうため,入力に近い層は学 習する必要がない. • つまり,深い多層パーセプトロンではランダムネットワークと識別ネットワークの2重構造になる. • この構造は,Rosenblattのパーセプトロンと同じである. • 以上のような現象が起こるため,無闇にネットワークを深くしてもランダムネットワークが大きくな るだけで意味がないかもしれない. ランダムな値に初期化 入力 ランダムな値のまま 出力 入力 学習が進む 出力 学習 出力層に近いネットワークがランダムネットワークで変換されたパターンを覚える.

61.

勾配が消える(勾配消失問題) • Sigmoid関数を使った場合,入力層に近い中間層の誤差が小さくなる. • その結果,勾配も小さくなり,入力層に近い中間層の学習が進まない. • 詳細はつぎのスライド

62.

Sigmoid関数とReLUの比較 • 誤差逆伝播法に出てくる誤差𝛿𝑙 = ℎ′ 𝑎𝑙 σ𝑚 𝛿𝑚 𝑤𝑚𝑙 を見 ると活性化関数の微分が出てくる. Sigmoid関数 • Sigmoid関数の微分はxが0から離れると小さくなり0に漸 近する.つまり,Sigmoid関数を使うと 𝑎𝑙 が0から離れ ると誤差が0に近くなる.その場合誤差も0に近づき学習 が進まない. ℎ 𝑥 = • Sigmoid関数の微分の最大値は0.25である.誤差の式をみ ると誤差 𝛿𝑚 と微分 ℎ′ 𝑎𝑙 の積になっている.誤差𝛿𝑚 も 誤差と微分の積になっている.この積算は再帰的に行わ れるため,層が増えれば増えるほど誤差がかけられるこ とになる.つまり,ネットワークの層が多い場合,入力 に近いそうの誤差が0に近づく. 微分 1 1 + exp(−𝑥)

63.

Sigmoid関数とReLUの比較 • 誤差逆伝播法に出てくる誤差𝛿𝑙 = ℎ′ 𝑎𝑙 σ𝑚 𝛿𝑚 𝑤𝑚𝑙 を見ると活性化関数の微分が出て Rectified linear関数 (Rectified Linear Unit: ReLU) くる. • ReLUは 𝑥 ≥ 0のとき微分が1である. 𝑥 if 𝑥 ≥ 0 ℎ 𝑥 =ቊ 0 otherwise • 𝑎𝑙 が極めて大きくても誤差が0にならない. • 微分の掛け算がいくら繰り返されても 𝑎𝑙 > 0ならば1のまま である. • ネットワークが多層になっても入力に近い層の誤差が消え ることなく入力に近い層も学習が進む. 微分

64.

Backpropergation法とはなにか • 意地悪くBackpropagationを見れば • 誤差を単にchain ruleで微分しているだけと言える. • 先行研究の再発見なだけではないのか. • 神経科学の立場から見れば, Backpropagationを使ったネットワークは脳モデルか らの逸脱しているのではないか. • 脳でBackpropagationが起こっているかどうか分かっていない. • Back-prop netは脳が行っているかどうかで言えば,現実的なものではない(Crick, 1989). • ニューラルネットワークは神経科学の縛りはなくても良いのでは. • Backpropergationで学習できればよいだけだから,使用する数式やアーキテクチャは神経 科学を気にすることなく作ることができる. • 活性化関数はステップ関数やシグモイド関数でなくても良い. • Rectified linear関数やleaky rectified linear関数は神経細胞の活性を表現していない. • もはやニューラルネットワークは人工ニューラルネットワークという脳のモデルで はなく機械学習の一分野になった.

65.

Autoencoder

66.

Autoencoder • Autoencoderは砂時計型をしたニューラルネットワークである. • 入力層と出力層は同じ数のユニットで構成され,中間層のニューロンはそ れらよりも少ないユニットで構成される. • Autoencoderは入力と出力を同じになるように学習する. • 入力が答え(教師)になる. 出力を入力に近づける 入力 出力

67.

Autoencoder • 中間層は入力層よりもユニットが少ないため,Autoencoderは入力よ りも少ないユニットで入力を再現しなければならない. • 入力を再現するために,ネットワークは入力の必要な重要な特徴を学 習により獲得しなければならない. 出力を入力に近づける 入力 出力

68.

LeNet

69.

LeNet • LeCunらにより提案された畳み込みニューラルネットワーク • 1989年US Post Serviceから提供された手書き数字の識別に成功 LeNet-5 (LeCun et al., 1998) (LeCun et al., 1989)

70.

まとめ

71.

ニューラルネットワークから人工ニューラルネットワークへ • バックプロパゲーションは脳でやっていない? • Hopfield networkは脳構造から逸脱している. • 脳では対象な接続はありえない. • ニューラルネットワークは脳の機能・構造を反映しなくてよいのではない か. • ニューラルネットワークが生物からの離脱を果たすことで,脳のニューラ ルネットと人工ニューラルネットワークが分かれる. • 人工ニューラルネットワークは神経科学や認知科学の分野から機械学習の 分野に移行する. • しかし,人工ニューラルネットワークは脳とは異なるが,脳からアイディ アをもらう.

72.

人工ニューラルネットワークの技術は充実する • 1980年代までに人工ニューラルネットワークの技術はかなりそろってくる. • Percetron (Rosenbratt, 1958) • a deep GMDH network with 8 layers (Ivakhnenko, 1971) • Backprobagation (Rumenhert et al, 1985) • Autoencoder (Rumelhart et al. 1985; Baldi and Hornik, 1988) • Convolutional neural network (Fukushima, 1980; LeCun, 1989) • ReLU (Fukushima, 1968) • SOM (von der Marsberg, 1976; Kohonen, 1982) • Hopfield network (Hopfield, 1982) • Rcurrent neural network (Rumelhart et al, 1985; Jordan, 1986) • 1990年代以降の技術 • 深層強化学習の元祖 TD-gammon (Tesauro, 1995) • Long term short term memory: LSTM (Hochreiter and Schmidhuber, 1997) • Dropout (Hinton et al., 2012) • Leaky ReLU • Generative adversarial network: GAN (Goodfellow et al., 2014) • Redisual neural network (He et al., 2016) • Random erasing