機械学習とニューラルネットワーク - ページ 53

 

講義 1.5 — 3 つのタイプの学習



講義 1.5 — 3 つのタイプの学習 [機械学習のためのニューラル ネットワーク]

このビデオでは、教師あり学習、強化学習、教師なし学習という 3 つの主要なタイプの機械学習について説明します。このコースは主に前半で教師あり学習、後半で教師なし学習に焦点を当てます。残念ながら、時間の制約があるため、強化学習については説明しません。

教師あり学習には、入力ベクトルが与えられた場合の出力の予測が含まれます。目標は、実数またはクラス ラベルを正確に予測することです。回帰では、株価の予測などの実数を扱いますが、分類では、正の場合と負の場合を区別したり、手書きの数字を認識したりするなど、ラベルの割り当てが必要になります。教師あり学習は、数値パラメーター (W) を使用して入力を出力にマッピングする関数によって表される候補モデルのセットであるモデル クラスに依存します。これらのパラメーターは、予測出力 (Y) と正しい出力 (t) の間の差異を最小限に抑えるように調整されます。

強化学習は、受け取る報酬を最大化するためのアクションまたはアクション シーケンスの選択に焦点を当てます。アクションはその時々の報酬に基づいて選択され、目的は将来の報酬の予想合計を最大化することです。通常、割引係数は、遠い報酬よりも目先の報酬を優先するために使用されます。強化学習には、報酬の遅れとスカラー報酬によって伝えられる情報が限られているため、課題が生じます。

教師なし学習には、コースの後半で広く取り上げられますが、入力データの有用な内部表現を発見することが含まれます。教師なし学習の目的を定義するのは困難であったため、教師なし学習は長年にわたってクラスタリングが好まれて無視されてきました。ただし、教師なし学習は、その後の教師あり学習または強化学習に有益な内部表現を作成するなど、さまざまな目的を果たします。基礎となる多様体を識別することで、画像などの高次元入力のコンパクトな低次元表現を生成することを目的としています。教師なし学習では、学習された特徴を使用して経済的な表現を提供することもでき、入力はバイナリ コードまたはスパース コードで表現できます。さらに、教師なし学習にはクラスタリングが含まれます。これは、クラスターごとに 1 つの特徴を持つ、まばらな特徴を見つける極端なケースとみなすことができます。

このビデオでは、教師あり学習、強化学習、教師なし学習という 3 つの主要なタイプの機械学習について説明します。教師あり学習は出力の予測に重点を置いていますが、強化学習はアクションの選択を通じて報酬を最大化することに重点を置いています。教師なし学習は、低次元表現や学習された特徴などの有用な内部表現を発見することを目的としており、基礎となるクラスターの識別が含まれます。

Lecture 1.5 — Three types of learning [Neural Networks for Machine Learning]
Lecture 1.5 — Three types of learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 2.1 — ニューラル ネットワーク アーキテクチャの種類



講義 2.1 — ニューラル ネットワーク アーキテクチャの種類 [機械学習のためのニューラル ネットワーク]

ニューラル ネットワークには、ニューロンの接続方法を表すさまざまなタイプのアーキテクチャがあります。実際のアプリケーションで最も一般的なアーキテクチャはフィードフォワード ニューラル ネットワークで、情報は入力ユニットから隠れ層を通って出力ユニットに流れます。一方、リカレント ニューラル ネットワークは、情報がサイクルで流れることを可能にし、長期記憶と複雑なダイナミクスを可能にするため、より興味深いものです。リカレント ネットワークのトレーニングは複雑であるため困難ですが、最近の進歩により、よりトレーニングしやすく、優れたタスクを実行できるようになりました。

別のタイプのアーキテクチャは、ユニット間の重みが両方向で同じである対称接続ネットワークです。これらのネットワークはエネルギー関数に従い、リカレント ネットワークと比較して分析が容易です。ただし、機能がより制限されており、サイクルをモデル化できません。

フィードフォワード ニューラル ネットワークでは、各層が入力と出力の間の変換を計算し、その結果各層で新しい表現が生成されます。非線形関数は各層のニューロンの活動に適用され、入力間の類似性と非類似性を捕捉します。対照的に、リカレント ニューラル ネットワークは接続グラフで有向サイクルを利用し、複雑なダイナミクスと逐次的なデータ モデリングを可能にします。すべてのタイム ステップで同じ重みが使用され、隠れユニットの状態によって次のタイム ステップの状態が決まります。

リカレント ニューラル ネットワークには、隠れた状態で情報を長期間記憶する能力がありますが、この能力を活用するようにトレーニングするのは困難です。ただし、最近のアルゴリズムはリカレント ネットのトレーニングにおいて大幅な進歩を遂げています。これらのネットワークは、シーケンス内の次の文字の予測、テキストの生成、連続データのモデリングなどのタスクに使用できます。

全体として、ニューラル ネットワーク アーキテクチャは、単純な計算のためのフィードフォワード ネットワークからメモリや複雑なダイナミクスのためのリカレント ネットワークまで、その接続と機能がさまざまです。

