PyTorch実践入門 | マイナビブックス (mynavi.jp)の続き。
ニューラルネットの出力ベクトルの表現にはいくつか種類がありますが、書籍を読んでいて「埋め込みエンコーディング」というのを初めて知りました。
「ワンホットエンコーディング」(one-hot encoding) は知っていましたが、非零ベクトル値に1以外の値(通常は区間[0.0, 1.0] または [-1.0, 1.0])を付与するエンコーディング方式だそうです。
特長としては、
- 文書の単語空間のようにワンホットエンコーディングすると巨大なベクトル空間になって空間効率が落ちてしまう場合でも小さい次元にエンコードできる。
- 「距離」をうまく使い、意味的に近い情報を「近い位置」に登録できる。
という点が挙げられます。教科書の例では(種別, 色空間)という2次元座標に様々な犬種、花、果物の情報を詰め込む方法を説明しています。
何次元が適当かや数値範囲をどうするかはニューラルネット設計の腕の見せ所となると思いますが、エンコーディング自体をニューラルネットに喰わして最適化を図る方法もあるのだそうです。
コメントを残す