深層学習の仕組み, 勾配降下 | Chapter 2, 深層学習(ディープラーニング)

3Blue1BrownJapan
8 Sept 202319:41

Summary

TLDRこの動画ではニューラルネットワークの学習プロセスとその仕組みについて解説しています。手書き数字認識の例を使用し、ネットワークがどのように重みとバイアスを調整してパフォーマンスを上げるかを説明。また、隠れ層がどのように機能し、学習データから一般化して新しいデータも正しく分類できるかについても触れています。さらに、誤差逆伝播法やコスト関数の最小化、勾配ベクトルの重要性など、学習の核心となる概念を紹介し、ネットワークがどのようにして見たことのない画像でも高い正確性を達成するのかを探求しています。

Takeaways

  • 📊 この動画ではニューラルネットワークの学習過程とその仕組みについて説明しています。
  • 🔍 購買効果という概念が導入され、ニューラルネットワークの学習だけでなく他の機械学習にも応用される基礎的な概念であると説明されています。
  • 🧠 ニューラルネットワークは入力層、隠れ層、出力層からなり、重みとバイアスを通じてデータの特定のパターンを学習します。
  • 🔢 手書き数字認識の例を使用して、ネットワークは28×28ピクセルの画像を784個の入力ニューロンに変換し、それから隠れ層を通して特定の数字を認識するように学習されています。
  • 📉 コスト関数はネットワークのパフォーマンスの指標であり、正しい分類とネットワークの出力との差を最小化する目標です。
  • 🔧 学習過程では、誤差逆伝播法(バックプロパゲーション)が使用され、ネットワークの重みとバイアスを調整してコスト関数の値を下げる方向へと最適化します。
  • 📈 隠れ層は入力データから抽出された特徴を組み合わせ、より複雑なパターンを認識する役割を持っています。
  • 🤖 ニューラルネットワークは大量の学習データを用いてトレーニングされ、未知のデータに対しても高い正確性で分類できるように学習されています。
  • 🧐 現代のニューラルネットワークは、ランダムなデータでも学習が行えることが示されており、ネットワークはデータの構造を学習する能力を持っています。
  • 🔬 研究によると、ニューラルネットワークは学習過程で見つけた最適化の極小値がデータの構造化された特徴を反映しているとされています。

Q & A

  • ニューラルネットワークの学習とは何ですか?

    -ニューラルネットワークの学習とは、大量の学習データを通じてネットワークの重みとバイアスを調整し、特定のタスク(例: 手書き数字認識)を正確に実行できるようにするプロセスです。

  • 「購買効果」とは何を指していますか?

    -「購買効果」とは、ニューラルネットワークの学習だけでなく、多くの機械学習の仕組みの基礎となる概念で、入力データから出力を通じてモデルが学習する効果を指します。

  • ニューラルネットワークの隠れ層は何をしますか?

    -隠れ層は入力層から受け取った情報を処理し、特徴を抽出します。その特徴を基に、次の層に渡して最終的なタスクを実行します。

  • ニューラルネットワークはどのようにして数字を認識しますか?

    -ニューラルネットワークは、手書き数字の画像を入力として、各ピクセル値をニューロンのアクティベーションに変換し、隠れ層を通じて特徴を抽出し、出力層で数字を分類します。

  • コスト関数はニューラルネットワークの学習においてどのような役割を果たしますか?

    -コスト関数はネットワークの出力と正解の差を測る指標であり、学習過程でネットワークの重みとバイアスを調整するのに使用されます。目標はコスト関数の値を最小限に抑えることです。

  • 誤差逆伝播法とは何ですか?

    -誤差逆伝播法はニューラルネットワークの学習において使用されるアルゴリズムで、コスト関数の勾配を効率的に計算し、重みとバイアスを更新するプロセスを自動化します。

  • ニューラルネットワークがランダムな重みで初期化された場合、どのような問題が発生しますか?

    -ランダムな重みで初期化されたニューラルネットワークは、学習データに対する適切な分類や認識を行えず、無意味な結果を出力することになります。学習プロセスを通じて重みが適切に調整される必要があります。

  • ニューラルネットワークが与えられたタスクを超えて一般化するということはどういう意味ですか?

    -ニューラルネットワークが与えられたタスクを超えて一般化するということは、学習データだけでなく、見たことのない新しいデータに対しても正確に分類や認識ができることを意味します。

  • ニューラルネットワークの隠れ層が線やパターンを拾うことの意義は何ですか?

    -隠れ層が線やパターンを拾うことは、より複雑な特徴を認識するために必要な基本的な視覚的な要素を抽出するためです。これにより、ネットワークは高レベルのタスクを実行するのに役立ちます。

  • ニューラルネットワークがランダムな画像を数字と誤って認識する理由は何ですか?

    -ニューラルネットワークがランダムな画像を数字と誤って認識するのは、学習データに限定され、一般的なパターンや構造を適切に学習できていないためです。また、ネットワークのアーキテクチャや学習過程のパラメータ設定にも影響されます。

