ディープ ラーニングの概念について理解する
脳には、ネットワーク経由で電気化学的な信号が通過する神経伸長によって相互に接続されているニューロンという神経細胞があります。
ネットワークの最初のニューロンが刺激されると入力信号が処理され、特定のしきい値を超えた場合、ニューロンが "活性化" され、信号が接続されているニューロンに渡されます。 これらのニューロンは順に活性化され、信号はネットワークの他の部分を通過することができます。 頻繁に使用することで、時間の経過と共にニューロン間の接続が強化され、効率的に応答する方法を学習していきます。 たとえば、ペンギンの画像が表示されている場合、ニューロン接続では、画像内の情報とペンギンの特性に関する知識を処理して識別できます。 時間の経過とともに、さまざまな動物の複数の画像が表示される場合、その特性に基づく動物の識別に関係するニューロンのネットワークが強力になります。 つまり、さまざまな動物をより正確に識別できます。
ディープ ラーニングでは、電気化学的な刺激ではなく数値入力を処理する人工ニューラル ネットワークを使用して、この生物学的なプロセスをエミュレートします。
受信した神経接続は、通常、x として識別される数値入力に置き換えられます。 複数の入力値がある場合、x は、x1、x2 などの名前の要素を持つベクトルと見なされます。
各 x 値に関連付けられた "重み" (w) は、学習をシミュレートするために x 値の効果を強化または弱くするために使用されます。 さらに、ネットワークをきめ細かく制御できるように、"バイアス" (b) 入力が追加されます。 トレーニング プロセスでは、w と b の値が調整され、ネットワークが正しい出力を生成するように "学習" できるようにします。
ニューロン自体は、x、w、b の加重和を計算する関数をカプセル化しています。 次に、この関数は結果を (多くの場合、0 - 1 の範囲の値に) 制限する "活性化関数" で囲まれています。これによって、ニューロンが出力をネットワーク内のニューロンの次の層に渡すかどうかが判断されます。
ディープ ラーニング モデルのトレーニング
ディープ ラーニング モデルは、複数の ''層'' の人工ニューロンで構成されるニューラル ネットワークです。 各層は、w 重みと b バイアスが関連付けられた x 値に対して実行される一連の関数を表し、最後の層はモデルが予測する y ラベルの出力に対する結果を表します。 ''分類'' モデル (入力データの最も可能性の高いカテゴリまたは ''クラス'' を予測する) の場合、出力は、考えられる各クラスの確率を含むベクターです。
次の図は、4 つの特徴 (x 値) に基づいてデータ エンティティのクラスを予測するディープ ラーニング モデルを表しています。 モデルの出力 (y 値) は、考えられる 3 つのクラス ラベルのそれぞれに対する確率です。
モデルをトレーニングするために、ディープ ラーニング フレームワークでは入力データの複数のバッチ (実際のラベル値が既知である) をフィードし、すべてのネットワーク層で関数を適用し、出力確率とトレーニング データの実際の既知のクラス ラベルの差を測定します。 予測出力と実際のラベルの間の集計された差は ''損失'' と呼ばれます。
データのすべてのバッチの集計損失を計算した後、ディープ ラーニング フレームワークでは ''オプティマイザー'' を使用して、全体的な損失を減らすためにモデル内の重みとバイアスを調整する方法を決定します。 その後、これらの調整はニューラル ネットワーク モデル内の層に ''逆伝播'' され、データが再びネットワーク経由で渡され、損失が再計算されます。 このプロセスは、損失が最小限に抑えられ、モデルが正確に予測できるように適切な重みとバイアスを "学習" するまで、複数回繰り返されます (各反復は "エポック" と呼ばれます)。
各エポックでは、損失を最小限に抑えるために重みとバイアスが調整されます。 調整される量は、オプティマイザーに指定した ''学習率'' によって制御されます。 学習率が低すぎると、トレーニング プロセスで最適な値を判断するのに時間がかかる場合があります。しかし、高すぎると、オプティマイザーで最適な値が見つからない可能性があります。