モデルが中間表現として特定の値を取るように学習してほしい.
- A: モデルバイアスで自然とそう学習するように祈る
- B: モデル分割をして個別学習
- C: その中間表現に対してLossを設定
- D: Lossを設定したうえで次の層へは教師データを渡す(teacher forcing的)
Aは置いておくとして、Bは王道. 中間表現と見ないで出力 + side inputとして見るということ.
Cはシンプルだが、学習全体と競合しないか (シーソーゲームして学習が止まらないか) という懸念がつきまとう.
DはBに近い. しかしモデルをほぼ共有できる(横にピロッと迂回路を設定する)ので、モデルサイズ・効率が良くなる可能性がある. が、teacher forcingと同じ問題あり. Bの場合は学習済み出力で全体学習を回せばこれは起きない.