ディープラーニングの3つの主なステップ!

ディープラーニングの3つの主なステップ!

[[418456]]

この記事は、Lee Hongyi によるチーム スタディ ブック「LeeML-Notes」からの抜粋であり、ディープラーニング テクノロジを使用する 3 つの主な手順を詳しく説明しています。

チュートリアルアドレス: https://github.com/datawhalechina/leeml-notes

ディープラーニングの 3 つのステップ:

ステップ1: ニューラルネットワーク

ステップ2: モデル評価(機能の良さ)

ステップ3: 最適な機能を選択する

ステップ1: ニューラルネットワーク

ニューラル ネットワークは、ニューロンと呼ばれる多数の接続されたユニットで構成されています。

ニューラル ネットワークは人間の神経細胞に似ています。ニューロン上の電気信号の伝達は、ニューラル ネットワークで数値を伝達するプロセスに似ています。

このニューラル ネットワークでは、ニューロンはロジスティック回帰関数に相当するため、上図には多数のロジスティック回帰関数があり、それぞれに独自の重みと独自のバイアスがあります。これらの重みとバイアスがパラメーターです。

図の赤い四角はニューロンを表しています。複数のニューロンがさまざまな方法で接続されると、さまざまな構造のニューラル ネットワークが形成されます。ニューロンの接続方法は人工的に設計されています。

  • ニューロン: 図に示すニューロンの構造

  1. 入力に対応する重みを掛けて結果を合計すると次のようになります。

  2. と を活性化関数に代入して結果を取得します。

完全接続フィードフォワードニューラルネットワーク

完全接続: 各ニューロンの出力は次の層のすべてのニューロンに接続され、各ニューロンの入力は前の層のすべてのニューロンから取得されます。

フィードフォワード:フィードフォワードはフォワードとも呼ばれます。信号フローの観点から見ると、入力信号がネットワークに入った後、信号フローは単方向です。つまり、信号は前の層から次の層、そして出力層まで流れ、任意の 2 つの層間の接続にはフィードバックがありません。つまり、信号は次の層から前の層に戻りません。

  • 完全に接続されたフィードフォワードニューラルネットワークの例:

図に示すように、これは 4 層の全結合ニューラル ネットワークです。各層には 2 つのニューロンがあり、各ニューロンの活性化関数はシグモイドです。

  • ネットワーク入力は(1, -1)であり、活性化関数はシグモイドです。

  • ネットワーク入力は(0, 0)で、活性化関数はシグモイドです。

ニューラルネットワーク構造:

入力層: ネットワークの入力層。層のサイズは実際の入力サイズと一致します。

隠し層: 入力層と出力層の間にあるネットワーク層。

出力層: ネットワークの最後の層。ニューロン計算の結果がモデルの出力として直接出力されます。

いくつかの質問

  • なぜ「フル接続」と呼ばれるのでしょうか?

    ネットワーク内の第 1 層と第 2 層のニューロンのすべてのニューロン間が接続されているため、完全に接続されていると呼ばれます。

  • なぜ「フィードフォワード」と呼ばれるのでしょうか?

    ネットワーク内の値の伝達方向が前方から後方(入力層から出力層)であるため、フィードフォワードと呼ばれます。

  • ディープラーニング、「ディープ」はどこに反映されるのか?

ニューラルネットワークの接続方法は人工的に設計されているため、多くの層のニューロンを積み重ねて非常に「深い」ネットワークを形成できます。上の図に示すように、2015年に提案されたResNetの深さは152層です。

ディープニューラルネットワークには特別なトレーニング技術が必要

レイヤーの数が増えると、ネットワーク パラメータの数も増え、それに応じて計算量も増加し、通常は数十億回の計算を超えます。このような複雑な構造の場合、1 つずつ計算することは絶対にありません。数十億の計算の場合、ループを使用するのは非常に非効率的です。

ネットワークの動作プロセスを図に示します。

上図では、ネットワーク操作プロセスはマトリックス操作として考えることができます。

ネットワークの計算方法はネストのようなもので、ニューラル ネットワーク全体の操作は一連の行列操作と同等になります。

構造的には、各レイヤーでの計算は同じです。つまり、コンピューターを使用して並列行列演算を実行します。行列演算として記述する利点は、GPU アクセラレーションを使用できることです。GPU には多数のコアがあり、多数の行列演算を並列に実行できます。

ニューラルネットワークの本質: 隠れ層を通じた特徴変換

隠れ層は、ネットワーク入力層の入力特徴に対する特徴処理とみなすことができ、出力は最後の隠れ層で行われます。このときの出力は、新しい特徴セットとみなすことができ、出力層に出力され、出力層はこの新しい特徴セットを分類します。

例: 手書き数字認識

手書きの数字認識の例を次に示します。

入力: 16*16=256 次元のベクトル。各ピクセルは次元に対応します。色 (インク) は 1 で表され、色なし (インクなし) は 0 で表されます。画像は、ネットワーク入力として 256 次元のベクトルに平坦化されます。

出力: 10 次元、各次元は数値の信頼度を表します (数値の確率として理解できます)

出力結果から判断すると、各次元は数値の出力に対応しており、モデル出力が現在の分類番号である確率を表します。つまり、この絵が2である可能性が最も高いということになります。

この問題で確実なのは、入力が 256 次元ベクトルであり、出力が 10 次元ベクトルであるということだけです。見つける必要のある関数は、入力と出力の間のニューラル ネットワーク関数です。

上図から、ニューラルネットワークの構造が機能セットを決定することがわかります。一般的に、機能セット内の機能が複雑になるほど、ネットワークの表現空間が広くなり、複雑なパターンを処理できるようになります。したがって、ネットワーク構造は非常に重要です。

