この記事は、Lee Hongyi によるチーム スタディ ブック「LeeML-Notes」からの抜粋であり、ディープラーニング テクノロジを使用する 3 つの主な手順を詳しく説明しています。 チュートリアルアドレス: https://github.com/datawhalechina/leeml-notes ディープラーニングの 3 つのステップ: ステップ1: ニューラルネットワーク ステップ2: モデル評価(機能の良さ) ステップ3: 最適な機能を選択する ステップ1: ニューラルネットワークニューラル ネットワークは、ニューロンと呼ばれる多数の接続されたユニットで構成されています。 ニューラル ネットワークは人間の神経細胞に似ています。ニューロン上の電気信号の伝達は、ニューラル ネットワークで数値を伝達するプロセスに似ています。 このニューラル ネットワークでは、ニューロンはロジスティック回帰関数に相当するため、上図には多数のロジスティック回帰関数があり、それぞれに独自の重みと独自のバイアスがあります。これらの重みとバイアスがパラメーターです。 図の赤い四角はニューロンを表しています。複数のニューロンがさまざまな方法で接続されると、さまざまな構造のニューラル ネットワークが形成されます。ニューロンの接続方法は人工的に設計されています。
完全接続フィードフォワードニューラルネットワーク 完全接続: 各ニューロンの出力は次の層のすべてのニューロンに接続され、各ニューロンの入力は前の層のすべてのニューロンから取得されます。 フィードフォワード:フィードフォワードはフォワードとも呼ばれます。信号フローの観点から見ると、入力信号がネットワークに入った後、信号フローは単方向です。つまり、信号は前の層から次の層、そして出力層まで流れ、任意の 2 つの層間の接続にはフィードバックがありません。つまり、信号は次の層から前の層に戻りません。
図に示すように、これは 4 層の全結合ニューラル ネットワークです。各層には 2 つのニューロンがあり、各ニューロンの活性化関数はシグモイドです。
ニューラルネットワーク構造: 入力層: ネットワークの入力層。層のサイズは実際の入力サイズと一致します。 隠し層: 入力層と出力層の間にあるネットワーク層。 出力層: ネットワークの最後の層。ニューロン計算の結果がモデルの出力として直接出力されます。 いくつかの質問
ニューラルネットワークの接続方法は人工的に設計されているため、多くの層のニューロンを積み重ねて非常に「深い」ネットワークを形成できます。上の図に示すように、2015年に提案されたResNetの深さは152層です。 ディープニューラルネットワークには特別なトレーニング技術が必要 レイヤーの数が増えると、ネットワーク パラメータの数も増え、それに応じて計算量も増加し、通常は数十億回の計算を超えます。このような複雑な構造の場合、1 つずつ計算することは絶対にありません。数十億の計算の場合、ループを使用するのは非常に非効率的です。 ネットワークの動作プロセスを図に示します。 上図では、ネットワーク操作プロセスはマトリックス操作として考えることができます。 ネットワークの計算方法はネストのようなもので、ニューラル ネットワーク全体の操作は一連の行列操作と同等になります。 構造的には、各レイヤーでの計算は同じです。つまり、コンピューターを使用して並列行列演算を実行します。行列演算として記述する利点は、GPU アクセラレーションを使用できることです。GPU には多数のコアがあり、多数の行列演算を並列に実行できます。 ニューラルネットワークの本質: 隠れ層を通じた特徴変換 隠れ層は、ネットワーク入力層の入力特徴に対する特徴処理とみなすことができ、出力は最後の隠れ層で行われます。このときの出力は、新しい特徴セットとみなすことができ、出力層に出力され、出力層はこの新しい特徴セットを分類します。 例: 手書き数字認識 手書きの数字認識の例を次に示します。 入力: 16*16=256 次元のベクトル。各ピクセルは次元に対応します。色 (インク) は 1 で表され、色なし (インクなし) は 0 で表されます。画像は、ネットワーク入力として 256 次元のベクトルに平坦化されます。 出力: 10 次元、各次元は数値の信頼度を表します (数値の確率として理解できます) 出力結果から判断すると、各次元は数値の出力に対応しており、モデル出力が現在の分類番号である確率を表します。つまり、この絵が2である可能性が最も高いということになります。 この問題で確実なのは、入力が 256 次元ベクトルであり、出力が 10 次元ベクトルであるということだけです。見つける必要のある関数は、入力と出力の間のニューラル ネットワーク関数です。 上図から、ニューラルネットワークの構造が機能セットを決定することがわかります。一般的に、機能セット内の機能が複雑になるほど、ネットワークの表現空間が広くなり、複雑なパターンを処理できるようになります。したがって、ネットワーク構造は非常に重要です。 いくつか質問があります:
ステップ2: モデルの評価損失の例 モデル評価では、通常、モデルの品質を反映するために損失関数を使用します。したがって、ニューラル ネットワークの場合、クロス エントロピー関数を使用して、および ̂ の損失を計算できます。次に、クロス エントロピーが可能な限り小さくなるようにパラメーターを調整します。 全体的な損失 損失については、単一のデータの損失を計算するだけでなく、すべてのトレーニング データ全体の損失を計算し、すべてのトレーニング データの損失を合計して全体の損失を取得する必要があります。次のステップは、全体的な損失を最小限に抑えることができる関数セット内の関数のセットを見つけるか、全体的な損失を最小限に抑えるニューラル ネットワーク パラメーターのセットを見つけることです。 ステップ3: 最適な機能を選択する最適な機能と最適なパラメータセットを見つけるにはどうすればよいでしょうか? —勾配降下法を使用します。 具体的なプロセス: 重みとバイアスを含むパラメータのセットです。ランダムに初期値を見つけ、各パラメータに対応する偏微分を計算します。偏微分のセット ∇ は勾配です。これらの偏微分を使用して、勾配を更新して新しいパラメータを取得できます。このプロセスを継続的に繰り返すことで、損失関数の値を最小化するパラメータのセットを取得できます。 バックプロパゲーション ニューラル ネットワークのトレーニングでは、計算された損失を転送して、各ニューロン接続の重みが損失に与える影響を計算する必要があります。ここで使用される方法はバックプロパゲーションです。 TensorFlow、Pytorch、theano など、多くのフレームワークを使用して損失を計算できます。 検討すべき質問なぜディープラーニングを使用するのでしょうか? ディープアーキテクチャはどのような利点をもたらすのでしょうか?つまり、隠し層が多いほど良いということでしょうか? 隠し層が多いほど良いのでしょうか?図に示した結果から判断すると、理論的にはネットワークが深いほど効果が高くなることは間違いありませんが、現実はどうでしょうか。 普遍性定理より多くのパラメータを持つモデルの方がデータに適合するのは当然です。 一般的な理論があります。つまり、任意の連続関数は、十分な数のニューロンで表現できるということです。では、なぜディープ ニューラル ネットワーク構造が必要なのでしょうか? 多数のニューロン (Fat) を含むネットワーク層を使用してそれを表現できるのでしょうか? |
<<: 道路が車両を制御することが自動運転の新たな方向性となるのでしょうか?
昨年11月には世界インターネット会議が開催され、その期間中、人工知能が私たちの生活にどのような変化を...
人工知能は世界第4次産業革命であり、工業、医療などの分野での応用が拡大しています。オンライン教育の普...
YESOUL高反発腹筋ローラーは、1月7日よりXiaomi Youpinでクラウドファンディングで販...
[[343402]] 1. トレーニングのボトルネックはどこですか? GPU 使用率が低い: モデル...
水力発電ダムの壁は川の流れを制限し、川をよどんだ水たまりに変えてしまいます。これらの貯水池が古くなる...
BT プロトコルと eMule プロトコルのアルゴリズムにはいくつかの違いがあり、この 2 つを併用...
[[384524]]ニューヨークのマンハッタン北部のアパートで男性2人が人質に取られている。その数...
アレックス・ガーランド監督の2015年大ヒット作『エクス・マキナ』では、監督が意図したように、機械の...
畳み込みニューラルネットワーク(CNN)と衛星画像データを使用して地域の所得レベルを予測する手法がま...
データの蓄積、コンピュータの計算能力の飛躍的向上、アルゴリズムの最適化により、人工知能は生活をより効...