ディープラーニングを始めるために理解すべき25の概念

ディープラーニングを始めるために理解すべき25の概念

[[245072]]

1. ニューロン- 脳の基本要素を形成するニューロンと同様に、ニューロンはニューラル ネットワークの基本構造を形成します。新しい情報を入手したときに私たちが何をするか想像してみてください。私たちが情報を取得すると、通常はそれを処理して出力を生成します。同様に、ニューラル ネットワークの場合、ニューロンは入力を受け取り、それを処理して出力を生成し、その出力は他のニューロンに送信されてさらに処理されるか、最終出力として出力されます。

2. 重み– 入力がニューロンに入ると、重みが掛けられます。たとえば、ニューロンに 2 つの入力がある場合、各入力には関連付けられた重みが割り当てられます。重みはランダムに初期化され、モデルのトレーニング中に更新されます。トレーニングされたニューラル ネットワークは、重要度の低い入力と比較して、より重要であると判断された入力に高い重みを割り当てます。重みがゼロの場合、特定の機能は重要ではないことを意味します。 入力がaで、それに関連付けられた重みがW1であると仮定すると、ノードを通過した後、入力はa*W1になります。

3. バイアス- 重みに加えて、入力に適用される別の線形コンポーネントはバイアスと呼ばれます。重みと入力を乗算した結果に加算されます。基本的にバイアスを追加する目的は、重みを入力に掛けて得られる結果の範囲を変更することです。バイアスを追加すると、結果は a*W1+bias のようになります。これは入力変換の最終的な線形コンポーネントです。

4. 活性化関数– 入力に線形コンポーネントが適用されると、非線形関数を適用する必要があります。これは、線形結合に活性化関数を適用することによって行われます。活性化関数は入力信号を出力信号に変換します。活性化関数を適用した後の出力は f(a*W1+b) のようになります。ここで、f() は活性化関数です。

下の図では、n 個の入力を X1 から Xn として、対応する重みを Wk1 から Wkn として指定しています。 bk によってバイアスが与えられます。重みはまず対応する入力で乗算され、次にバイアスと加算されます。この値は u と呼ばれます。

U = ΣW* X + b

活性化関数はu、つまりf(u)に適用され、ニューロンからの最終出力はyk = f(u)として返されます。

よく使われる活性化関数

最も一般的に使用される活性化関数は、シグモイド、ReLU、ソフトマックスです。

a) シグモイド — 最も一般的に使用される活性化関数の 1 つはシグモイドであり、次のように定義されます。

シグモイド(x)=1/(1+e-x)

シグモイド変換は、0 から 1 の間のより滑らかな範囲の値を生成します。入力値がわずかに変化したときに出力値の変化を観察したい場合があります。滑らかな曲線を使用するとこれが可能になり、ステップ関数よりも優れています。

b) ReLU (Rectified Linear Unit) — 最近のネットワークでは、シグモイド関数の代わりに、隠れ層に ReLu 活性化関数を使用することを好みます。関数は次のように定義されます。

f(x) = 最大値(x,0)

X>0 の場合、関数の出力値は X になります。X<=0 の場合、出力値は 0 になります。関数グラフを以下に示します。

ReLU 関数を使用する主な利点は、すべての入力に対して 0 より大きい一定の微分値が得られることです。一定の導関数値は、ネットワークのトレーニングをより速く進めるのに役立ちます。 c) Softmax – Softmax 活性化関数は通常、分類問題の出力層で使用されます。これはシグモイド関数と非常によく似ていますが、唯一の違いは出力が合計 1 に正規化されることです。シグモイド関数はバイナリ出力がある場合に機能しますが、マルチクラス分類問題がある場合、ソフトマックス関数を使用すると、各クラスに確率として解釈できる値を割り当てることが非常に簡単になります。

このように作業すると、簡単にわかります。たとえば、8 のように見える 6 を認識しようとしているとします。関数は各番号に次のように値を割り当てます。最も高い確率は 6 に割り当てられ、次に高い確率は 8 に割り当てられ、というように続くことが簡単にわかります...

5.ニューラル ネットワーク- ニューラル ネットワークはディープラーニングのバックボーンを形成します。ニューラル ネットワークの目的は、未知の関数の近似値を見つけることです。それは相互接続されたニューロンによって形成されます。これらのニューロンには、ネットワーク トレーニング中のエラーに基づいて更新される重みとバイアスがあります。活性化関数は、非線形変換を線形結合に変換し、後で出力を生成します。活性化されたニューロンの組み合わせによって出力値が生成されます。

ニューラル ネットワークの適切な定義は次のとおりです。

「ニューラル ネットワークは、相互にデータを渡したり、ネットワークの「経験」に基づいて調整される関連重みを持つ、相互に接続された多数の概念化された人工ニューロンで構成されています。ニューロンにはアクティブ化しきい値があり、関連重みと渡されたデータの組み合わせがこのしきい値に達すると発火します。発火したニューロンの組み合わせによって「学習」が行われます。」

6.入力 / 出力 / 隠し層- 名前が示すように、入力層は入力を受け取る層であり、基本的にネットワークの最初の層です。出力層は出力を生成する層であり、ネットワークの最終層とも言えます。処理層はネットワーク内の隠し層です。これらの隠し層は、入力データに対して特定のタスクを実行し、生成した出力を次の層に渡す層です。入力層と出力層は表示されますが、その間の層は表示されません。

7. MLP (多層パーセプトロン) — 単一のニューロンでは非常に複雑なタスクを実行することはできません。したがって、必要な出力を生成するにはニューロンのスタックを使用します。最も単純なネットワークには、入力層、隠れ層、出力層があります。各層には複数のニューロンがあり、各層のすべてのニューロンは次の層のすべてのニューロンに接続されています。これらのネットワークは、完全に接続されたネットワークとも呼ばれます。

8.順方向伝播– 順方向伝播とは、入力が隠れ層を通過して出力層に移動することを意味します。順方向伝播では、情報は一方向に伝わります。入力層は隠れ層に入力を提供し、隠れ層は出力を生成します。このプロセス中に逆の動きはありません。

9.コスト関数– ネットワークを構築するとき、ネットワークは実際の値にできるだけ近い出力を予測しようとします。

ネットワークの精度を測定するために、コスト/損失関数を使用します。コスト関数または損失関数は、エラーが発生したときにネットワークにペナルティを課そうとします。 ネットワークを実行する際の目標は、予測精度を向上させ、エラーを減らしてコストを最小限に抑えることです。最適化された出力は、コストまたは損失関数の値を最小化する出力です。

コスト関数を平均二乗誤差として定義すると、次のように記述できます。

C = 1/m ∑(y–a)^2、

ここで、m はトレーニング入力の数、a は予測値、y はその特定の例の実際の値です。 学習プロセスはコストを最小限に抑えることを中心に展開されます。

10.勾配降下法– 勾配降下法はコストを最小化する最適化アルゴリズムです。直感的に考えると、山を登るときは、一気に飛び降りるのではなく、小さな一歩を踏み出して一歩ずつ降りていくことになります。つまり、ポイント x から始めて、少し下に移動して (Δh)、位置を x-Δh に更新し、一番下に到達するまで一貫性を保ち続けます。最もコストが高いポイントを考慮してください。

数学的には、関数の局所的最小値を見つけるために、通常、関数の勾配の負の値に比例するステップ サイズを取ります。

11.学習率- 学習率は、各反復におけるコスト関数で最小化される量として定義されます。簡単に言えば、コスト関数の最小値に向かって下降する速度が学習率です。学習率は、最適解を逃してしまうほど大きくしたり、ネットワークが収束する必要があるほど小さくしたりしないように、慎重に選択する必要があります。

12.バックプロパゲーション— ニューラル ネットワークを定義したときに、ノードにランダムな重みとバイアス値を割り当てました。 1 回の反復の出力を受け取ると、ネットワークのエラーを計算できます。この誤差はコスト関数の勾配とともにネットワークにフィードバックされ、ネットワークの重みが更新されます。 ***後続の反復でのエラーが減少するようにこれらの重みを更新します。コスト関数の勾配を使用して重みを更新することをバックプロパゲーションと呼びます。 バックプロパゲーションでは、ネットワークの動きは逆方向に行われ、誤差は勾配として外側の層から隠れた層を通って戻り、重みが更新されます。

13.バッチ– ニューラル ネットワークをトレーニングする際、入力全体を一度に送信するのではなく、入力をランダムに同じサイズのチャンクに分割します。データをバッチでトレーニングすると、データセット全体を一度にネットワークに入力して構築されたモデルよりも、モデルを一般化できるようになります。

