TorchFont の OutlineLoss は、要素種別のクロスエントロピーと
有効座標の MSE の重み付き和です。それぞれの重みを type_weight・coordinate_weight と呼びます。本検証では
type_weight を 1.0 に固定し、coordinate_weight を対数スケールで探索しました。目的はライブラリ標準値として
妥当な値を求めることです。結果、coordinate_weight は 100 が推奨されます。
OutlineLoss は要素種別のロスと座標のロスを独立に平均してから重み付き和を取ります。両者はスケールの
異なる量です。座標回帰の誤差は一般にクロスエントロピーよりスケールが小さくなりやすいため、
coordinate_weight は type_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 以降で
急増します。