Outlines

00:00

🌟 ニューラルネットワークの基礎と学習目標

この段落では、ニューラルネットワークの構造とその学習の目標について説明されています。ニューラルネットワークは、手書き数字認識の古典的な例として紹介され、各数字が28×28ピクセルのグレースケールで表される方法が説明されています。また、ネットワークの隠れ層が特定のパターンを認識し、最終的に数字を分類する役割があると期待されていることが述べられています。学習プロセスでは、与えられた手書き数字とそのラベルの学習データを用いて、ネットワークの重みとバイアスを調整し、パフォーマンスを上げていくことが目標となっており、一般化された学習を目指しています。

05:02

🔍 ニューラルネットワークの学習過程とコスト関数

この段落では、ニューラルネットワークがどのように学習するか、特にコスト関数の役割について詳しく説明されています。学習データが与えられた場合、ネットワークはその重みとバイアスを調整して、与えられた数字を正しく分類するように学習します。コスト関数は、ネットワークの出力と正解の値との差を2乗して和を取ることで定義され、ネットワークのパフォーマンスの指標となっています。このコスト関数の平均値を最小化することで、ネットワークは学習データを超えて一般化した学習を行なうことが期待されています。また、学習過程では、ランダムな初期値から始まり、勾配を用いて重みとバイアスを調整していきます。

10:03

📉 コスト関数の最小化とニューラルネットワークの学習

この段落では、コスト関数の最小化とそれに関連するニューラルネットワークの学習プロセスの詳細について説明されています。ニューラルネットワークは、入力空間の13000次元の重みとバイアスを調整しながら、コスト関数の極小値に収束していきます。この過程では、勾配ベクトルがどの方向でコスト関数の値を最小化するかを示し、ネットワークはこの方向に沿って学習を進めます。また、この段落では、ニューラルネットワークが実際には期待していたようなパターンを学習していないこと、そしてランダムな画像に対しても正しく分類できることについて触れています。これは、ネットワークが学習データの構造を理解しているか、単に暗記しているかについての議論を引き起こしています。

15:04

🎓 学習データの理解とニューラルネットワークの限界

最後の段落では、ニューラルネットワークが学習データをどのように理解し、その限界について述べています。ネットワークは、与えられた学習データに基づいて数字を認識する能力を獲得しますが、ランダムな画像に対しては意味を付けられないことが示されています。これは、ネットワークが学習データの構造を理解しているか、単に暗記しているかについての疑問を浮かべます。また、この段落では、より高度な学習技術やアルゴリズムの理解を深めるために推薦される資料や論文についても紹介しています。最後に、近年の研究動向として、ディープニューラルネットワークがランダムなデータで学習した結果について触れ、ネットワークが学習データの構造を理解する能力があることを示唆しています。

Mindmap

Keywords

💡ニューラルネットワーク

ニューラルネットワークは人工知能の一分野で、人間の脳を模倣したアルゴリズムの集合体です。ビデオでは、ニューラルネットワークがどのように学習し、手書きの数字を認識するのかが説明されています。ニューラルネットワークは多数のニューロンと隠れ層を持ち、それらを通じて入力データを処理して特定のタスクを実行します。

💡購買効果

購買効果は、ニューラルネットワークの学習過程における重要な概念です。ビデオでは、この概念がニューラルネットワークだけでなく、他の多くの機械学習の仕組みの基礎となっていると説明されています。購買効果は、ネットワークが与えられたデータに基づいて重みとバイアスを調整し、パフォーマンスを向上させるプロセスを指します。

💡隠れ層

隠れ層はニューラルネットワーク内のニューロンの集合で、入力層と出力層の間に位置し、データの内部表現を形成します。ビデオでは、隠れ層が最終的に何を検索するかについて深堀りし、その役割がネットワークのパフォーマンスに与える影響について説明されています。

