RetinaNet (3/4) フォーカルロスの効果

はぐれ弁理士 PA Tora-O です。前回(第2回)では、RetinaNet の実施例について説明しました。改めて復習されたい方は、こちらのリンクから確認をお願いします。今回(第3回)は、フォーカルロス(Focal Loss)により生じる効果について説明します。

計算方法

まず、フォーカルロスの計算方法について、図1および図2を参照しながら説明します。

【図1】クラスと正例/負例の関係

図1では、[1]n個の前景(Foreground)と、[2]1個の背景(Background)からなる(n+1)個のクラス(物体の種類)が定義されたとします。ここで、nは、数十~数百程度のそれなりに大きい値です。そして、1個のデフォルトボックス(あるいは、関心領域)につき、1個の正解クラス(=正例)と、残りn個の不正解クラス(=負例)にそれぞれ割り当てられます。つまり、クラス分類の教示値が常に One-hot vector であることを意味します。

【図2】損失算出部のブロック図

図2では、出力層から得られる(n+1)個の確率{P}を用いて、学習パラメータの更新量を決定するための目的関数(ここでは、損失項のみ表記)を計算します。RetinaNet の損失項として、交差エントロピーCEに乗数Mを掛け合わせたフォーカルロスFLが用いられます。このFLは、正例(posi)であるか負例(nega)であるかに応じて関数形が切り替わります。

乗数の特徴

続いて、乗数Mの関数形状の相違点について、図3を参照しながら説明します。

【図3】乗数Mの比較

交差エントロピーCEの乗数は、確率pにかかわらずM=1(つまり、基準値)です。これに対して、フォーカルロスFLの乗数は M= (1-p)^γ であり、確率pが増加するにつれて単調に減少するγ次の多項式になります。なお、γの値は、整数であっても非整数(例えば、γ=1.5)であっても構いません。

この乗数Mによって、「正例」に対する損失を相対的に低くする、言い換えれば、「正例」に対する報酬を相対的に高くする作用を与えます。このように、交差エントロピーの重み付けを変更することで、正例による学習への寄与度が高くなり、正例と負例の割合(=1/n)に関する不均衡が解消される効果が生じます。つまり、乗数Mは、本論文中の関数例に限られず、具体的には、M(p)=1-p/2のような関数形状であっても、同様の作用効果が得られそうです。

 

以上、今回(第3回)は、フォーカルロスの効果について説明しました。テーマ最終回(第4回)は、過去3回分の検討結果を踏まえ、クレーム骨子を含む発明ストーリーを作成してみます。

↓ブログランキングに参加しています。よろしければ1クリックお願いします。

にほんブログ村 士業ブログ 弁理士へ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村