14.エポック— エポックは、順方向および逆方向の伝播におけるすべてのバッチの単一のトレーニング反復として定義されます。つまり、1 サイクルは入力データ全体の単一の前方および後方パスです。 ネットワークのトレーニングに使用するエポックの数を選択できます。エポックの数が多いほどネットワークの精度が高くなりますが、ネットワークが収束するまでの時間は長くなります。また、エポック数が多すぎると、ネットワークが過剰適合する可能性があることに注意する必要があります。

15.ドロップアウト– ドロップアウトは、ネットワークの過剰適合を防ぐ正規化手法です。名前が示すように、トレーニング中に、隠れ層内の特定の数のニューロンがランダムに削除されます。これは、ニューラル ネットワークのさまざまな組み合わせを持つニューラル ネットワークの複数のアーキテクチャでトレーニングが行われることを意味します。ドロップアウトは、複数のネットワークの出力を使用して最終出力を生成する統合手法と考えることができます。

16.バッチ正規化– 概念としては、バッチ正規化は川の特定のチェックポイントに設置するダムと考えることができます。これは、データの分布が取得する次のレイヤーと同じであることを保証するために行われます。ニューラル ネットワークをトレーニングする場合、勾配降下法の各ステップの後に重みが変化し、データが次のレイヤーに送信される方法の形状が変わります。

しかし、次の層では、前に見たものと同様の分布が予想されます。 したがって、データを次のレイヤーに送信する前に明示的に正規化します。

畳み込みニューラルネットワーク

17.フィルター - CNN のフィルターは、入力画像の一部と乗算されて畳み込み出力を生成する重み付けマトリックスのようなものです。サイズが 28*28 の画像があると仮定し、サイズが 3*3 のフィルターをランダムに割り当て、それを画像の異なる 3*3 部分と乗算して、いわゆる畳み込み出力を形成します。フィルターのサイズは通常、元の画像のサイズよりも小さくなります。コスト最小化のバックプロパゲーション中に、フィルタ値が重み値として更新されます。 下の図を参照してください。ここで、フィルターは 3 * 3 行列であり、画像の各 3 * 3 部分と乗算されて畳み込み機能を形成します。

18.畳み込みニューラル ネットワーク (CNN) – 畳み込みニューラル ネットワークは基本的に画像データに適用されます。入力サイズが (28*28*3) であると仮定すると、通常のニューラル ネットワークを使用すると、パラメーターは 2352 (28*28*3) になります。また、画像のサイズが大きくなるにつれて、パラメータの数も非常に多くなります。画像を「畳み込み」してパラメータの数を減らします (上記のフィルタ定義に示すように)。フィルターを入力ボリュームの幅と高さにスライドすると、各位置でのこのフィルターの出力を示す 2D アクティベーション マップが生成されます。これらのアクティベーション マップを深度次元に沿って積み重ね、出力ボリュームを生成します。 より明確な印象を得るために、下の図をご覧ください。

19.プーリング- プーリング層は通常、畳み込み層の間に定期的に導入されます。これは基本的に、いくつかのパラメータを減らして過剰適合を防ぐためです。最も一般的なタイプのプーリングは、MAX 演算を使用するフィルター サイズ (2,2) のプーリング レイヤーです。これは、元の画像の各 4*4 マトリックスの *** 値を取得します。 プーリングには平均プーリングなどの他の操作を使用することもできますが、実際には最大プーリングの方がパフォーマンスが優れています。

20.パディング– パディングとは、出力画像が入力画像と同じサイズになるように、画像間にゼロのレイヤーを追加することを指します。これを同一パディングと呼びます。

フィルターを適用すると、畳み込み層のサイズは同じパディングを持つ実際の画像と同じになります。

検証パディングとは、すべてのピクセルが実際の画像、つまり「有効な」画像である画像を維持することを指します。この場合、フィルターを適用した後、各畳み込み層で出力の長さと幅のサイズが減少し続けます。

21.データ拡張– データ拡張とは、与えられたデータから派生した新しいデータを追加することを指し、予測に役立つ可能性があります。たとえば、照明を明るくすると、暗い画像に映る猫が見えやすくなるかもしれませんし、数字認識の 9 が少し傾いたり回転したりして見えるかもしれません。この場合、回転によって問題が解決され、モデルの精度が向上します。回転したり明るくしたりすることで、データの品質が向上します。これをデータ拡張と呼びます。