いくつか質問があります:

  • 何階ですか?各層にはニューロンがいくつありますか?この問題では、試行錯誤と直感を使ってデバッグする必要があります。機械学習関連の問題では、通常、特徴エンジニアリングを使用して特徴を抽出しますが、ディープラーニングの場合は、それを実行するためのニューラル ネットワーク モデルを設計するだけで済みます。特徴エンジニアリングを通じて特徴を抽出するのは簡単ではないため、ディープラーニングは音声認識や画像認識に適した方法です。

  • 構造は自動的に決定できますか?進化型人工ニューラルネットワークなど、機械がニューラルネットワークの構造を自動的に見つけられるようにする設計方法は数多くありますが、これらの方法はあまり普及していません。

  • ネットワーク構造を設計できますか?はい、CNN畳み込みニューラルネットワークなど

ステップ2: モデルの評価

損失の例

モデル評価では、通常、モデルの品質を反映するために損失関数を使用します。したがって、ニューラル ネットワークの場合、クロス エントロピー関数を使用して、および ̂ の損失を計算できます。次に、クロス エントロピーが可能な限り小さくなるようにパラメーターを調整します。

全体的な損失

損失については、単一のデータの損失を計算するだけでなく、すべてのトレーニング データ全体の損失を計算し、すべてのトレーニング データの損失を合計して全体の損失を取得する必要があります。次のステップは、全体的な損失を最小限に抑えることができる関数セット内の関数のセットを見つけるか、全体的な損失を最小限に抑えるニューラル ネットワーク パラメーターのセットを見つけることです。

ステップ3: 最適な機能を選択する

最適な機能と最適なパラメータセットを見つけるにはどうすればよいでしょうか?

—勾配降下法を使用します。

具体的なプロセス: 重みとバイアスを含むパラメータのセットです。ランダムに初期値を見つけ、各パラメータに対応する偏微分を計算します。偏微分のセット ∇ は勾配です。これらの偏微分を使用して、勾配を更新して新しいパラメータを取得できます。このプロセスを継続的に繰り返すことで、損失関数の値を最小化するパラメータのセットを取得できます。

バックプロパゲーション

ニューラル ネットワークのトレーニングでは、計算された損失を転送して、各ニューロン接続の重みが損失に与える影響を計算する必要があります。ここで使用される方法はバックプロパゲーションです。 TensorFlow、Pytorch、theano など、多くのフレームワークを使用して損失を計算できます。

検討すべき質問

なぜディープラーニングを使用するのでしょうか? ディープアーキテクチャはどのような利点をもたらすのでしょうか?つまり、隠し層が多いほど良いということでしょうか?

隠し層が多いほど良いのでしょうか?

図に示した結果から判断すると、理論的にはネットワークが深いほど効果が高くなることは間違いありませんが、現実はどうでしょうか。

普遍性定理

より多くのパラメータを持つモデルの方がデータに適合するのは当然です。

一般的な理論があります。つまり、任意の連続関数は、十分な数のニューロンで表現できるということです。では、なぜディープ ニューラル ネットワーク構造が必要なのでしょうか? 多数のニューロン (Fat) を含むネットワーク層を使用してそれを表現できるのでしょうか?

<<:  道路が車両を制御することが自動運転の新たな方向性となるのでしょうか?

>>:  ドローンが上海の歴史的建造物の保護を主導

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

VAE から拡散モデルへ: テキストを使用して画像を作成する新しいパラダイム

1 はじめにDALL·E のリリースから 15 か月後、OpenAI は今春、続編の DALL·E ...

自動運転時代のヒューマンマシンインタラクションの発展動向

自動車技術の継続的な向上とインターネット技術の普及に伴い、自動車に付与される機能はますます増えていま...

Stack Overflow が ChatGPT に対抗し、VS Code と連携する独自開発の生成 AI ツールをリリース

数日前、Stack Overflow コミュニティのトラフィックが大幅に減少したというニュースがあり...

...

マッキンゼー:2045年までに仕事の50%がAIに取って代わられる

▲ 画像出典:マッキンゼーこのレポートで、マッキンゼーは、AIが人間の仕事に取って代わる時期が早まっ...

アルゴリズム実践者が知っておくべき TensorFlow のヒント 10 選

導入これらを習得することで、モデルをより効率的にして開発効率を向上させることができます。 [[343...

クラウド、持続可能性、デジタル導入 - 2022 年のアジア太平洋地域の技術予測

フォレスターのアジア太平洋地域における 2022 年の予測によると、地域特有の圧力により、どこからで...

...

マッキンゼー:2024年にGenAIが人工知能のビジネス界を支配する

人工知能(AI)は2023年に世界的な革命を引き起こし、多くの企業がこの高度なテクノロジーを自ら習得...

「小学生」は荷物受け取りのためのFengchaoの顔スキャンシステムを解読できるのか?

資金が足りない、2Dで補う? 先日、Fengchaoのスマートエクスプレスロッカーが「小学生」によっ...

米上院司法委員会公聴会:AIは制御が難しく、悪意のある者が生物兵器の開発に利用する可能性がある

海外メディアTechCrunchによると、7月26日、米上院司法委員会は昨日、人工知能に関する公聴会...

「小さいけれど優秀」な大規模言語モデル Zephyr 7B の詳細な説明

Zephyr は、Hugging Face がリリースした一連の大規模言語モデルであり、蒸留教師あり...

小売業向け AI を活用したビデオ分析

[[330057]]人工知能 (AI) は、情報の収集からビジネス価値を抽出することを目的とするデー...

MITの中国人博士課程学生がChatGPTをJupyterに移行し、自然言語プログラミングをワンストップソリューションに

自然言語プログラミングは Jupyter で直接実行できます。 MIT の中国人博士課程の学生によっ...