💡アクティベーション

アクティベーションとは、ニューラルネットワークのニューロンが入力信号を受け取り、それが閾値を超えた場合にのみ活性化するメカニズムです。ビデオでは、入力層のピクセル値がアクティベーションとなってニューラルネットワーク内に流れ、処理される様子が触れられています。

💡重みとバイアス

ニューラルネットワークでは、重みとバイアスは学習の鍵となります。重みはニューロン間の接続の強さを表し、バイアスはニューロンの活性化しやすさです。ビデオでは、これらのパラメーターがどのように調整され、ネットワークの学習過程に影響を与えるかが説明されています。

💡コスト関数

コスト関数は、ニューラルネットワークの学習過程で使用される関数で、ネットワークの予測と正解の差を評価します。ビデオでは、コスト関数を最小化することでネットワークが学習を進め、データのパターンを正確に捉えることができると説明されています。

💡誤差逆伝播法

誤差逆伝播法はニューラルネットワークの学習の中心的なアルゴリズムで、コスト関数の勾配を用いて重みとバイアスを更新します。ビデオでは、この方法がどのようにしてネットワークの学習の精度を高めるかが説明されています。

💡手書きの数字認識

手書きの数字認識は、ニューラルネットワークが画像のピクセルから数字を識別するタスクの例です。ビデオでは、このタスクがニューラルネットワークの学習の古典的な例として取り上げられており、その過程が詳しく解説されています。

💡隠れ層のニューロン

隠れ層のニューロンはニューラルネットワーク内でデータの抽象的な特徴を学習する役割を持ちます。ビデオでは、これらのニューロンがどのようにして入力データの特定のパターンを認識し、最終的に数字を分類するのかが説明されています。

💡学習データ

学習データはニューラルネットワークの学習に使用されるデータのセットで、ビデオでは手書きの数字とそれらが表す実際の数字のラベルが含まれています。学習データはネットワークが重みとバイアスを調整し、パフォーマンスを向上させるために使用されます。

Highlights

ニューラルネットワークの構造を紹介し、学習の基礎となる概念である購買効果を説明。

手書き数字認識の古典的な例を用いたニューラルネットワークの説明。

ニューラルネットワークの隠れ層が特定のパターンをどのように学習するかの詳細。

ニューラルネットワークが与えられた数字を分類する仕組み。

学習データを使ってニューラルネットワークの重みとバイアスを調整するプロセス。

ニューラルネットワークが見たことのないデータで正しく分類できるかのテスト方法。

MNISTデータベースが手書き文字のラベル付きデータを提供していることの説明。

ニューラルネットワークの学習過程を微積分の視点から考察。

ニューラルネットワークの重みとバイアスをランダムに初期化し、それから学習を開始する理由。

コスト関数を用いてニューラルネットワークの性能を評価する方法。

ニューラルネットワークが学習データを超えて一般化する期待。

誤差逆伝播法がニューラルネットワークの学習の心臓であることの説明。

ニューラルネットワークが見たことのない画像についても高い正確性を示す実験結果。

隠れ層の構造を変えることによるネットワーク性能の向上。

学習過程でニューラルネットワークが数字を認識する具体的なパターンを学ぶことの期待と現実。

ランダムな画像を入力したときのニューラルネットワークの反応とその意味。

ニューラルネットワークが数字を認識する能力とその学習過程の関係。

隠れ層が線やパターンを拾うことの期待と実際の学習結果とのギャップ。

学習データの構造化と非構造化の影響を分析する近年の論文の紹介。

ディープニューラルネットワークがランダムなデータで学習したときのパフォーマンス。

ニューラルネットワークが学習する際に見つける最適化の極小値の質。

ギリシャリッドのインタビューの要約とその中で述べられた深層学習の現代的な理解。

Transcripts

play00:00

[音楽]

play00:03

前回の動画では

play00:05

ニューラルネットワークの構造をお見せし

play00:07

ましたはじめに少しおさらいして思い出し

play00:10

ましょうそしてこの動画には2つのゴール

play00:12

があります一つ目は

play00:14

購買効果という概念を説明しますこれは

play00:17

ニューラルネットワークの学習だけでなく

play00:19

他の多くの機械学習の仕組みの基礎にも

play00:22

なっていますそして2つ目はこの

play00:25

ネットワークがどう働くかそして

play00:27

隠れ層が最終的に何を探すかについてより

