Skip to content

Repository files navigation

Loss Weight

TorchFontOutlineLoss は、要素種別のクロスエントロピーと 有効座標の MSE の重み付き和です。それぞれの重みを type_weightcoordinate_weight と呼びます。本検証では type_weight を 1.0 に固定し、coordinate_weight を対数スケールで探索しました。目的はライブラリ標準値として 妥当な値を求めることです。結果、coordinate_weight は 100 が推奨されます。

はじめに

OutlineLoss は要素種別のロスと座標のロスを独立に平均してから重み付き和を取ります。両者はスケールの 異なる量です。座標回帰の誤差は一般にクロスエントロピーよりスケールが小さくなりやすいため、 coordinate_weighttype_weight より大きい値が適切になると予想されます。本検証はその予想を実データで裏付け、 具体的な値を決めることを目的とします。

実験

グリフアウトラインを潜在トークンへエンコードし、要素種別列・座標列を復元する自己再構成 (オートエンコーダ)タスクを用います。このタスク上で type_weight を 1.0 に固定しました。 coordinate_weight は 10, 20, 50, 100, 200, 500, 1000 の7点(半桁刻みの対数スケール)で 探索しました。モデルサイズは BERT-Tiny 相当に固定しました。

各設定を比較するため、次の指標を記録しました。

  • 要素種別の平均クロスエントロピー・正解率
  • 有効座標の平均二乗誤差(MSE)・二乗平均平方根誤差(RMSE)
  • ビットマップ MSE・IoU
    • ターゲットと再構成を共通の座標系でラスタライズして比較
    • ピクセル単位の誤差が MSE、一定の被覆率で二値化した領域の重なりが IoU
  • ビットマップレンダリング失敗率
    • 予測が構造上壊れておりラスタライズできなかった割合
    • この失敗はビットマップ MSE・IoU への最悪値として算入

要素種別・座標のロスはトークン・座標空間の指標であり、見た目の正しさを直接は測れません。そのため 探索の比較・推奨値の算出にはビットマップ系の指標を用います。

結果

推奨値は coordinate_weight = 100(type_weight = 1.0)です。各 coordinate_weight における 指標は次の通りです。

coordinate_weight Bitmap IoU Bitmap MSE Bitmap Failure Rate Type Accuracy
10 0.572 0.049 1.3% 0.974
20 0.662 0.041 1.6% 0.973
50 0.700 0.046 2.5% 0.969
100 0.708 0.046 2.5% 0.943
200 0.675 0.081 6.1% 0.932
500 0.673 0.133 11.9% 0.923
1000 0.606 0.200 18.6% 0.902

ビットマップレンダリング失敗率は coordinate_weight = 50〜100 まではほぼ横ばいですが、200 以降で 急増します。

About

A coordinate_weight sweep for torchfont.nn.OutlineLoss

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages