フィードフォワードニューラルネットワークの概要:レイヤー、機能、重要性
公開: 2020-05-28ディープラーニングテクノロジーは、検索エンジン、機械翻訳、モバイルアプリケーションのバックボーンです。 人間の脳を模倣して、さまざまな種類のデータからパターンを見つけて作成することで機能します。
この驚くべきテクノロジーの重要な部分の1つは、フィードフォワードニューラルネットワークです。これは、ソフトウェアエンジニアがパターン認識と分類、非線形回帰、および関数近似を行うのを支援します。
コアニューラルネットワークアーキテクチャのこの重要な側面についていくつかの洞察を得ましょう。
目次
フィードフォワードニューラルネットワークとは何ですか?
一般にニューロンの多層ネットワークとして知られているフィードフォワードニューラルネットワークは、すべての情報が順方向にのみ移動するという事実からそう呼ばれています。
情報は最初に入力ノードに入り、非表示のレイヤーを移動し、最後に出力ノードから出てきます。 ネットワークには、出力ノードで出力された情報をネットワークにフィードバックするための接続が含まれていません。
フィードフォワードニューラルネットワークは、関数を近似することを目的としています。

仕組みは次のとおりです。
分類子y=f *(x)があります。
これにより、入力xがカテゴリyにフィードされます。
フィードフォワードネットワークはy=f(x;θ)をマッピングします。 次に、関数を最もよく近似するθの値を記憶します。
Googleフォトアプリで見つけることができる、画像内のオブジェクト認識のベースとなるフィードフォワードニューラルネットワーク。
フィードフォワードニューラルネットワークのレイヤー
フィードフォワードニューラルネットワークは、次のもので構成されます。
入力層
これには、入力を受け取るニューロンが含まれています。 次に、入力を次のレイヤーに渡します。 入力層のニューロンの総数は、データセットの属性と同じです。
隠し層
これは中間層であり、入力層と出力層の間に隠されています。 この層には、入力に変換を適用するニューロンが多数あります。 次に、それを出力レイヤーに渡します。
出力層
これは最後のレイヤーであり、モデルの構築に依存します。 また、出力レイヤーは、結果をどのようにするかがわかっているため、予測される機能です。
ニューロンの重み
ニューロン間の接続の強さは重みと呼ばれます。 重みの値の範囲は0から1です。
詳細:ニューラルネットワークモデル:簡単な紹介、用語集
フィードフォワードニューラルネットワークのコスト関数
コスト関数の選択は、フィードフォワードニューラルネットワークの最も重要な部分の1つです。 通常、重みとバイアスの小さな変化は、分類されたデータポイントに影響を与えません。 したがって、スムーズなコスト関数を使用して重みとバイアスに小さな変更を加えることにより、パフォーマンスを向上させる方法を見つけます。
平均二乗誤差コスト関数の式は次のとおりです。
ソース
どこ、
w=ネットワーク内の重みのコレクション
b=バイアス
n=トレーニング入力の数
a=出力ベクトル
x=入力
‖v‖=ベクトルvの通常の長さ
フィードフォワードニューラルネットワークの損失関数
ニューラルネットワークの損失関数は、学習プロセスに必要な修正があるかどうかを判断するためのものです。