play00:30

深く見ていきます

play00:32

おさらいですが

play00:33

古典的な例である手書きの数字の認識を

play00:36

扱っていましたね

play00:39

この数字は28×28のピクセルに0と1

play00:43

の間のグレースケールで表されこれが入力

play00:46

層の784個のニューロンの

play00:48

アクティベーションになっていました

play00:50

[音楽]

play00:52

そして次の層のそれぞれのニューロンの

play00:55

アクティベーションは前の層のすべての

play00:57

アクティベーションの重み付きの輪に

play01:00

バイアスという特別な数を足したものが元

play01:02

になってましたね

play01:04

これを前回お話ししたsignoid関数

play01:07

やレルのような関数に通していました

play01:10

それぞれ16個のニューロンを持つ2つの

play01:14

隠れそうという今回の設定では全部で約

play01:17

1万3000の設定可能な重みとバイアス

play01:20

があってこれらの値がネットワークが具体

play01:22

的に何をするのか決めていましたね

play01:25

[音楽]

play01:27

それから

play01:28

ネットワークが与えられた数字を分類する

play01:30

とは最後の層の10個のニューロンで一番

play01:33

明るいものがその数字に対応していると

play01:35

いうことでしたそして思い出して欲しいの

play01:37

ですがこの多層構造について

play01:40

期待していたのはもしかしたら2番目の層

play01:42

が短い線を3番目の層が和や線のような

play01:46

パターンを拾って最後にこれを組み合わせ

play01:48

て数字を認識するかもしれないというもの

play01:51

でした今回はどのようにネットワークが

play01:53

学習するかを見ていきます

play01:56

欲しいものはアルゴリズムですこの

play01:58

ネットワークにたくさんの学習データを

play02:00

見せてこれは手書きの数字とそれが表して

play02:03

いる実際の数のラベルの形をしているん

play02:05

ですが

play02:06

ネットワークが13,000円の重みと

play02:08

バイアスを調整しパフォーマンスを上げて

play02:11

いくようなものです

play02:13

願わくはこの多層構造によって学習データ

play02:16

を超えてより一般化して学習をしてほしい

play02:19

ですね

play02:20

そしてこれをテストするには学習の後に

play02:22

さらにラベル付けされた

play02:24

初めて見るデータを見せてこれらを正しく

play02:27

分類できるか確認します

play02:33

この手書きの数字がよくある例になって

play02:35

いる理由というのが

play02:37

幸運なことにMリストデータベースの方が

play02:39

大量の手書き文字のラベル付けされた

play02:42

データを作ってくれているからですそして

play02:45

現状では機械が学習しているというと

play02:48

議論の対象になるかもしれません実際の

play02:51

仕組みを学ぶとSFのすごい設定という

play02:54

よりもむしろまあ微積分の演習っぽく感じ

play02:57

られますというのも基本的にはある関数の

play03:00

最小値を求めることにつながるからです

play03:04

おさらいですがそれぞれのニューロンは前

play03:06

の層のすべてのニューロンにつながってい

play03:08

てアクティベーションを決める重み付きの

play03:11

輪の重みはそれらのつながりの強さみたい

play03:14

なものですね

play03:17

そしてバイアスはそのニューロンが

play03:18

アクティブになりがちかどうかを示してい

play03:21

ますではまず全ての重みやバイアスを完全

play03:24

にランダムに初期化して始めましょう言う

play03:27

までもなくこのネットワークは最悪な仕事

play03:30

をしますランダムですからね

play03:33

例えば3の画像を入力すると出力層はもう

play03:37

ごちゃごちゃですね

play03:39

それでコスト関数というのを用いて

play03:41

コンピュータに教えてあげるんですねほら

play03:43

この出力はほとんどのニューロンが0で

play03:46

このニューロンだけ1になるような

play03:48

アクティベーションになってないとダメで

play03:50

君が出した答えは全くのゴミですもう

play03:53

ちょっと数学的に言うと正解の値とこの

play03:57

ぐちゃぐちゃの出力のアクティベーション

play03:59

の差を2乗して和を取るんですね

play04:03

これを1回の学習のコストと呼ぶことにし

play04:06

ます

play04:06

[音楽]

play04:07

この和はネットワークが正しく自信を持っ

play04:10

て画像を分類すると小さくなり

play04:14

何をしているのか分かっていない時は

play04:16

大きくなるようになっています

play04:19

