損失関数を使用して、特定のアルゴリズムがトレーニングに使用されたデータとどの程度一致するかを計算します。損失の計算は、予測値と実際の値の差に基づいて行われます。予測値が実際の値から大きく離れている場合、損失関数は非常に大きな値になります。 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の変革を理解する
大規模言語モデル (LLM) が強力であることは議論の余地のない事実ですが、それでも単純な間違いを犯...
著者 | 魏耀成魏ナレッジ グラフの視覚化により、ナレッジ グラフ データをより直感的に表示および分...
北京や上海などの街では、特別な車をよく見かけます。これらの車は車体の上部と側面に特別な装置が付いてい...
最近、上海の15歳の中学生が卓球ボールを拾うロボットを発明した。体育館の床に散らばった卓球ボールを自...
GPT-4 のリリースから半年も経たないうちに、GPT-5 がもうすぐ登場するのでしょうか?最近、...
[[407129]] 2年前、NVIDIAは、大雑把な落書きをリアルタイムでフォトリアリスティックな...
AI は登場以来、タスクの自動化や業務の効率化、より優れたテクノロジーの構築、エンドユーザー エクス...
こんにちは、Xiaozhuangです! PyTorch での自動微分演算に関して、この論文では Py...
これは、「Hacker News のランキング アルゴリズムの仕組み」に続く、ランキング アルゴリズ...
生成トランスフォーマーは、高忠実度かつ高解像度の画像を合成するために急速に人気を集めています。しかし...
スーパーアプリは、より多くの顧客を引き付けるための革新的な戦略です。さらに、多数のサービスを 1 つ...
[[242113]] [51CTO.com クイック翻訳] インターネット アルゴリズムには、推奨シ...
自動音声認識 (ASR) は、人間とコンピュータの相互作用において重要な役割を果たし、転写、翻訳、デ...