損失関数を使用して、特定のアルゴリズムがトレーニングに使用されたデータとどの程度一致するかを計算します。損失の計算は、予測値と実際の値の差に基づいて行われます。予測値が実際の値から大きく離れている場合、損失関数は非常に大きな値になります。 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の変革を理解する
最近、AI関連の技術は業界でますます人気が高まっています。機械化されたゲームリソースの作成から開発者...
MongoDB データベースに Java を適用すると、複雑なクエリや集計操作を実装できるため、開発...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
数学的推論は言語モデルが避けることのできない問題点です。さまざまなブラックテクノロジーのサポートがあ...
Google を含む多くの企業が、人間の寿命を延ばす方法を研究しています。たとえ何百年も長く生きられ...
翻訳者 | ブガッティ企画 | 梁策、孫淑娟機械学習と今日の世界におけるその応用については、すでにご...
市場の状況がますます複雑化する今日の不安定なビジネス環境では、組織が分析に基づく意思決定を行うために...
今日は、世界で最も遅いソートアルゴリズムである Bogo ソートについてお話ししたいと思います。では...
機械学習は、ビジネスや世界中のさまざまな問題の解決に役立つ可能性があります。通常、機械学習モデルを開...
デジタル変革はヘルスケアにおける大きなトレンドと考えられており、インテリジェントな自動化もその一部と...
データ画像。画像/アンスプラッシュ近年、個人情報保護法などの法律や規制の導入・施行により、我が国はデ...
ちょうど2年前、大学に入学したときに一度だけ行ったことがあります。その時は、まず入り口の機械で番号を...