損失関数を使用して、特定のアルゴリズムがトレーニングに使用されたデータとどの程度一致するかを計算します。損失の計算は、予測値と実際の値の差に基づいて行われます。予測値が実際の値から大きく離れている場合、損失関数は非常に大きな値になります。 Keras は、Python で記述されたニューラル ネットワークを作成するためのオープン ソース ライブラリです。 Keras は低レベルの計算をサポートしていませんが、Theano や TensorFlow などのライブラリ上で実行されます。 このチュートリアルでは、Keras バックエンドとして TensorFlow を使用します。バックエンドは、テンソル積、畳み込み、その他の同様のアクティビティなどの計算を実行するために使用される Keras ライブラリです。 Kerasでよく使われる損失関数 前述のように、独自のカスタム損失関数を作成することもできますが、その前に、既存の Keras 損失関数について説明することをお勧めします。最も一般的なものを 2 つ挙げます。
平均二乗誤差 (MSE) は二乗誤差の平均を測定します。予測値と実際の値の平均二乗差です。
平均絶対誤差 (MAE) は、通常 x と y で表される 2 つの連続変数間の差の尺度です。平均絶対誤差は絶対誤差 e=yx の平均です。ここで、y は予測値、x は実際の値です。 カスタム損失関数とは何ですか? 損失関数が異なれば、損失を計算する式の定義も異なります。場合によっては、Keras が提供していない損失計算式を使用する必要があるかもしれません。この場合、独自の損失関数を定義して使用することを検討できます。このようなユーザー定義の損失関数は、カスタム損失関数と呼ばれます。 Keras のカスタム損失関数を使用すると、機械学習モデルのパフォーマンスを望みどおりに向上させることができ、特定の問題をより効率的に解決するのに非常に役立ちます。たとえば、株式ポートフォリオ最適化モデルを構築しているとします。この場合、カスタム損失関数を設計すると、間違った方向への価格変動を予測した場合に大きなペナルティを実装するのに役立ちます。 スカラーを返し、真の値と予測値の 2 つの引数を受け入れる関数を記述することで、Keras でカスタム損失関数を作成できます。次に、他の損失関数と同様に、カスタム損失関数を引数として model.compile に渡します。 カスタム損失関数の実装 それでは、Keras モデルにカスタム損失関数を実装してみましょう。まず、Keras モデルを定義する必要があります。モデル インスタンス名は keras_model であり、keras sequential() 関数を使用してモデルを作成します。 3 つのレイヤーがあり、そのすべてが形状 64、64、1 の密なレイヤーです。入力形状は 1 で、ReLU 活性化関数 (Rectified Linear Unit) を使用します。 モデルを定義したら、カスタム損失関数を定義する必要があります。その実装を以下に示します。この関数に実際の値と予測値を渡します。 実際の値と予測値の差を 10 で割ることに注意してください。これは損失関数のカスタム部分です。デフォルトの損失関数では、実際の値と予測値の差は 10 で割られません。 覚えておいてください、どのようなカスタム損失関数を記述する必要があるかは、すべて特定のユースケースによって異なります。ここでは 10 で割ります。これは、計算中の損失のサイズを減らすことを意味します。 MSE のデフォルトの場合、損失のサイズはこのカスタム実装の 10 倍になります。したがって、損失値が非常に大きくなり、計算コストが非常に高くなる場合は、このカスタム損失関数を使用できます。 ここでは、この関数からスカラーのカスタム損失値を返します。 カスタム損失関数をさらに使用するには、オプティマイザーを定義する必要があります。ここでは RMSProp オプティマイザーを使用します。 RMSprop は、root mean square propagation (二乗平均平方根伝播) の略です。 RMSprop オプティマイザーは、モメンタム付き勾配降下法に似ています。一般的に使用されるオプティマイザーは、rmsprop、Adam、sgd と呼ばれます。 モデル インスタンスで呼び出される compile メソッドに、カスタム損失関数とオプティマイザーを渡す必要があります。次に、モデルを印刷して、エラーなしでコンパイルされたことを確認します。 次に、モデルをトレーニングして、適切に動作するかどうかを確認します。これを行うには、モデルに対して fit メソッドを使用し、独立変数 x と従属変数 y および epochs=100 を渡します。 ここでの目標は、モデルがエラーなくトレーニングされ、エポック数が増えるにつれて損失が徐々に減少することを保証することです。モデルのトレーニングの結果は、次の図で確認できます。 結論 この記事では、カスタム損失関数とは何か、そして Keras モデルでカスタム損失関数を定義する方法について学習しました。次に、カスタム損失関数を使用して Keras モデルをコンパイルしました。最後に、モデルのトレーニングに成功し、カスタム損失関数を実装しました。 |
<<: 清華大学と中国人工知能学会が2019年人工知能開発報告書を発表
>>: 人工知能は社会に何をもたらすのでしょうか? 1つの記事でAIの変革を理解する
テクノロジーは建設業界にかつてないほど大きな影響を与えています。クラウドベースのコラボレーションやデ...
[[355352]] 1 この時代、誰もがまだ新人ですが、世界が3つの部分に分かれていることはすで...
[[255576]]最近、李開復氏はタイム誌に「人工知能は強力だが、誤解されている。労働者を守るに...
[[423166]]対照学習(CV)比較学習は何をするのでしょうか?教師ありトレーニングの典型的な問...
絶滅危惧動物を研究する上で最大の課題の一つは、その数を正確に推定することであり、各個体を追跡して詳細...
[[271960]]彼は5歳の時に初めてコンピュータプログラムを書きました。14歳の時、自作のマッ...
[[439547]]一部の研究者は、量子コンピューターがいつの日かデジタル暗号の解読や薬剤の設計な...
マイクロソフトは2月6日、現地時間5日にプレスリリースを発行し、複数の報道機関と生成AIベースのコラ...
最近、世界をリードするインテリジェント金融検索エンジンであるHubo Technologyが「201...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
翻訳者 |ブガッティレビュー | Chonglou事前トレーニング済みのAIモデルがすぐに利用できる...
[[430680]]科学技術の継続的な発展により、人工知能は人間の生活のあらゆる側面に関わるだけでな...
近年、世界各国は医療の発展に継続的に注目しており、スマート医療や精密医療などの概念がこのトレンドを活...