出力層のニューロンは、クラスの数と等しくなります。 予測された確率分布と真の確率分布の違いを比較します。
二項分類のクロスエントロピー損失は次のとおりです。
マルチクラス分類のクロスエントロピー損失は次のとおりです。
ソース
勾配学習アルゴリズム
このアルゴリズムは、フィードフォワードニューラルネットワークでの損失を減らすために、パラメーターの可能なすべての最良の値を決定するのに役立ちます。
画像
すべての重み(w₁₁₁、w₁₁₂、…)とバイアスb(b₁、b₂、…。)はランダムに初期化されます。 これが行われると、データ内の観測が繰り返されます。 次に、対応する予測分布が各観測値に対して決定されます。 最後に、クロスエントロピー関数を使用して損失が計算されます。
次に、損失値は、モデルの全体的な損失を減らすためにウェイトに加える変更を把握するのに役立ちます。
読む: 13の興味深いニューラルネットワークプロジェクトのアイデアとトピック
ニューロンモデルの必要性
ネットワークに供給される入力が、キャラクターのスキャン画像からの生のピクセルデータであるとしましょう。 ネットワークの出力で数字を正しく分類するには、適切な量の重みとバイアスを決定する必要があります。
ここで、ネットワークの重みに小さな変更を加えて、学習がどのように機能するかを確認する必要があります。 これが完全に判明するためには、重みの小さな変化が出力の小さな変化につながるだけです。
しかし、重量の小さな変化が出力の大きな変化に相当する場合はどうなりますか? シグモイドニューロンモデルは、このような問題を解決できます。
ソース
また読む: MLエンジニアが必要とする7種類の人工ニューラルネットワーク

結論
ディープラーニングは、膨大な範囲の研究を伴うソフトウェアエンジニアリングの領域です。 さまざまなデータ型に対して実現されたニューラルネットワークアーキテクチャはたくさんあります。 たとえば、畳み込みニューラルシステムは、画像処理手順の分野でクラス最高の実行を実現しましたが、リカレントニューラルシステムは、一般にコンテンツおよび音声処理で利用されます。
巨大なデータセットに適用される時点で、ニューラルシステムは計算力と機器の加速の巨大な測定値を必要とします。これは、グラフィックスプロセッシングユニットまたはGPUを配置する設計を通じて実現できます。 GPUの利用に慣れていないという偶然の機会に、Web上で無料で構成された設定を見つけることができます。 最も好ましいものは、KaggleNotebookまたはGoogleCollabNotebooksです。
効果的なフィードフォワードニューラルネットワークを実現するには、ネットワークアーキテクチャで数回の反復を実行しますが、これには多くのテストが必要です。
これらのネットワークがどのように機能するかについての詳細は、upGradの専門家から学んでください。 私たちのコースは非常に包括的であり、経験豊富でクラス最高の教師と直接連絡を取ることで、質問を解決することができます。
機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIIT-を提供します。 B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
ニューラルネットワークには線形代数が必要ですか?
ニューラルネットワークは、複雑な問題を解決する数学モデルです。 ネットワークは一連の入力を受け取り、目的の結果を達成することを目的として一連の出力を計算します。 ニューラルネットワーク理論を研究する場合、ニューロンと層の大部分は線形代数でフォーマットされることがよくあります。 数理モデルを構築するには線形代数が必要です。 線形代数を使用して、モデルのネットワークを理解することもできます。 したがって、質問に答えるには、はい、ニューラルネットワークを使用する際には線形代数の基本的な知識が必須です。
ニューラルネットワークでのバックプロパゲーションとはどういう意味ですか?
最急降下法を採用するニューラルネットワークの場合、バックプロパゲーションが使用されます。 このアルゴリズムは、ニューラルネットワークの重みに対する誤差関数の勾配を推定し、本質的にはミスの後方伝播です。 このアプローチが採用されているのは、重みを微調整することでエラー率が減少し、ニューラルネットワークモデルの一般化が改善され、信頼性が向上するためです。 バックプロパゲーションは、ニューラルネットワークの損失関数勾配を計算するために、入力値ごとに既知の意図された結果を必要とするため、一般に教師あり機械学習の形式として分類されます。
バックプロパゲーションはオプティマイザーとどのように異なりますか?
ニューラルネットワークでは、オプティマイザーとバックプロパゲーションアルゴリズムの両方が使用され、これらが連携してモデルの信頼性を高めます。 バックプロパゲーションは勾配を効率的に計算するために使用され、オプティマイザーはバックプロパゲーションを使用して取得された勾配を使用してニューラルネットワークをトレーニングするために使用されます。 一言で言えば、バックプロパゲーションが私たちのために行うことは、後でオプティマイザーによって使用される計算勾配です。