【要約】seq2seqで簡単な足し算データを学習してみた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
学習者がseq2seqで足し算を実装する際、データの形状が変動する問題に直面した。
- ・桁数により入力と出力の長さが変化する。
- ・例:
12 + 21 = 33は入力5、出力2となる。 - ・例:
121 + 212 = 333は入力7、出力3となる。 - ・サイズ統一のための空白導入は、損失計算への影響を考慮する必要がある。
// Approach
学習者が「ゼロから作るDeep Learning 2」を参考に、モデル構築を試みた。
- ・
addition.txt(50,000行)のデータを使用する。 - ・時系列データの変換モデルとしてseq2seqを採用する。
- ・入力サイズを揃えるための空白処理は、実装負荷を考慮し今回は見送った。
// Result
学習の結果、学習者が期待した精度を得ることはできなかった。
- ・計算精度が想定よりも低かった。
- ・特定の工夫を施すことで、精度が大幅に向上する可能性を示唆している。
Senior Engineer Insight
> 本記事は学習の記録であり、実務への適用には不十分である。seq2seq単体では、長距離の依存関係や入力サイズ変動への対応に限界がある。実戦ではAttentionメカニズムやTransformerの採用が必須だ。パディング時のマスク処理を省略した点は、学習の正確性を損なう要因となる。