Lecture 2.1 — Types of neural network architectures [Neural Networks for Machine Learning]
Lecture 2.1 — Types of neural network architectures [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 2.2 — パーセプトロン: 第一世代のニューラル ネットワーク



講義 2.2 — パーセプトロン: 第一世代ニューラル ネットワーク [機械学習のためのニューラル ネットワーク]

機械学習のアルゴリズムの一種であるパーセプトロンは、1960 年代初頭に初めて研究されました。当初、それらは学習デバイスとして大きな期待を示しましたが、後にミンスキーとパパートによってその限界が明らかになり、人気が低下しました。ミンスキーとパパートは、パーセプトロンが統計的パターン認識タスクで複雑なパターンを学習する能力がかなり制限されていることを実証しました。

統計的パターン認識の分野では、標準的なアプローチに従ってパターンを認識します。まず、生の入力データが処理され、機能アクティベーションのセットまたはベクトルに変換されます。この変換は、常識に基づいた事前定義されたプログラムを使用して行われ、人間の専門知識によってどの機能が当面のタスクに関連するかが判断されます。この前処理段階には学習が含まれないことに注意することが重要です。適切な機能の選択は重要なステップであり、多くの場合試行錯誤が必要になります。さまざまな機能が試しられ、その有効性が評価されます。この反復プロセスを通じて、最終的に一連の特徴が特定され、後続の学習段階で問題を効果的に解決できるようになります。

統計的パターン認識の学習段階では、各機能のアクティベーションに関連付けられた重みを決定します。これらの重みは、現在の入力が特定のパターンまたはクラスに属するという仮説に賛成または反対する、各特徴が提供する証拠の強度を表します。重み付けされた機能アクティベーションを合計することにより、合計証拠スコアが取得され、しきい値と比較されます。証拠がしきい値を超える場合、入力ベクトルは認識されているパターンの正の例として分類されます。

パーセプトロンは、特定の種類の統計的パターン認識システムです。パーセプトロンにはさまざまなタイプがありますが、ローゼンブラットがアルファ パーセプトロンと呼ぶ標準形式は、機能アクティベーションに変換される入力ユニットで構成されます。この変換はニューロンの動作に似ているかもしれませんが、システムのこの段階には学習が含まれないことに注意することが重要です。機能のアクティベーションが取得されると、学習アルゴリズムを使用して重みが学習されます。

パーセプトロンは、1960 年代にフランク ローゼンブラットの研究によって有名になりました。フランク ローゼンブラットは、著書「神経力学の原理」でパーセプトロンを広範囲に研究し、説明しました。この本にはさまざまな種類のパーセプトロンが紹介されており、革新的なアイデアが満載でした。最も注目すべき貢献の 1 つは、パーセプトロンに関連する強力な学習アルゴリズムであり、その機能に対する高い期待が生まれました。

しかし、パーセプトロンを取り巻く当初の熱意は、その学習アルゴリズムに限界があることが判明したとき、懐疑的な見方にさらされました。たとえば、戦車とトラックの部分的にぼやけた写真を区別できる能力について誇張された主張がなされました。これらの主張は、パーセプトロンが単にピクセルの総強度を測定しているだけであることが明らかになり、人間がより高い感度で行う作業であることが明らかになりました。この種の誤解はパーセプトロンの評判を傷つけ、ニューラル ネットワーク モデル全体の有効性についての疑問につながりました。

1969 年、ミンスキーとパパートは、パーセプトロンの機能を批判的に分析し、その限界を強調した「パーセプトロン」というタイトルの独創的な本を出版しました。しかし、人工知能のより広範な分野では、これらの制限がすべてのニューラル ネットワーク モデルに誤って推定されています。ミンスキーとパパートはニューラル ネットワーク モデルが非実用的であり、複雑なタスクを学習できないことを証明したという考えが広まりました。実際には、ミンスキーとパパートの発見は彼らが研究したパーセプトロンに特有のものであり、ニューラル ネットワーク全体の可能性を無効にするものではありませんでした。

パーセプトロン収束手順については後で説明しますが、現在でも大きな特徴ベクトルを含むタスクに広く使用され続けていることは注目に値します。実際、Google のような大手企業はパーセプトロンベースのアルゴリズムを採用し、膨大な機能セットに基づいて結果を予測しています。

パーセプトロンの決定単位はバイナリ閾値ニューロンであり、これはニューラル ネットワーク モデルで以前に遭遇したタイプのニューロンです。理解を新たにすると、これらのニューロンは他のニューロンから受け取った入力の重み付き合計を計算し、バイアス項を追加し、合計が 0 を超える場合は 1 の出力を生成し、それ以外の場合は 0 の出力を生成します。

学習プロセスを簡素化するために、各入力ベクトルを定数値 1 の追加入力で増やすことにより、バイアスを重みとして扱うことができます。そうすることで、バイアスがこの追加の入力ラインの重みとして組み込まれ、バイアス用の別の学習ルールが不要になります。本質的に、バイアスは重みと等価になり、その値はしきい値のマイナスになります。

ここで、驚くほど強力で、解への収束が保証されているパーセプトロンの学習手順を見てみましょう。ただし、その保証に関しては、後で説明するいくつかの注意点を考慮することが重要です。

まず、すべての入力ベクトルに値 1 を持つ追加のコンポーネントを含めます。その後、追加の入力ラインの重みとして扱われるため、重みに焦点を当ててバイアスを無視することができます。トレーニング ケースは、各ケースが合理的な時間枠内で選択されることを保証するポリシーに従って選択されますが、「合理的な時間」の正確な定義は状況によって異なる場合があります。

トレーニング ケースを選択した後、パーセプトロンによって生成された出力を評価し、予想される出力と比較します。出力が正しく、パーセプトロンの決定が目的の分類と一致していることを示す場合は、重みを変更しないままにします。ただし、出力が正しくない場合は、次のルールに基づいて重みを調整します。

  1. 出力が 1 であるべきときにゼロの場合 (つまり、パーセプトロンが入力を誤って拒否した場合)、入力ベクトルをパーセプトロンの重みベクトルに追加します。
  2. 出力が 0 であるべきときに 1 である場合 (つまり、パーセプトロンが入力を誤って受け入れた場合)、パーセプトロンの重みベクトルから入力ベクトルを減算します。

注目すべきことに、この単純な学習手順では、すべてのトレーニング ケースに対して正しい出力を生成する重みのセットが見つかることが保証されています。ただし、重要な条件が満たされなければなりません。すべてのトレーニング ケースを正しく分類できる実行可能な重みのセットが存在する必要があります。残念ながら、多くの興味深い問題では、そのような実現可能な重みのセットが存在しない可能性があります。

実現可能な重みのセットが存在するかどうかは、使用する特徴の選択に大きく依存します。多くの問題において、重要な課題は、関連するパターンを捕捉するために最も適切な特徴を決定することにあります。適切な特徴が選択されれば、学習プロセスは実行可能かつ効果的になります。一方、不適切な特徴が選択された場合、学習は不可能となり、主な焦点は特徴の選択に移ります。

結論として、パーセプトロンはニューラル ネットワーク モデルの初期開発において重要な役割を果たしました。その限界はミンスキーとパパートによって明らかになりましたが、彼らの発見は彼らが調べたパーセプトロンに特有のものであり、ニューラル ネットワークのより広範な可能性を無効にするものではないことに注意することが重要です。パーセプトロン収束手順は、特に大きな特徴ベクトルを伴うタスクにとって、依然として価値のあるツールです。ただし、パターン認識を成功させる鍵は、適切な特徴を選択することにあります。適切な特徴を使用すると学習プロセスが大幅に促進されますが、不適切な特徴を使用すると学習が不可能になる可能性があります。

Lecture 2.2 — Perceptrons: first-generation neural networks [Neural Networks for Machine Learning]
Lecture 2.2 — Perceptrons: first-generation neural networks [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 2.3 — パーセプトロンの幾何学的な見方



講義 2.3 — パーセプトロンの幾何学的な見方 [機械学習のためのニューラル ネットワーク]

このビデオでは、パーセプトロンがどのように学習するのかについての幾何学的理解を詳しく掘り下げていきます。これを行うには、ウェイト空間、つまり各点がすべてのウェイトの特定の構成に対応する高次元空間の観点から考える必要があります。この空間では、トレーニング ケースを平面として表すことができ、学習プロセスには重みベクトルをすべてのトレーニング プレーンの正しい側に配置することが含まれます。

数学に詳しくない人にとっては、これまでの内容よりも難しいかもしれません。特に高次元空間での超平面について考えることに慣れていない場合は、今後のコンテンツを理解するために十分な時間を費やす必要があるかもしれません。最初に 3 次元空間を視覚化し、次に音声でその次元を思い出させることで、14 次元空間を視覚的に理解できるようになる必要があります。奇妙に思えるかもしれませんが、理解を助けるための一般的な方法です。

14 次元空間で超平面を扱う場合、2D 空間から 3D 空間への移行と同様に、複雑さが大幅に増加します。 14 次元空間は広大かつ複雑であることを理解することが重要です。それを念頭に置いて、重量スペースに焦点を当てることから始めましょう。

ウェイト空間は、パーセプトロンのウェイトごとに 1 つの次元を持つ空間です。しきい値を削除したと仮定すると、ウェイト空間内の点は、すべてのウェイトの特定の構成を表します。すべてのトレーニング ケースは、重み空間の原点を通過する超平面として表すことができます。したがって、この空間内の点は重みベクトルに対応し、トレーニング ケースは平面に対応します。

特定のトレーニング ケースでは、正しい出力を生成するには、重みが超平面の片側に配置されている必要があります。例を通してこの概念を視覚化してみましょう。正解が 1 つであるトレーニングの場合を考えてみましょう。重みベクトルは、超平面のトレーニング ベクトルによって示される方向と同じ側にある必要があります。その側の重みベクトルは入力ベクトルとの角度が 90 度未満となり、正のスカラー積になります。閾値を削除したため、パーセプトロンは閾値を出力し、正しい答えを提供します。

逆に、重みベクトルが平面の間違った側にある場合、入力ベクトルとの角度は 90 度を超え、負のスカラー積が生成されます。その結果、パーセプトロンはゼロを出力し、不正確な答えが得られます。

要約すると、平面の一方の側の重みベクトルは正しい答えを生成しますが、もう一方の側の重みベクトルは間違った答えを生成します。ここで、正解が 0 である別のトレーニング ケースを調べてみましょう。

この場合、入力ベクトルと 90 度未満の角度をなす重みベクトルは正のスカラー積となり、パーセプトロンが 1 を出力し、不正確な答えが得られます。逆に、角度が 90 度を超える平面の反対側の重みベクトルでは、ゼロ未満のスカラー積が生成され、パーセプトロンはゼロを出力し、正しく答えが得られます。

これら 2 つのトレーニング ケースをウェイト空間の 1 つの図に結合してみましょう。ウェイト空間が混雑し、考えられるウェイト ベクトルの円錐が現れます。この円錐内の重みベクトルは両方のトレーニング ケースに対して正しい答えを返します。このような円錐の存在は保証されていないことに注意してください。すべてのトレーニング ケースに対して正しい答えを提供する重みベクトルがないシナリオが存在する可能性があります。ただし、そのような重みベクトルが存在する場合、それらは円錐を形成します。

学習アルゴリズムはトレーニング ケースを 1 つずつ考慮し、最終的にこの円錐内に収まるように重みベクトルを調整します。すべてのトレーニング ケースに機能する 2 つの適切な重みベクトルがある場合、それらの平均も円錐内に収まることを観察することが重要です。これは、問題が凸型であり、2 つの解の平均自体が解であることを意味します。凸学習問題は、機械学習のプロセスを簡素化します。

重み空間と、重みベクトルとトレーニング ケースの関係を理解すると、パーセプトロンがどのように学習するかについての幾何学的洞察が得られます。目標は、考えられる解の円錐内にある重みベクトルを見つけて、すべてのトレーニング ケースの正しい分類を保証することです。

Lecture 2.3 — A geometrical view of perceptrons [Neural Networks for Machine Learning]
Lecture 2.3 — A geometrical view of perceptrons [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 2.4 — 学習がなぜ効果があるのか



講義 2.4 — 学習が機能する理由 [機械学習のためのニューラル ネットワーク]

このビデオでは、パーセプトロン学習手順が最終的に重みを実現可能な解の円錐内に収束させるという証明を提示することを目的としています。ただし、このコースは厳密な証明ではなく、エンジニアリングの側面に主に焦点を当てていることを強調したいと思います。コース全体を通して証明はほとんどありません。それにもかかわらず、パーセプトロンが最終的に正しい答えを見つける方法を理解することは、貴重な洞察を提供します。

証明を構築するために、重み空間の幾何学的な理解とパーセプトロン学習プロセスを活用します。すべてのトレーニング ケースに対して正しい答えをもたらす実現可能な重みベクトルが存在すると仮定します。図では、これは緑色の点で表されます。

私たちの証明における重要なアイデアは、パーセプトロンがトレーニング ケースを誤って分類するたびに、現在の重みベクトルがすべての実行可能な重みベクトルに近づくように更新されるということです。現在の重みベクトルと実行可能な重みベクトルの間の二乗距離は、入力ベクトルのライン (トレーニング ケースの定義) に沿った二乗距離と、そのラインに直交する別の二乗距離の合計として測定できます。直交二乗距離は一定のままですが、入力ベクトルのラインに沿った距離は減少します。

この主張は有望に思えますが、図の金の実現可能な重みベクトルで示されている問題に遭遇します。これは、トレーニング ケースの 1 つによって定義された平面のちょうど右側にありますが、現在の重みベクトルは間違った側にあります。さらに、入力ベクトルが比較的大きいため、入力ベクトルを追加すると、現在の重みベクトルがゴールドの実現可能な重みベクトルからさらに遠ざかります。結果として、私たちの最初の主張は失敗しました。

ただし、十分に実現可能な重みベクトルの概念を導入することで、これを修正できます。これらの重みベクトルは、すべてのトレーニング ケースを正しく分類するだけでなく、各ケースの入力ベクトルの長さ以上のマージンを持って分類します。実現可能な解決策の円錐の中に、十分に実現可能な解決策の別の円錐があります。

この調整により、私たちの証明は有効になります。パーセプトロンがケースを誤分類するたびに、十分に実現可能なすべての重みベクトルまでの二乗距離が、少なくとも入力ベクトルの長さの二乗だけ減少すると主張できます。この更新により、重みベクトルが十分に実現可能なソリューションに近づくことが保証されます。

ここでは正式な証明は行いませんが、この非公式のスケッチは収束プロセスを示しています。入力ベクトルが無限小でない場合、有限回の間違いの後、十分に実行可能なすべての重みベクトルまでの二乗距離は、少なくとも入力ベクトルの二乗長だけ減少します。したがって、重みベクトルが存在すると仮定すると、重みベクトルは最終的には実行可能領域内に収まらなければなりません。必ずしも十分な実行可能領域内にある必要はありませんが、さらなる間違いを避けるために少なくとも実行可能領域内にあります。

要約すると、これはパーセプトロン収束手順が機能することを証明する証明の非公式な概要です。ただし、証明全体が十分に実現可能な重みベクトルが存在するという仮定に依存していることに注意することが重要です。そのようなベクトルが存在しない場合、証明は破綻します。

Lecture 2.4 — Why the learning works [Neural Networks for Machine Learning]
Lecture 2.4 — Why the learning works [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 2.5 — パーセプトロンにできないこと



講義 2.5 — パーセプトロンにできないこと [機械学習のためのニューラル ネットワーク]

このビデオでは、使用される機能の種類によって生じるパーセプトロンの制限について説明します。パーセプトロンの有効性は、機能の選択に大きく依存します。適切な機能があれば、パーセプトロンは信じられないほど多用途になりますが、機能が間違っていると、学習能力が大幅に制限されてしまいます。この制限により、過去にはパーセプトロンの人気が失われていました。これは、学習プロセスの重要な側面である、適切な機能を学習するという課題を強調しています。

ただし、学習機能がなくても、パーセプトロンは依然として多くのことを達成できます。たとえば、英語の文の妥当性を判断するようなタスクでは、多数の特徴を手動で定義し、その重みを学習して、文が文法的に正しいかどうかを判断できます。それでも、長期的には学習機能が必要になります。

パーセプトロンの研究は、1960 年代後半から 1970 年代初頭にかけて、パーセプトロンには重大な限界があることが判明し、挫折に直面しました。機能を手動で選択し、十分な機能を組み込むことで、パーセプトロンはほぼすべてのタスクを実行できます。たとえば、バイナリ入力ベクトルを考慮し、特定のバイナリ入力ベクトルに基づいてアクティブ化される個別の特徴ユニットを作成すると、バイナリ入力ベクトルのあらゆる識別を実現できます。ただし、このアプローチは過剰な数の特徴ユニットを必要とし、一般化を妨げるため、現実世界の問題解決には非現実的です。他のケースを無視してケースのサブセットから一般化しようとしても無駄です。残りのケースには新しい特徴単位が必要になるためです。また、手動選択が完了すると、それらの新しい特徴単位の重みを決定するのは困難になります。

特徴単位とその重みが確立されると、パーセプトロンが学習できる内容には厳しい制約があります。これらの制限を理解するために、古典的な例を調べてみましょう。バイナリしきい値決定ユニットが 2 つの特徴が同じ値を持つかどうかを識別することを学習できるかどうかを判断したいと考えています。 2 つの正のケースと 2 つの負のケースがあり、それぞれ値 1 または 0 の単一ビット機能によって定義されます。正のケースは両方の機能がオン (1) または両方の機能がオフ (0) の場合に発生し、負のケースは両方の機能がオン (1) の場合に発生します。一方の機能がオン (1) で、もう一方の機能がオフ (0) の場合に発生します。このタスクは単純そうに見えますが、代数的には、これらの入出力ペアによって形成される 4 つの不等式をすべて満たすことは不可能であることが証明されています。したがって、パーセプトロンが 4 つのケースすべてに対して正しい出力を提供できる重みを見つけることはできません。

この制限は幾何学的にも理解できます。各点がデータ点を表し、重みベクトルがデータ点に垂直な平面を定義するデータ空間を想像します。正しく区別するには、ウェイト プレーンで正のケースと負のケースを分離する必要があります。ただし、線形分離できないトレーニング ケースのセットが存在します。つまり、出力が 1 であるべきケースと 0 であるべきケースを正しく分離できる超平面はありません。このケースを正しく分離できないことは、「セットのセット」として知られています。トレーニングケースは線形分離可能ではありません。」

パーセプトロンのもう 1 つの壊滅的な例には、ラップアラウンドで変換された場合でも同一性を保持するパターンの認識が含まれます。変換されたパターンやラップされたパターンを識別する必要がある場合、パーセプトロンは同じピクセル数のパターンを識別できません。この制限はパターン A と B を考慮すると明らかになります。パターン A にはバーコード状に配置された 4 つの「オン」ピクセルがあり、パターン B にも異なる配置の 4 つの「オン」ピクセルがあります。ラップアラウンドで変換すると、パーセプトロンはこれらのパターンを区別する方法を学習できません。ミンスキーとパパートの群不変性定理は、ラップアラウンドが許可されている場合、パーセプトロンは変換中のパターンを認識できないと述べています。パターン認識は、変換などの変換にもかかわらずパターンを識別することを目的としているため、この定理はパーセプトロンの歴史において特に重要でした。

この定理により、パーセプトロンは、最初に定式化されたままでは、ラップアラウンドによる翻訳の不変性を必要とするパターン認識タスクを処理できないことが明らかになりました。この制限により、実際の応用が大幅に制限され、1960 年代後半から 1970 年代前半にかけてパーセプトロンへの関心と研究が減少しました。ただし、これらの制限は、バイナリしきい値単位を持つ単層パーセプトロンにのみ適用されることに注意することが重要です。人工ニューラル ネットワークの分野は進化を続け、多層パーセプトロン (MLP) や畳み込みニューラル ネットワーク (CNN) などのより高度なモデルの開発により、これらの制限を克服しました。 MLP は入力層と出力層の間に隠れ層を導入し、より複雑で柔軟な特徴表現を可能にします。非線形活性化関数を組み込み、重み調整にバックプロパゲーションなどの手法を使用することにより、MLP は単層パーセプトロンの線形分離可能性の制限を克服できます。

一方、CNN は、パターン認識と画像分類の問題に対処するために特別に設計されました。これらは、局所的な特徴を抽出する畳み込み層と空間的不変性を捉えるプーリング層を備えた階層構造を採用しています。 CNN は、画像認識、物体検出、自然言語処理などのタスクで目覚ましい成功を収めています。

パーセプトロンの限界は、ニューラル ネットワークにおける特徴学習、非線形性、階層表現の重要性を浮き彫りにしました。その後のこの分野の進歩により、学習機能が向上し、より幅広い用途を備えた、より洗練されたモデルが開発されました。

パーセプトロンには複雑な特徴を学習し、特定のパターン認識タスクを処理する能力に限界がありますが、これらの限界は、より高度なニューラル ネットワーク アーキテクチャの開発によって解決されています。 MLP や CNN などのモデルは、単層パーセプトロンの制限を克服し、人工知能のさまざまな領域で強力なツールとなっています。

Lecture 2.5 — What perceptrons can't do [Neural Networks for Machine Learning]
Lecture 2.5 — What perceptrons can't do [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 3.1 — 線形ニューロンの重みを学ぶ



講義 3.1 — 線形ニューロンの重みを学習する [機械学習のためのニューラル ネットワーク]

彼のビデオでは、パーセプトロンの学習アルゴリズムとは異なるものを実現する線形ニューロンの学習アルゴリズムが紹介されています。パーセプトロンでは、重みは常に適切な重みセットに近づきますが、線形ニューロンでは、出力は常にターゲット出力に近づきます。

パーセプトロン収束手順により、重みを変更することで適切な重みセットに確実に近づけることができます。ただし、2 つの適切な重みセットを平均すると、不適切な重みセットが生成される可能性があるため、この保証をより複雑なネットワークに拡張することはできません。したがって、多層ニューラルネットワークの場合、パーセプトロン学習手順は使用されず、学習中の改善の証明も異なります。

多層ニューラル ネットワークは、多層パーセプトロン (MLP) と呼ばれることが多く、進行状況を示すには別のアプローチが必要です。重みが適切な重みセットに近づくことを示す代わりに、実際の出力値がターゲット出力値に近づくことを示します。これは、2 つの適切な解の重みを平均しても適切な解が得られない非凸問題にも当てはまります。

線形ニューロンの学習アルゴリズムをおもちゃの例を通じて説明します。これには、部分の価格をランダムに推測することから始めて、観察された価格に合わせてこれらの推測を繰り返し調整することが含まれます。反復アプローチでは、デルタ ルールを使用して、学習率、部分の数、および残差誤差に基づいて重みを更新します。

デルタ ルールは、重みの 1 つに関して誤差測定値を微分することによって導出されます。学習ルールでは、重みの変化は学習率に入力値と目標出力と実際の出力の差を乗じた値に等しいと規定されています。デルタ ルールを繰り返し適用することで、誤差を最小限に抑えるように重みを調整できます。

デルタ ルールを使用した学習手順では、個々の重みが常に改善されることが保証されません。ただし、目標出力と推定出力の差は改善する傾向にあります。学習率は学習の速度を決定します。学習率が十分に小さい場合、重みは特定のトレーニング ケースの最良の近似値に近づくことができます。

線形システムの場合でも、特に入力次元の相関性が高い場合、学習プロセスが遅くなる可能性があることに注意することが重要です。このような場合、各入力ディメンションにどの程度の重みを割り当てるかを決定するのは困難になります。さらに、オンライン バージョンのデルタ ルールとパーセプトロン学習ルールの間には類似点があり、重みベクトルが入力ベクトルと誤差に基づいて調整されます。ただし、デルタ ルールには学習率と残差が組み込まれています。安定した効率的な学習には、適切な学習率を選択することが重要です。

線形ニューロンについて説明した反復学習プロセスは、誤差の尺度を最小限に抑える解に収束できます。ただし、すべてのトレーニング ケースで必要な出力に正確に一致する完璧なソリューションが存在するわけではないことに注意することが重要です。代わりに、目標は、最良の近似を提供し、すべてのトレーニング ケースにわたって誤差の尺度を最小限に抑える一連の重みを見つけることです。学習率を十分に小さくし、学習プロセスを十分な時間継続できるようにすることで、この最良の近似値に近づくことができます。

線形システムであっても、学習速度は異なる場合があります。 2 つの入力ディメンションの相関性が高い場合、各入力ディメンションにどの程度の重みを帰すべきかを決定することが困難になります。たとえば、ケチャップとポテトチップスの部分の数が常に同じ場合、各コンポーネントに価格を正しく割り当てるための学習プロセスに長い時間がかかる可能性があります。

興味深いことに、デルタ ルールとパーセプトロンの学習ルールの間には関係があります。デルタ ルールのオンライン バージョンでは、トレーニング ケースごとに重みが更新され、パーセプトロン学習ルールと類似点があります。パーセプトロン学習では、重みベクトルは入力ベクトルによって増加または減少しますが、これはエラーが発生した場合に限られます。デルタ ルールのオンライン バージョンでは、重みベクトルも入力ベクトルによって調整されますが、残差誤差と学習率の両方によってスケーリングされます。

デルタ ルールを使用する際の課題の 1 つは、適切な学習率を選択することです。学習率が大きすぎると、システムが不安定になり、解への収束が困難になる可能性があります。一方、学習率が小さすぎる場合、適切な重みセットに到達するまでに学習プロセスに不必要に長い時間がかかる可能性があります。

線形ニューロンの学習アルゴリズムは、ターゲット出力と実際の出力の間の誤差を最小限に抑えることを目的としています。デルタ ルールを使用して重みを繰り返し調整します。デルタ ルールには、学習率、入力値、目標出力と実際の出力の差が組み込まれます。学習プロセスは遅く、重みが個別に改善されない可能性がありますが、全体的な目標は、特定のトレーニング ケースに対して最良の近似値に近づくことです。

Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 3.2 — 線形ニューロンの誤差曲面



講義 3.2 — 線形ニューロンの誤差曲面 [機械学習のためのニューラル ネットワーク]

このビデオでは、線形ニューロンの誤差曲面を調査し、学習プロセスについての洞察を提供します。この曲面を視覚化することで、線形ニューロンで重みがどのように学習されるかを幾何学的に理解することができます。私たちが考慮する空間は、パーセプトロンで使用される重み空間に似ていますが、追加の次元があります。

水平方向の寸法が重みを表し、垂直方向の寸法が誤差を表す空間を想像してください。この空間では、さまざまな重み設定が水平面上の点として表され、各点の高さは、すべてのトレーニング ケースを合計した、その重み設定に関連付けられた誤差に対応します。線形ニューロンの場合、各重み設定の誤差は二次ボウルの形式をとる誤差曲面を定義します。誤差曲面の垂直断面は常に放物線を形成し、水平断面は楕円を形成します。この動作は二乗誤差のある線形システムにのみ当てはまることに注意することが重要です。多層非線形ニューラル ネットワークに移行すると、誤差曲面はより複雑になります。

重みが妥当な範囲内にある間、誤差曲面は滑らかなままですが、多数の極小値が存在する可能性があります。学習を容易にするために、重みに関する誤差の導関数を計算するデルタ ルールを採用します。この導関数に比例して重みを調整することは、誤差曲面で最急降下を実行することと同じです。誤差曲面を上から見ると、楕円形の等高線が見えます。デルタ ルールは、これらの等高線に対して垂直になるように導きます。すべてのトレーニング ケースにわたって勾配が計算されるバッチ学習では、デルタ ルールが正しい方向に導きます。ただし、パーセプトロンと同様に、各トレーニング ケースの後に重みが更新されるオンライン学習を使用することもできます。この場合、重みの変更により、トレーニング ケースによって形成された制約平面に向かって移動します。

トレーニング ケースを交互に切り替えることで、制約線が交差する解点に向かってジグザグに移動し、両方のケースを満たす重みを示すことができます。さらに、誤差曲面を調べることで、学習の遅れを引き起こす条件を理解することができます。等高線を表す楕円が非常に細長い場合 (2 つのトレーニング ケースに対応する線がほぼ平行である場合に発生します)、勾配は好ましくない特性を示します。大きく進みたくない方向には傾きが大きくなり、大きく進みたい方向には傾きが小さくなります。この不一致により、効率的な学習が妨げられ、エラー サーフェスの谷のような構造をその細長い軸に沿って横断することが困難になります。

線形ニューロンの誤差曲面を視覚化すると、学習プロセスに関する貴重な洞察が得られます。表面の形状を理解することは、デルタ ルールの動作と学習速度への影響を理解するのに役立ちます。

Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 3.3 — ロジスティック出力ニューロンの重みの学習


講義 3.3 — ロジスティック出力ニューロンの重みの学習 [機械学習のためのニューラル ネットワーク]

学習規則を線形ニューロンから非線形ニューロンの多層ネットワークに拡張するには、2 つの手順を実行する必要があります。まず、単一の非線形ニューロン、特にロジスティック ニューロンの学習規則を一般化する必要があります。例としてロジスティック ニューロンが使用されていますが、他の種類の非線形ニューロンも同様に使用できます。

ロジスティック ニューロンは、そのバイアスとその入力ラインの加重和の合計である z で示されるロジットを計算します。 y で示される出力は、ロジットの滑らかな非線形関数です。グラフでは、z が大きく負の場合には関数が 0 に近づき、z が大きく正の場合には 1 に近づき、その間の滑らかな非線形変化を示すことがわかります。ロジスティック関数の連続性により、学習に便利な導関数が得られます。重みに関するロジスティック ニューロンの導関数 (これは学習にとって重要です) を取得するには、まず重みに関するロジット自体の導関数を計算します。この導関数は、xi で示される入力ラインの値に単純化されます。同様に、xi に関するロジットの導関数は重み wi です。

ロジットに関する出力の導関数は、出力自体の観点から表現できます。具体的には、出力が y として表される場合、dy/dz は y * (1 - y) で与えられます。この結果の数学的導出は次のスライドに示されています。これには、退屈ですが単純な計算が含まれます。ロジットに関する出力の導関数と重みに関するロジットの導関数を取得したら、重みに関する出力の導関数を決定できます。連鎖則を適用すると、dz/dw が xi となり、dy/dz が y * (1 - y) となります。その結果、デルタ ルールによく似たロジスティック ニューロンの学習ルールに到達します。

重みを変更するときの誤差の変化 (de/dwi で示されます) は、入力ラインの値 (xin) と残差 (xin) の積をすべてのトレーニング ケース (n) で合計することによって取得されます。ニューロンのターゲット出力と実際の出力。ただし、ロジスティック関数の傾きから派生する追加の項、つまり yn * (1 - yn) があります。デルタ ルールをわずかに変更することで、ロジスティック ニューロンをトレーニングするための勾配降下学習ルールに到達します。

勾配降下学習ルールをロジスティック ニューロンに適用することにより、非線形ニューロンの多層ネットワークを効果的に訓練できます。これにより、学習ルールが線形システムを超えて拡張され、より複雑なタスクに取り組むことが可能になります。この学習ルールが多層ネットワークのコンテキストでどのように機能するかを理解するために、単純な 2 層ネットワークを例として考えてみましょう。複数のニューロンを含む入力層と、単一のロジスティック ニューロンを含む出力層があります。層間の重みは W で示され、バイアスは b で示されます。

学習プロセスには 2 つのステップが含まれます。まず、指定された入力に対するネットワークの出力を計算します。これは、ネットワークを通じて入力を前方に伝播し、各ニューロンの合計入力 (ロジット) にロジスティック関数を適用し、最終的な出力を取得することによって行われます。次に、連鎖則を使用して重みに対する誤差の勾配を計算します。出力層から始めて、出力に関する誤差の導関数を計算します。これは、単にターゲット出力とネットワークの実際の出力の差です。次に、この誤差勾配をネットワークを通じて逆方向に伝播し、各ニューロンでのロジスティック関数の導関数を乗算して、隠れ層での勾配を取得します。最後に、計算された勾配と学習率を使用して重みを更新します。学習率は重み更新のステップ サイズを決定し、学習速度を制御するために調整できます。重みの更新は方程式に従います: ΔW = learning_rate * error_gradient * input。ここで、ΔW は重みの変化を表します。

この順伝播、誤差逆伝播、および重み更新のプロセスは、設定されたエポック数の間、またはネットワークが望ましいレベルのパフォーマンスに達するまで繰り返し繰り返されます。重みを繰り返し調整することで、ネットワークはより適切な予測を行ったり、入力をより正確に分類したりする方法を徐々に学習します。ロジスティック ニューロンについて説明した学習規則は、他のタイプの非線形活性化関数にも同様に一般化できることに注意することが重要です。重要なのは、活性化関数の導関数を正確に計算して、誤差勾配をネットワーク全体に効果的に伝播させることです。

学習ルールを線形ニューロンからロジスティック ニューロンに拡張し、それを多層ネットワークに適用することで、複雑な非線形モデルをトレーニングできます。これにより、誤差勾配に基づいて重みを繰り返し調整することで、パターン認識、分類、回帰を含む幅広いタスクを解決できるようになります。

Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

講義 3.4 — 逆伝播アルゴリズム



講義 3.4 — 逆伝播アルゴリズム [機械学習のためのニューラル ネットワーク]

前置きを終えたので、複数の機能レイヤーを学習するという中心的な問題を詳しく掘り下げてみましょう。このビデオでは、最後に、1980 年代に登場し、ニューラル ネットワークへの関心の高まりを引き起こしたバックプロパゲーション アルゴリズムについて説明します。

バックプロパゲーションについて説明する前に、最初に、それほど効果的ではないものの、言及する価値のある別のアルゴリズムについて説明します。ロジスティック単位の重みを学習する方法がわかったら、次の課題は隠れ単位の重みを学習することです。隠れユニットのないニューラル ネットワークでは、モデル化できる入出力マッピングが制限されます。パーセプトロンなどの手作業でコーディングされた機能の層はネットワークの能力を強化しますが、新しいタスク向けにこれらの機能を設計することは依然として困難で手動のプロセスです。

理想的には、機能設計ループを自動化して、人間による洞察や試行錯誤の繰り返しを必要とせずにコンピューターが優れた機能を見つけられるようにしたいと考えています。ここで、重みを摂動させることによって学習するという概念が思い浮かびます。重みをランダムに摂動させることは突然変異に似ており、ネットワークのパフォーマンスが向上するかどうかを観察できます。パフォーマンスが向上した場合は、強化学習の一種と同様に、その重みの変更を保存します。

ただし、この方法は非常に非効率です。重みを変更することでネットワークが改善されるかどうかを評価するには、代表的なトレーニング ケースのセットに対する複数のフォワード パスが必要です。単一のトレーニング ケースに基づいて重量変更の影響を評価するだけでは不十分です。さらに、重み間の適切な相対値が重要であるため、学習が進むにつれて重みが大きく変化すると状況が悪化する傾向があります。学習の終わりに近づくと、各重みの変化を評価するのに時間がかかるだけでなく、変化自体も小さくなければなりません。

摂動を学習に使用するもう少し良い方法があります。 1 つのアプローチは、すべての重みを並行して摂動させてから、パフォーマンスの向上と重みの変更を相関させることです。ただし、この方法では大幅な改善は得られません。課題は、他の重みの変更によって生じるノイズの中で 1 つの重みを変更した場合の影響を分離するために、すべての重みの異なるランダムな摂動を使用して多数の試行を行う必要があることにあります。

ある程度の改善を示す別のアプローチは、重みの代わりに隠れユニットのアクティビティをランダムに摂動させることです。特定のトレーニング ケースで隠れユニットのアクティビティを混乱させるとパフォーマンスが向上すると判断されると、重みの変更を計算できます。アクティビティの数が重みよりも少ないため、アルゴリズムはより効率的になります。ただし、バックプロパゲーションは依然として効率の点でこれらの方法を上回っており、その係数はネットワーク内のニューロンの数と同じです。

バックプロパゲーションの背後にある中心的な考え方は、非表示ユニットが何をすべきかは分からないかもしれないが (そのため、「非表示」という用語が使われます)、特定のトレーニング ケースで非表示ユニットのアクティビティを変更したときに誤差がどの程度変化するかを計算できるということです。隠れユニットのアクティビティを望ましい状態として使用する代わりに、アクティビティに関する誤差導関数を利用します。各隠れユニットは複数の出力ユニットに影響を与える可能性があるため、その効果を効率的に組み合わせる必要があります。

単一のトレーニング ケースのバックプロパゲーション アルゴリズムを要約するには、出力ユニットの目標値とネットワークによって生成される実際の値の間の二乗差として誤差を定義することから始めます。この誤差を微分することで、出力ユニットの出力に対して誤差がどのように変化するかを式で求めます。次に、以前に計算された上の層の誤差導関数を使用して、隠れユニットからのすべての発信接続の効果を合計することにより、隠れユニットの誤差導関数を計算できます。

逆伝播アルゴリズムを使用すると、ある層から前の層に誤差導関数を効率的に伝播できます。隠れユニットの誤差導関数が得られたら、隠れユニットに入る重みの誤差導関数を簡単に計算できます。これは、ユニットが受信した合計入力に関する誤差導関数に、下の層のユニットのアクティビティを乗算することによって行われます。計算された重みの誤差導関数は、特定の重みを変更したときに誤差がどのように変化するかを表します。

ここで、単一のトレーニング ケースに対するバックプロパゲーション アルゴリズムに含まれる手順の概要を説明します。

  1. 誤差を、ネットワークの目標値と実際の出力値の間の二乗差として定義します。

  2. チェーンルールを適用して、各出力ユニットの出力に関する誤差微分値を計算します。これには、合計入力に関する出力の微分値と、出力に関する誤差微分値を乗算することが含まれます。

  3. 隠れユニットからのすべての発信接続の影響を合計することにより、各隠れユニットの出力に関する誤差導関数を計算します。これには、各接続の重みに、上の層で計算された誤差導関数を乗算することが含まれます。

  4. すべての隠れ層に対してステップ 3 を繰り返し、誤差導関数をネットワークを通じて逆方向に伝播します。

  5. 各ユニットに入力される重みの誤差導関数を計算します。これは、ユニットが受信した合計入力に関する誤差導関数に、下の層のユニットのアクティビティを乗算することによって行われます。

これらの手順に従うことで、単一のトレーニング ケースに基づいてネットワーク内のすべての重みの誤差導関数を効率的に計算できます。バックプロパゲーション アルゴリズムを使用すると、各重みの変更が全体の誤差にどのような影響を与えるかを理解でき、学習プロセスが容易になります。逆伝播アルゴリズムを理解して実装することは、複数の機能層を備えたディープ ニューラル ネットワークをトレーニングするために重要です。この説明には慎重な検討が必要かもしれませんが、ニューラル ネットワークのトレーニングでバックプロパゲーションを効果的に利用するには、基礎となる概念と計算を理解することが不可欠です。

逆伝播アルゴリズムを使用してネットワーク内のすべての重みの誤差導関数を計算したら、この情報を使用して重みを更新し、ネットワークのパフォーマンスを向上させることができます。このプロセスは、重み調整または重み更新として知られています。重みの更新には通常、勾配降下法などの最適化アルゴリズムを使用して、誤差を最小化する方向に重みを繰り返し調整します。基本的な考え方は、対応する誤差導関数のごく一部を減算し、学習率パラメータを乗算して各重みを更新することです。

学習率は重み空間のステップ サイズを決定し、トレーニング プロセスの収束速度に影響します。安定した効率的な学習を実現するには、適切な学習率を選択することが重要です。学習率が大きすぎると重みが発散する可能性があり、学習率が小さすぎると収束が遅くなる可能性があります。重みの更新プロセス中、小さなバッチで重みを更新したり、一度に 1 つのトレーニング サンプルごとに重みを更新したりするのが一般的です。このアプローチは確率的勾配降下法またはミニバッチ勾配降下法として知られており、学習プロセスを高速化し、局所最適化に陥るのを避けるのに役立ちます。

重み更新プロセスは通常、複数のエポックにわたって繰り返され、各エポックはトレーニング データセット全体の処理で構成されます。これにより、ネットワークは複数のトレーニング例から蓄積された誤差に基づいて重みを段階的に調整できるようになり、汎化パフォーマンスが向上します。バックプロパゲーションと重みの更新はニューラル ネットワークのトレーニング段階で実行されることに注意することが重要です。ネットワークがトレーニングされると、ネットワークを介して入力を供給し、出力を取得するだけで、新しい未確認のデータを予測するために使用できます。

バックプロパゲーションと、複数の層の特徴を学習する機能は、深層学習の成功において極めて重要です。バックプロパゲーション アルゴリズムを使用すると、ニューラル ネットワークはデータの複雑な表現を自動的に学習し、画像や音声の認識、自然言語処理などを含む幅広いタスクを解決できるようになります。

バックプロパゲーション アルゴリズムは、複数の層を持つニューラル ネットワークで誤差導関数を効率的に計算するための強力な手法です。ネットワークを通じて誤差情報を逆方向に伝播することにより、重みの変化が全体の誤差にどのような影響を与えるかを判断できます。この情報は、重みを反復的に更新するために使用され、ネットワークが学習し、時間の経過とともにパフォーマンスを向上させることができます。

Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...