コスト、損失、および目的関数の違い
1. 序章
このチュートリアルでは、機械学習のコスト、損失、および目的関数の違いについて説明します。 ただし、正確な定義についてはコンセンサスがなく、3つの用語が同義語として使用されることが多いことに注意してください。
2. 損失関数
損失関数は、モデルの予測が1つの特定のオブジェクトのグラウンドトゥルースからどれだけ逸脱しているかを定量化します。したがって、損失を計算するときは、トレーニングセットまたはテストセットの単一のオブジェクトに対して計算します。
選択できる損失関数にはさまざまなものがあり、それぞれに長所と短所があります。 一般に、ターゲット値の空間で定義された距離メトリックは、損失関数として機能します。
2.1. 例:回帰における二乗損失と絶対損失
非常に多くの場合、回帰問題の損失関数としてsquare(d)エラーを使用します。
たとえば、モデルが、部屋の数、面積()、階数、および都市の近隣(または)に基づいてアパートの価格(数千ドル)を予測するとします。 の予測がUSDkであると仮定しましょう。 実際の販売価格がUSDkの場合、二乗損失は次のようになります。
回帰によく使用するもう1つの損失関数は、絶対損失です。
アパートの価格の例では、その値は次のようになります。
損失関数の選択は簡単な作業ではありません。 コストを通じて、損失はモデルの適合において重要な役割を果たします。
3. コスト関数
コストという用語は、多くの場合、損失と同義語として使用されます。 ただし、一部の作成者は2つの間に明確な違いを示しています。 それらの場合、コスト関数はオブジェクトのグループでモデルのエラーを測定しますが、損失関数は単一のデータインスタンスを処理します。
したがって、が損失関数である場合、トレーニング、検証、またはテストデータで損失を集計することにより、コスト関数を計算します。 たとえば、コストを平均損失として計算できます。
しかし、外れ値の影響を受けにくい要約統計量である中央値の使用を妨げるものは何もありません。
コスト関数には2つの目的があります。 まず、テストデータの値は、見えないオブジェクトに対するモデルのパフォーマンスを推定します。 これにより、さまざまなモデルを比較して、最適なモデルを選択できます。 次に、モデルのトレーニングに使用します。
3.1. 例:平均二乗損失としてのコスト
4つのアパートのデータがあり、モデルが次のように販売価格を予測したとします。
個々のアパートの平均二乗損失として、コスト、つまりデータ全体の総損失を計算できます。
3.2. 費用の他の例
ただし、コストはおよびと同じ単位ではありません。 数千ドルの代わりに、コストの数値は数百万の二乗ドルを示します。 通貨の二乗は現実の世界では意味をなさないので、それは解釈の問題です。 平均二乗損失の平方根を取ることで、これに対処できます。
この特定のコスト関数は、二乗平均平方根誤差(RMSE)として知られています。 私たちは通常、それをグラウンドトゥルースからの予測の予想される偏差として解釈します。 したがって、この例では、予測されたフラット価格が平均で43,860米ドル下がっていると結論付けます。 平均絶対損失を使用すると、次の合計コストが得られます。
これは、平均して一戸建てあたり27,450米ドルです。 同様に、中央値の二乗損失のルートは、つまり、約12,000ドルのコストをもたらします。
ご覧のとおり、単一のオブジェクトの損失を定義する方法が多数あるのと同様に、一連のインスタンスの損失を組み合わせる方法は複数あります。
3.3. 損失とコストの違いを覚える方法は?
この分野の多くの新参者(および専門家も同様)は、損失とコストの違いは人為的なものであり、どちらが何のためのものであるかについて混乱することが多いと不満を漏らしています。 ニーモニックトリックは、lossがlonelyと同じように開始することを覚えておくことです。 したがって、損失は単一の孤独なデータインスタンスの場合であり、コストはオブジェクトのセットの場合です。
4. 目的関数
モデルをトレーニングしている間、トレーニングデータのコスト(損失)を最小限に抑えます。 ただし、注意が必要なのはその低い値だけではありません。 トレーニングデータに対してのみ適切に機能するモデルは実際には役に立たないため、一般化機能はさらに重要です。
したがって、過剰適合を回避するために、モデルの複雑さにペナルティを課す正則化項を追加します。 このようにして、トレーニング中に最小化する新しい関数を取得します。
一般に、目的関数は最適化する関数です。つまり、その値を最小化または最大化する必要があります。コスト関数、つまりデータセット全体の損失は必ずしも1つは最小化しますが、最小化することもできます。 たとえば、正則化なしでモデルを近似できます。この場合、目的関数はコスト関数です。
4.1. 例:線形回帰における損失、コスト、および目的関数
線形回帰モデルをトレーニングしているとしましょう。
データが次元であると想定し、式を単純化するために、すべてのインスタンスにダミーのゼロ値を追加します。
トレーニングデータの二乗損失を平均すると、次のようになります。
これがコスト関数です。つまり、データの損失と呼ぶこともできます。 ただし、過剰適合を防ぎたい場合は、正則化項を追加できます(そのパラメーターの値は経験的にを決定できます)。
したがって、トレーニング中に最小化する目的関数は、コストと正則化ペナルティの合計です。 通常、デリバティブの計算を容易にするために、これを2で除算します。
フラット価格予測の例で、これがどのように機能するかを見てみましょう。
4.2. 計算ステップ1:予測を取得する
近隣を1および0としてコーディングしたと仮定します。 回帰モデルには5つのパラメーターがあります。
どこ 。 トレーニングデータが以前と同じであるとしましょう。
の場合、トレーニングアルゴリズムは最初にモデルの予測を取得します。
4.3. 計算ステップ2:目的関数を計算する
次に、コストを計算します。 セクション3.1。では、同じ予測の平均二乗損失を計算しました。 したがって、残っているのは正則化項だけです。 正則化パラメーターとして使用する場合、用語は次のとおりです。
したがって、目的関数の値は次のとおりです。
目的関数はコストと正則化ペナルティを組み合わせているため、その値を解釈するのは簡単ではありません。
5. 結論
この記事では、損失、コスト、および目的関数の意味について説明しました。 一部の研究者と実践者はこれらの用語を同じ意味で使用しますが、他の人はそれらを区別します。