リカレントニューラルネットワーク。

22.再帰型ニューロン– 再帰型ニューロンは、ニューロンの出力を T 時間内に送り返します。図を見ると、出力は入力を t 回返します。拡張されたニューロンは、異なるニューロンが互いに接続されたように見えます。このニューロンの基本的な利点は、より一般化された出力を提供することです。

23.リカレント ニューラル ネットワーク (RNN) – リカレント ニューラル ネットワークは、前の出力を使用して次の出力を予測する連続データに特に役立ちます。この場合、ネットワーク内にサイクルが存在します。隠れニューロン内のループにより、前の単語に関する情報をしばらく保存して、出力を予測できるようになります。隠し層の出力は、タイムスタンプ t で再び隠し層に送信されます。拡張されたニューロンは上の画像のようになります。すべてのタイムスタンプが完了した後にのみ、再帰型ニューロンの出力は次の層に入ることができます。送信される出力はより広範囲になり、以前の情報がより長く保持されます。 次に、エラーは展開されたネットワークを通じて逆伝播され、重みが更新されます。これは、Backpropagation Through Time (BPTT) と呼ばれます。

24.勾配消失問題– 勾配消失問題は、活性化関数の勾配が非常に小さい場合に発生します。バックプロパゲーション中に重みがこれらの低い勾配で乗算されると、ネットワークが下に行くほど重みは非常に小さくなり、「消える」傾向があります。これにより、ニューラル ネットワークは長距離の依存関係を忘れます。これは、長期的な依存関係が非常に重要となるリカレント ニューラル ネットワークにとって問題となります。 これは、小さな勾配を持たない ReLu と呼ばれる活性化関数を使用することで解決できます。

25.爆発勾配問題– これは勾配消失問題と正反対で、活性化関数の勾配が大きすぎる問題です。バックプロパゲーション中、特定のノードの重みが他のノードの重みに比べて非常に高くなり、重要ではなくなります。これは、特定の値を超えないようにグラデーションをクリップすることで簡単に修正できます。

<<:  AIのジレンマをどう解決するか?

>>:  小さくても素晴らしい、ミニプログラムのデビュー

ブログ    
ブログ    
ブログ    

推薦する

...

...

Ocado が機械学習を活用して食品廃棄を減らし、飢餓と闘う方法

[[282701]] [51CTO.com クイック翻訳] 食品廃棄は世界中で大きな問題となっていま...

AIがサイバーセキュリティに与える影響

人工知能(AI)は、人間の知能をシミュレート、拡張、拡大するための理論、方法、技術、アプリケーション...

5 つの負荷分散アルゴリズムのうち、いくつ知っていますか?

[[286828]] F5、LVS、HAproxy、nginx など、私たちが普段使用している負荷...

未来のサイバー攻撃の原型: ChatGPT の 7 つの「邪悪な双子」

あらゆる技術革新と同様に、生成 AI ツールにも暗い側面があり、人命を害するために悪用される可能性も...

...

Java プログラミング スキル - データ構造とアルゴリズム「バイナリ ソート ツリー」

[[390181]]基本的な紹介バイナリ ソート (検索) ツリー: バイナリ ソート ツリー内の...

人工知能技術は交通にどのように応用できるのでしょうか?

都市交通の分野では、AI信号制御、インテリジェントな街路交通監視、スマートバス停、スマート高速道路な...

中国がSORAをいかにして複製したかを、中国のチームが長文の記事で解説! 996 OpenAI研究者:SoraはビデオGPT-2の瞬間です

現在、この写真は AI コミュニティで広く流布されています。さまざまな文化ビデオ モデルの誕生時期、...

AIは大学入試のエッセイを次のように書きました。「ネイティブの手、素晴らしい手、普通の手はすべて手であり、コピーの手もまた手です...」

昨日、大学入試の中国語テストが終わった後、作文の話題がWeiboのホットな検索語句の上位を占めました...

2024年の人工知能の6つの主要な発展トレンド

テクノロジーが支配する急速に進化する世界では、人間の創造性と人工知能 (AI) の魅力的な融合が中心...

...