DSOC 研究員の吉村です. 先日スーパーに買い物に行ったところ、玄米が目に飛び込んできました. 早速買って, 玄米を初めて自分で炊きました. それまで, 全く知らなかったのですが, 炊く前にそれなりの時間, 玄米を水につけておく必要があるらしく, 結構面倒だなということがわかりました.
さて, 今回はソフトラベル (Soft Label) にスポットライトを当てます. 最初にソフトラベルの紹介をして, ソフトラベルを利用したいくつかの研究を紹介していきます.
ソフトラベル表現
通常, 機械学習で二値や多値の分類モデルを学習する際には, ラベルを one-hot ベクトルの形式 (例えば, 3クラス分類の時には 等) で扱います (これをハードラベルと呼ぶこともあります). ソフトラベルは one-hot の表現とは異なり, 対象と各ラベルの類似度を離散値ではなく割合で表します (例えば, 3クラス分類の時には 等). ソフトラベルの表現を用いることで, 実際これは猫だが, 見た目は豹に似ているといった情報を残したまま学習を行うことができます.
とはいえ, 基本的には各対象ごとに一つのクラスが割り当てられている学習データしかないことがほとんどだと思います. 実際にソフトラベルを用いる場面は少し特殊な場面であったり, テクニックの一つとして使われたりするので, 今回はソフトラベルが利用される下記の3つを紹介します. (これが全てというわけではなく, あくまでも3つピックアップして紹介しているだけです.)
- 蒸留におけるソフトラベル
- ノイズ付きアノテーション活用のためのソフトラベル
- 学習の途中結果を活用するためのソフトラベル
蒸留におけるソフトラベル
複雑で大きいモデル (教師モデル) をもとにして、より小さなモデル (生徒モデル) を学習することを蒸留 (Distillation) と呼びます. 例えば、アンサンブル学習したモデルを一つにまとめて使いやすくするためだったり、空間的・時間的計算量を削減すること等が蒸留の目的となります. このとき、教師モデルに渡した特徴量から、それに対応するラベルを取り出しそのペアから生徒モデルを学習するわけですが、このときにハードラベル (ハードターゲット) ではなく、ソフトラベル (ソフトターゲット) を用いて学習することが提案されています[*1]. これは, ハードラベルを使うよりも, より多くの情報を残して学習ができるためです. また, 注目すべきは, 単にソフトマックス層の出力を用いて学習するのではなく, その直前のロジットを温度パラメータ で調整したあとの値
をソフトマックスで変換した値をターゲットとして学習させる点です. このとき, は 番目のクラスに対応するロジットを, はソフトラベルを, そして, はシグモイド関数を表します.
温度パラメータを利用する理由は, 単にソフトマックス層の出力を取り出しただけだと, 常に高い信頼度で出力が得られる問題設定の場合に, 多くのスコアがゼロに漸近してしまい, 後段の生徒モデルの学習にうまく生かされないことを懸念しているためです.
ノイズ付きアノテーション活用のためのソフトラベル
機械学習や画像認識などの問題を解くための学習データは, クラウドソーシングプラットフォーム上で人間がアノテーションすることによって作られることがよくあります. 通常, クラウドソーシングを用いる場合には, 専門家によるアノテーションではないことが多いため, 一つの対象に対して複数人の作業者にアノテーションを依頼し, 得られた回答を後ほど多数決などで統合することで, 学習データの品質を担保することになります. それに対して, [*2] では一つの対象に付与されているラベルがばらけていたとしても, それを統合せずにソフトラベルとして学習に用いることで Computer Vision のモデルの性能向上につながることを示しました. これを受けて, [*3] では Computer Vision のモデル以外の場合でも, ソフトラベルによる学習が効果を発揮することを実験的に確認しています. ここでは, ソフトラベルによる損失関数を Soft Loss Function と呼び, 次の式で表します.
このとき, は学習モデルから得られるロジットをそのままソフトマックス層に適用することで観測される値を, はワーカによるアノテーションの結果をソフトラベルに変換した人間によるラベリング分布を, はクラスを表します. 人間によるラベリング分布 は, 二通りが考えられます. まず, 単純にワーカのアノテーション結果を集計して, 正規化する方法です. 例えば, ある対象に対してワーカ10人によるアノテーションの結果が 犬に3票, 鹿に5票, 馬に2票 だとすると, この場合のソフトラベルは 犬0.3, 鹿0.5, 馬0.2 となります. そして, もう一つが正規化した値をソフトマックス層に入力した場合の出力をソフトラベルとする方法です.
ワーカの回答の質が全体的にいい場合には前者を, 悪い場合には後者を用いるほうが最終的なモデルの性能が良いという結果が得られています. これは, 後者のソフトマックスを通す方は, 真のラベルをどのワーカもつけなかったとしても, 微少な値が割り振られるためであると述べられています.
学習の途中結果を活用のためのソフトラベル
LWR (Learning with Retrospection) [*4] という手法では, 通常捨てられる DNNs モデルの学習途中の情報をうまく利用することでモデル性能の向上が図れるのではないかという観点で, 各学習ステップの内部パラメータを保持しておきながらそれを基に学習を進める方法を提案しています.
多値分類を考えます. 通常の DNNs モデルでは, 最終層にソフトマックス層などを結合させて, 各クラスへの所属確率の形で出力を得ることが多いと思います. LWR ではソフトマックス層に通す前のロジットを用いて, 温度パラメータ で調整したソフトラベル
を学習時に ステップごとに保持しておきます. 最初の ステップまでは, 特にソフトラベルを意識せず, もとの DNNs モデルの損失関数を用います. ステップからは, ステップ時のソフトラベルを保持しておき, その保持しているソフトラベルと現ステップのソフトラベルとの間の KL ダイバージェンス (分布の近さのようなもの) を損失関数に追加した次の式を用います.
ただし, はもとの DNNs の損失関数を表します. その後は, ステップごとに, 保持するソフトラベルを更新して, 同様に学習するということを繰り返していきます. 学習時には, もとの損失とソフトラベルの KL ダイバージェンスとをハイパーパラメータ と でバランスするわけですが, LWR の筆者らは徐々にソフトラベル側の精度があがっていくので, 徐々に KL ダイバージェンス側の重みをふやしていくハイパーパラメータのスケジューリングを提案しています.
画像データセットとテーブル形式のデータセットに対して, 既存手法との評価実験をしておおよそ Accuracy で 1~2 ポイント程度の性能向上を達成しています. また, キャリブレーションにもうまく働くようです. そもそも, なぜこれがうまくいくかという点については, 筆者らは 1. ラベルスムージングとしての働きがある, 2. ラベル間の類似度を取り入れられるため overfit を一部回避できるためであると主張されています.
まとめ
今回はソフトラベルについてまとめました. 別々の文脈で見かけることがあったので, それぞれの文脈でどのようにソフトラベルが用いられているかを, 3通りの事例を出して紹介しました. 必ずしもソフトラベルを用いた方が性能がいいとまでは言い切れないと思いますが, 適用できる場面は多いかと思いますので, 使ってみるのも有りかもしれません. 次回はまた別のテーマを書く予定ですので, お楽しみに!
*1:G. Hinton, O. Vinyals, and J. Dean, "Distilling the Knowledge in a Neural Network," in NIPS, 2014.
*2:J. C. Peterson, R. M. Battleday, T. L. Griffiths, and O. Russakovsky, "Human Uncertainty Makes Classification More Robust," in ICCV, 2019.
*3:A. Uma, T. Fornaciari, D. Hovy, S. Paun, B. Plank, and M. Poesio, "A Case for Soft Loss Functions," in HCOMP, 2020.
*4:X.Deng, and Z. Zhang), "Learning with Retrospection," in AAAI, 2021.