そしてこのコストの平均を何千もの学習

play04:23

データについて求めます

play04:28

この平均コストがこのネットワークの下手

play04:30

さそしてどれくらいコンピュータが反省

play04:33

するべきかを表しています結構複雑ですよ

play04:36

ね思い出してみると

play04:38

ネットワークそのものが784個の

play04:41

ピクセルの値を入力として10個の値を

play04:44

吐き出す関数でした

play04:46

重みやバイアスはパラメータになってまし

play04:48

たよねコスト関数はもう一段の複雑さを

play04:51

加えます入力は13000の重みと

play04:54

バイアスで出力はそれがどれくらい悪いか

play04:57

の一つの数ですこれは何千何万もの学習

play05:01

データについてのネットワークの振る舞い

play05:03

で決められます

play05:06

これは考えることがいっぱいですね

play05:08

でもどれだけ仕事が下手かただ言うだけで

play05:12

はあまり役立ちません重みやバイアスを

play05:14

どのように変えたらより良くなるか教えて

play05:17

あげたいですよね

play05:18

13,000円の入力で苦しむより簡単に

play05:21

するために入力も出力も一つの数の単純な

play05:24

関数を考えてみましょう

play05:27

どうやってこの関数の最小値に対応する

play05:31

入力を見つけられるでしょうか関数によっ

play05:34

ては具体的にこの値について解くことが

play05:36

できますよねしかし非常に複雑な関数に

play05:39

ついてはこれは常にできるわけではあり

play05:41

ません当然入力が1万3000の超複雑な

play05:45

コスト関数では無理です

play05:48

より柔軟な戦略としてある入力からどっち

play05:51

の方向に行けば出力が小さくなるか探して

play05:55

いくという方法があります

play05:57

具体的には今いる場所の関数の接線を考え

play06:00

play06:01

傾きが正なら左へ

play06:03

なら右へ行くんですね

play06:07

[音楽]

play06:09

これを繰り返して新しい

play06:11

接線と補正を確認していくと関数の極小値

play06:15

に近づいていきます

play06:17

他を転がっていくボールみたいなイメージ

play06:20

です

play06:22

ここでこの非常に単純な1変数関数でも

play06:25

行き着く先の谷はいくつもありますよね

play06:28

初めのランダムな場所によっては

play06:31

極小値がコスト関数の実際の最小値になっ

play06:34

ているとは限らないわけです

play06:35

[音楽]

play06:37

これはニューラルネットワークの場合も

play06:39

同様ですまた

play06:41

補正の際の移動を傾きに比例させてあげる

play06:43

と最小値近くで傾きが小さくなった時

play06:47

補正量が小さくなり移動しすぎを避けられ

play06:49

ます

play06:50

[音楽]

play06:53

少し複雑にして2つの入力と一つの出力を

play06:57

持つ関数を想像しましょう入力の空間を

play07:00

XY平面としてコスト関数をその上の局面

play07:03

として考えることができますさて関数の

play07:06

出力をできるだけ早く減少させたいんです

play07:09

が今度は傾きを考える代わりにどちらの

play07:12

方向に行けばいいかを考えるんですね

play07:15

言い換えると下り坂はどっちかということ

play07:18

です

play07:19

再びボールが転がり落ちるところを想像

play07:21

するとわかりやすいですね多変数関数の微

play07:25

積分では関数の勾配が最も急な上昇の方向

play07:29

になりますつまりどの方向に行けば一番

play07:32

早く関数の値が増加するかわかります

play07:36

なのでこれの符号を反転すれば関数の値を

play07:39

最も早く減少させる方向がわかります

play07:42

[音楽]

play07:44

さらにこの購買ベクトルの長さというのは

play07:47

この坂がどれほど急かを表しています

play07:51

多変数の微積分については

play07:53

缶アカデミーの動画がありますので

play07:55

参考にしてください

play07:58

しかし正直ここで今重要なのはこの

play08:00

ベクトルを計算する方法があるということ

play08:03

ですこのベクトルによってどの方向が

play08:06

下り坂でそれがどれだけ急かわかります

play08:09

それだけ分かっていれば詳細まで完璧で

play08:12

なくても大丈夫です

play08:14

この関数の最小化のアルゴリズムは

play08:17

勾配の方向を計算して下り坂に少し歩いて

play08:20

これを何度も繰り返します

play08:24

この基本的な考え方は入力が13000の

play08:28

関数でも同じです私たちのネットワークの

play08:31

13000の重みとバイアスを巨大な列

play08:34

ベクトルに揃えるところを想像して

play08:36

くださいマイナスのコスト関数の勾配は

play08:39

ただのベクトルですこの巨大な入力の空間

play08:43

の中のとある方向でこれらの数をどう

play08:46

突っつくとコスト関数が最も早く減少する

play08:49

か教えてくれます

play08:51

[音楽]

play08:52

そしてもちろんこの特別にデザインされた

play08:55

コスト関数について重みとバイアスを変え

play08:58

てこれを減少させるというのはそれぞれの

play09:00

訓練データについて

play09:02

ネットワークの出力をランダムな10個の

play09:04

値ではなくきちんと選択のように見える

play09:06

ようにするということを意味しますこれは

play09:08

大事なところですねこのコスト関数は

play09:11

すべての学習データについての平均に関係

play09:14

していますからこれを最小化するという

play09:16

ことは全てのサンプルについてより良い

play09:19

パフォーマンスが得られるということです

play09:20

ねこの

play09:22

勾配を効率的に計算するアルゴリズム

play09:25

ニューラルネットワークの学習の心臓とも

play09:27

言えるのが

play09:28

誤差逆電波法ですこれについては次回の

play09:30

動画でお話ししますそちらでは時間をかけ

play09:33

play09:33

与えられた学習データについてそれぞれの

play09:36

重みやバイアスに何が起こるか見ていき

play09:38

ましょう

play09:39

微積分と公式の山を越えて直感的な感覚を

play09:42

つかみたいと思います

play09:45

詳細については置いておいて今ここで知っ

play09:47

ておいていただきたいのは

play09:49

ネットワークが学習するというときこれは

play09:51

ただコスト関数を最小化しているだけなん

play09:54

ですね

play09:55

そしてその結果として重要なのがこの

play09:58

コスト関数は

play10:00

極小値を見つけるために効果できるように

play10:03

滑らかな出力を持っていないといけません

play10:06

ところでこれが

play10:07

ニューロンのアクティベーションが生物の

play10:09

ニューロンのように

play10:10

活性不活性のバイナリーにではなく連続的

play10:13

な値になっている理由です

play10:16

この関数の入力を

play10:18

購買の負の数倍で繰り返しずらしていく

play10:21

過程は

play10:21

購買効果法と言いますコスト関数の極小値

play10:24

に収束していく要はこのグラフの谷底に

play10:27

行く方法ですね13000次元の入力空間

play10:31

で動いていくのは理解しづらいので依然と

play10:33

して画面では2つの入力の関数の見た目を

play10:36

お見せしていますしかしこれを空間的な

play10:38

方法と別の方法で考えることができます

play10:41

マイナスの勾配の成分それぞれからは2つ

play10:44

のことがわかりますまず符号からは

play10:46

もちろん入力のベクトルの対応する成分を

play10:49

増加させるべきか減少させるべきかが

play10:52

分かりますそして重要なことにこれら全て

play10:54

の成分の絶対値はある意味どの変化がより

play10:58

重要か教えてくれます

play11:01

というのもこのネットワークでのある一つ

play11:03

の重みの調整はある他の一つの重みの調整

play11:07

より大きな影響をもたらしますつまりこれ

play11:10

らのつながりの一部は学習データについて

play11:12

より重要なわけですねなのでびっくりする

play11:16

ほど巨大なコスト関数のこの購買ベクトル

play11:18

はそれぞれの重みやバイアスの相対的な

play11:22

重要度の情報を持っていると考えることが

play11:24

できますつまりこれらのうちどの変化が

play11:27

一番お得かですね

play11:29

これは方向の単なる別の考え方です簡単な

play11:33

例変数が2つの関数を考えて特定の点で

play11:37

勾配を計算したら31になったとします

play11:40

一つの考え方としてはこの点に立っている

play11:43

ときこの方向に動くと関数の値が最も早く

play11:47

増加すると考えられます

play11:49

つまり入力の点のある平面上に関数の

play11:52

グラフを書くとこのベクトルが一番急に

play11:55

上る方向になっていますしかしもう一つの

play11:58

考え方としては一つ目の変数に与える変化

play12:01

は2つ目の変数に与える変化より3倍重要

play12:04

であると読むこともできます少なくとも

play12:07

この入力の近傍ではxの値をいじる方が

play12:10

よりお得なわけです

