私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
導入: 人工知能モデルをトレーニングするとき、簡単に言えば、データに基づいてモデルのパラメーターを調整します。モデルはデータと同じ値を予測します 。でも最初は明らかに違っていたので、損失関数の導入、どのくらいの差があるかを計算するために使用すると、どのくらいの差があるのかがわかり、元のモデルのパラメーターをどのように調整すればよいでしょうか。
なぜ! 元のモデルのパラメーターを調整する目的は、予測値を必要な値と同じにすることです。計算された予測値と必要な値の間のギャップを最小化するモデル パラメーターを見つけることは可能ですか? ===》これは最小値を求める問題です
したがって、本質的には損失関数の最小値を見つけることです。
分解手順:
目標: f(x) を最小化する適切な x 値を見つけます。
論理
1. 任意の点 x0 を選択し、この点における微分値 f(x0) を計算します。
2. 導関数の符号に従って、x0 を増加するか減少させるかを決定します。微分値が正の場合は x を減少させます。これは、微分値が負の場合は y も増加するためです。
3.迭代进行1,2步直到导数为0;或者导数变号了。
どのような状況で微分値の符号が変化しますか?
那就函数的值,之前在减小,现在在增大了,所以导数就会编号,那么最小值就在其中(救赎之道,就在其中)
勾配: 直接導関数として理解することもできますが、ディープラーニングでは通常は導関数ではなく、つまり多変数関数の導関数を導出します。
例えば:
単項関数:
元の関数: y=5x^2
微分関数: y= 10x
つまり、x=1 の場合、微分値は 10 になります。
多機能
3次関数: y=2x^2 + 6z^2 + 7m^3
微分関数 (つまり、3 つの未知数の偏微分解): y={4x,12z,21m^2}
[1,1,1] の勾配は [4,12,21] であり、勾配はベクトルです。
これらはすべて関数を導出しており、導関数を使用して勾配を理解できます。
意味: 勾配降下アルゴリズムは、入力データに対してモデルの勾配を計算し、学習率を通じてモデルの元の重みパラメータを更新するロジックです。使用されるアルゴリズムにはさまざまな種類がありますので、それを紹介します。
次の模式図は深層学習のフローチャートです。最小値を求める問題の値は、損失関数 –> オプティマイザー –> モデル
1. 損失関数が小さいほど、モデルは優れています。
2. 学習の目標は損失関数を最小化することです
3. モデルの重みは損失関数に影響します
4. 勾配降下法で最適な重みを見つける
更新されたロジック
1. 入力 x とモデルの現在の重みに基づいて予測値 y1 を計算します。
2. 損失関数を使用して、y1 と y に基づいて損失を計算します。
3. 損失に基づいてモデルの重量の勾配を計算します。
4. 勾配と学習率を使用して、オプティマイザーに従ってモデルの重みを調整します。
更新方法:
1. すべてのサンプルで勾配 (累積) を計算します。勾配降下法をまとめて実行します。
2. 一度に 1 つのサンプルを使用して勾配を計算します。 確率的勾配降下法
3. 毎回 n 個のサンプルを使用して勾配 (累積) を計算します。 ミニバッチ勾配降下法