誤差関数:予測と正解のずれをはかる
ニューラルネットワークの学習の目印になる誤差関数を学びます。基礎層では、誤差関数が「予測と正解のずれをはかる、学習の目印」であることをつかみます。深掘り層では、平均二乗誤差関数・交差エントロピー・カルバック・ライブラー情報量(KL)・Contrastive Loss・Triplet Lossが、それぞれどんなタスクでずれをはかるのかを説明できるようになります。
ねらい
このレッスンでは、ニューラルネットワークの学習の目印になる誤差関数(ごさかんすう)を学びます。誤差関数は、損失関数(そんしつかんすう)とも呼ばれます。
基礎
「誤差関数は、予測と正解のずれをはかる、学習の目印である」という全体像をつかみます。
1. 誤差関数は、学習の目印です
ニューラルネットワークは、はじめは見当はずれの予測をします。学習とは、予測を正解に近づけていく作業です。近づいているかどうかを判断するには、「今どれだけずれているか」をはかる物差しが要ります。その物差しが誤差関数です。
誤差関数は、ネットワークの予測と、本当の正解を受け取り、その二つのずれの大きさを一つの数で返します。ずれが大きいほど大きな数になり、ずれが小さいほど小さな数になります。学習では、この数がなるべく小さくなるように、ネットワークの内部の調整を進めます。誤差関数の値が小さくなっていくことが、学習が進んでいる目印になります。
どのようにずれをはかるのが良いかは、解きたいタスクによって変わります。数値を当てるタスクと、いくつかの中から一つを選ぶタスクとでは、ふさわしいずれのはかり方が違います。だから誤差関数には何種類かがあり、タスクに応じて使い分けます。
ポイント
誤差関数は、予測と正解のずれを一つの数で表す物差しです。学習は、この数を小さくするように進みます。
ここまでの要点
- 誤差関数は、予測と正解のずれを一つの数で表す物差しです。
- 学習は、この数を小さくするように進み、タスクに応じて誤差関数を使い分けます。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「誤差関数は、ずれをはかる学習の目印」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、代表的な誤差関数をそれぞれがどんなタスクに向くのかとあわせて、数式も交えて見ます。
2. 数値を当てるときの平均二乗誤差関数
まず、家の広さから価格を当てるような、数値そのものを予測するタスクを考えます。このように数値を当てるタスクを回帰(かいき)といいます。
回帰でよく使う誤差関数が平均二乗誤差関数です。式で書くと、平均二乗誤差 = (予測 − 正解)を二乗したものの平均 となります。読み下すと、予測した数値と正解の数値の差をとり、それを二乗して、すべてのデータについて平均したものです。差を二乗するのは、プラスのずれもマイナスのずれも同じようにプラスの大きさとして扱うためと、大きなずれをより強く罰するためです。二乗して平均する、と耳で読めば意味がつかめます。
たとえば予測が110、正解が100なら、差は10、二乗して100です。予測が正解にぴたりと合えば差は0になり、平均二乗誤差関数の値も0に近づきます。ずれが大きいほど、二乗の効果で値が急に大きくなるため、大きな外れを強く抑えたいときに向きます。
なお、モデルの良し悪しをあとから測る評価指標にも、平均二乗誤差という似た名前のものがあります。評価指標のほうは、学んだモデルの性能を測るための物差しで、モデルの選択・評価のレッスンで扱いました。ここでの平均二乗誤差関数は、学習中にずれを小さくしていくための目印です。使う場面が違う別のものだと区別してください。
理解の確認
平均二乗誤差関数は、予測と正解の差を二乗して平均したもので、数値を当てる回帰のタスクに向きます。差を二乗するため、大きなずれをより強く罰します。
3. 分類のときの交差エントロピー
次に、「犬・猫・鳥」のどれかを選ぶような、いくつかの中から一つを選ぶタスクを考えます。このタスクを分類(ぶんるい)といいます。
分類でよく使う誤差関数が交差エントロピー(こうさエントロピー)です。分類では、前のレッスンで学んだソフトマックス関数を使い、各候補である度合いを合計1の割合として出します。交差エントロピーは、この予測した割合が、正解の候補にどれだけ大きな割合を割り当てられているかを見ます。
考え方はこうです。正解の候補に対して、モデルが高い割合を出していれば、ずれは小さくなります。逆に、正解の候補に低い割合しか出していなければ、ずれは大きくなります。正解にきちんと自信を持てているかを罰する形の物差し、と考えると分かりやすくなります。分類のタスクでは、平均二乗誤差関数より交差エントロピーのほうが学習が進みやすいことが知られています。
理解の確認
交差エントロピーは、分類のタスクで使う誤差関数です。正解の候補にどれだけ大きな割合を割り当てられているかを見て、正解に低い割合しか出していないほど、ずれを大きく評価します。
4. 分布のちがいをはかるカルバック・ライブラー情報量
交差エントロピーと近い考え方に、カルバック・ライブラー情報量(KL)があります。KLは、ケーエルと読みます。これは、二つの確率の分布が、どれだけ食い違っているかをはかる量です。
確率の分布とは、それぞれの候補にどれだけの割合が割り当てられているか、という割合の並びのことです。カルバック・ライブラー情報量は、片方の分布をもう片方の分布で置きかえたときに、どれだけ無駄が生じるかとして食い違いを測ります。二つの分布がまったく同じなら0になり、食い違うほど大きくなります。ただし、置きかえる向きを入れかえると値が変わるため、二点間の対称な距離とは違う点に注意します。予測の分布を正解の分布に近づけたいときの目印として使われます。
理解の確認
カルバック・ライブラー情報量(KL)は、二つの確率の分布の食い違いをはかる量です。二つが同じなら0になり、食い違うほど大きくなります。向きを入れかえると値が変わるため、対称な距離ではありません。
5. 近さ・遠さを学ばせる Contrastive Loss と Triplet Loss
最後に、少し毛色の違う二つの誤差関数を見ます。これらは、データどうしの近さ・遠さそのものを学ばせたいときに使います。
Contrastive Loss(コントラスティブロス)は、二つのデータを一組にして扱います。二つが同じ仲間なら距離が近くなるように、違う仲間なら距離が遠くなるように、ずれを与えます。同じ仲間が離れていたり、違う仲間が近すぎたりすると、ずれが大きくなります。
Triplet Loss(トリプレットロス)は、三つのデータを一組にして扱います。基準となるデータと、それと同じ仲間のデータ、違う仲間のデータの三つです。基準と同じ仲間の距離が、基準と違う仲間の距離より、一定以上近くなるようにずれを与えます。同じ仲間は引き寄せ、違う仲間は遠ざける、という関係を直接学ばせます。
この二つは、顔写真が同一人物かを見分けるような、似ているかどうかを判定するタスクで力を発揮します。データの意味を距離の近さ・遠さとして表現することを学ばせる誤差関数です。
理解の確認
Contrastive Lossは二つ一組で、同じ仲間は近く・違う仲間は遠くなるようにずれを与えます。Triplet Lossは三つ一組で、基準と同じ仲間を基準と違う仲間より近づけるように学ばせます。どちらも、似ているかどうかを距離で表現させる誤差関数です。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。