play12:13

さてズームアウトしてここまでをまとめ

play12:15

ましょう

play12:16

ネットワークそのものが784の入力と

play12:19

10の出力を持つ関数で重み付きはで定義

play12:22

されていました

play12:24

コスト関数はもう一段複雑で13000の

play12:27

重みとバイアスを入力として

play12:30

訓練データをもとにお粗末さを表す一つの

play12:33

値を吐き出します

play12:36

コスト関数の勾配はさらにもう1段複雑で

play12:39

これらの重みはバイアスをどう変化させる

play12:42

と最速でコスト関数の値が変化するか教え

play12:45

てくれました

play12:47

つまりどの重みやバイアスを変化させるの

play12:49

がより重要かと解釈できますね

play12:53

さて

play12:57

ネットワークをランダムな重みとバイアス

play12:58

に初期化してこの購買効果のプロセスで何

play13:01

度も調整してやると

play13:03

初めて見る画像について実際どれくらい

play13:05

うまく分類できるのでしょうか主に見た目

play13:09

の理由で選んだ

play13:10

隠れそうとして16個のニューロンが2層

play13:12

あるこのネットワークでは

play13:14

初めて見る画像についても96%ほど

play13:17

正しく分類できます悪くないですね

play13:20

正直間違えた画像を見てみるとやむを得

play13:23

ない感じもします

play13:28

[音楽]

play13:30

隠れ層の構造を少し変えてやるとこれを

play13:32

98%にもできて最高ではないですが結構

play13:35

いいですよねもちろんこの平凡な

play13:38

ネットワークよりもっと洗練された構造で

play13:40

はより高いパフォーマンスを得ることも

play13:42

できますでも最初の問題がとても難しそう

play13:45

に見えたのを思い出すとそもそもどんな

play13:48

ネットワークでも一度も見たことのない

play13:50

画像についてこうしたことができている

play13:52

こと自体すごいと思います

play13:54

具体的にどんなパターンを探せとも言って

play13:56

ませんからね

play13:57

はじめこの構造はこうなってほしいという

play14:00

話をしましたよね2層目が短い線を拾って

play14:03

3層目がそれをくっつけて和とか長い線を

play14:07

認識し

play14:08

最後にこれを組み合わせて数字を認識する

play14:11

とでは実際このネットワークはこうなって

play14:14

いるんでしょうか少なくともこの

play14:16

ネットワークについては全然違います前回

play14:19

の動画で一層目の全てのニューロンから2

play14:22

層目のあるニューロンへの繋がりの重みを

play14:24

2層目のニューロンが拾うピクセル

play14:26

パターンとして視覚化できるという話をし

play14:29

ました

play14:31

さて実際に今回のネットワークでこれを

play14:33

すると

play14:34

短い線を拾っているというよりはほとんど

play14:36

ランダムに見えます真ん中に

play14:39

ゆるくパターンがあるくらいですね

play14:42

計り知れないほど巨大な13000次元の

play14:45

重みとバイアスの空間でこのネットワーク

play14:47

は極小値を見つけて

play14:49

ニコニコしているわけですがほとんどの

play14:51

画像を正しく分類できているのに

play14:54

我々が求めていたパターンは拾ってないん

play14:56

ですねさらにこれを深掘りしてランダムな

play14:59

画像を入力するとどうなるか見てみ

play15:01

ましょうシステムが賢ければ

play15:04

戸惑いそうですよね10個の出力の

play15:06

ニューロンのいずれも活性化しないか全部

play15:08

均等に活性化するみたいなでもこの

play15:11

ネットワークは自信を持って無意味な

play15:13

ランダムの画像を5だと言ってきます

play15:17

言い換えるとこのネットワークは数字を

play15:20

結構上手に認識できるんですが自分で書く

play15:23

ことはできないんですね

play15:25

大部分は厳しい制約の学習に原因があり

play15:28

ます

play15:29

ネットワークの立場になってみれば世界に

play15:32

は明確に定義された数字しかありません

play15:34

コスト関数に従えば自分の決定に自信を

play15:38

持たない意味がないんですね

play15:39

[音楽]

play15:40

もしこれが2層目のニューロンがやって

play15:43

いることならなぜ始めこのネットワークを

play15:45

線やパターンを拾ってほしいと言って導入

play15:47

したか不思議に思うかもしれません実際

play15:50

全然そのようにはなりませんでしたねこれ

play15:52

は私たちのゴールではなくて

play15:55

スタート地点です正直これは80年代や

play15:58

90年代に研究された古い技術でより詳細

play16:01

な現代の編集を理解するためにまずこちら

play16:04

を理解する必要がありますそしてこれは

play16:06

明らかに興味深い問題を解くことができ

play16:09

ますしかしこの隠れ層が実際何をしている

play16:12

か理解するほどそんなに賢く見えなくなっ

play16:14

てきますね

play16:15

[音楽]

play16:17

少し焦点をずらして皆さんがこれをどう

play16:20

学習するかお話ししましょうこれは積極的

play16:22

に材料と関わることによってのみ起こり

play16:24

ます一つ皆さんにやっていただきたい簡単

play16:27

な例としてこのシステムをどう変えたら線

play16:30

やパターンを拾えるようになるか考えてみ

play16:33

てください

play16:35

[音楽]

play16:39

しかしさらに実際に手を動かしたい方は

play16:43

マイケルニルセンの深層学習とニューラル

play16:46

ネットワークについての本をおすすめし

play16:47

ますこの中にはダウンロードできるコード

play16:50

とデータがありまさに今回の例について

play16:52

一歩一歩進めていくことができます

play16:58

この本は無料で公開されていてここから

play17:01

何か学べたという方は寄付されてみては

play17:03

いかがでしょうか他にもクリスオーラの

play17:06

美しいブログ記事やディスティールの生地

play17:08

を概要欄に載せています

play17:10

[音楽]

play17:14

最後の数分は前回の動画と同様

play17:17

ギリシャリッドのインタビューの要約をし

play17:19

たいと思います彼女は深層学習について

play17:21

phdをとって今回はより現代的な画像

play17:25

認識ネットワークが何をしているか近年の

play17:27

2つの論文について話しています一つ目の

play17:31

論文ではこうしたある一つのディープ

play17:33

ニューラルネットワークについて扱ってい

play17:34

ますこれは非常に画像認識が上手なんです

play17:37

が正しくラベル付けされたデータではなく

play17:39

てランダムにシャッフルしたデータで訓練

play17:42

されていますもちろんラベル付けが

play17:44

ランダムだったのでテストの結果はより

play17:46

良くなり得ないはずでしたが正しくラベル

play17:49

付けされたデータと同様の学習成果を得る

play17:51

ことができました

play17:53

このネットワークの何百万もの重みと

play17:55

バイアスはランダムなデータを十分に暗記

play17:58

できたんですね

play18:00

ある意味コスト関数の最小化が画像の

play18:03

何かしらの構造に対応するのかただの暗記

play18:06

なのかという疑問が浮かびます

play18:09

半年ほどして

play18:11

icmlで

play18:12

反駁というほどではないんですが実はこの

play18:14

ネットワークはもう少し賢いことをして

play18:16

いるんじゃないかという論文が出ました

play18:18

コスト関数の値つまり不正確さの曲線は

play18:21

ランダムなデータによる学習では非常に

play18:24

ゆっくりとほぼ線形に下がっていってい

play18:26

ますなので正しい重みを極小値を見つける

play18:29

のにかなり苦労しているんですね

play18:32

一方で正しいラベルで構造化されたデータ

play18:34

での学習では初めフラフラしているんです

play18:37

がその後この正確さまでかなり早く落ちて

play18:40

きてある意味極値を見つけるのがより簡単

play18:43

だったと言えます

play18:46

もう一つ興味深いのは別の論文でこちらで

play18:49

はもっとネットワークの層について

play18:51

簡略化されているのですが結果の一つとし

play18:53

てこれらのネットワークが学習しがちな

play18:55

最適化の見た目

play18:57

極小値を見てみるとこれらは実は同程度の

play19:00

質のものであるといいますなのである種

play19:03

データが構造化されていればこれをより

play19:05

簡単に見つけられるはずだということです

play19:12

ご視聴ありがとうございました本家英語版

play19:14

にはペイトリオンがありますので

play19:16

支援を検討してみてくださいまたこの

play19:18

シリーズの支援をしてくれたVCの

play19:20

amplifyパートナーズもチェックし

play19:21

てみてください

play19:25

それではまた

play19:31

[音楽]

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
ニューラルネット機械学習学習アルゴリズムデータ分類隠れ層コスト関数勾配降下法深層学習デジタル信号アルゴリズム
¿Necesitas un resumen en inglés?