Curriculum Learning(簡単なやつから学習して、難しいのは後のほうがうまく行きそう)の方法をLSTMで試してみた報告っぽい内容。要約は以下の通り。
- One-Pass CurriculumとBaby Steps Curriculumの2種類があるけど、Baby Steps Curriculumのほうがお勧めできる
- シャッフルなどに比べるとCurriculum LearningはHidden Unitの数が少なくても安定して性能が出ている
- 学習データが多いとどれもあまり変わらないが、学習データが少ないときほどCurriculum Learningは有効に働く
Curriculum Learning
学習するときは簡単なやつから学習して、難しいのは後のほうがうまく行きそうじゃん?というアイディアがベースにある。今回の場合はLSTMでどうこうやるので、系列系のタスクで簡単とか難しいは単純に系列の長さが短かければ簡単、長ければ難しい、という感じ。細かい設定で以下の2種類がある。
One-Pass Curriculum
- データセットを難しさによってk個のバケット(D1, D2, ..., Dk)に分割する
- 最初は一番簡単なデータ集合D1のみで学習させる
- 収束したらその結果を元にD2のみ(=D1は捨てる)を使って学習
- これを繰り返してDkまで学習させる
- 論文ではdevsetを使ってearly stopさせる場合もあるとか
Baby Steps Curriculum
One-Pass Curriculumと大分似ているが、簡単なデータを途中で捨てないというのが違い。
- データセットを難しさによってk個のバケット(D1, D2, ..., Dk)に分割する
- 最初は一番簡単なデータ集合D1のみで学習させる
- 収束したらその結果を元にD1 + D2を使って学習
- これを繰り返してD1 + D2 + ... + Dkまで学習させる
実験
Digit Sum
- {0,1,...,9}の系列が与えられたときに、その和をLSTMで出させる
- LSTMのパラメータの設定とかは変えずに学習させる順番を主にいじる
- No-CL: 完全にシャッフル
- Sorted: ランダムではなく難易度順に並べる(バケットにはわかれていない)
- Baby Steps Curriculum
- One-Pass Curriculum
- Baby Steps CurriculumとNo-CLはまぁまぁできてそう
- One-Pass Curriculumは長いやつはそこそこできてるけど、短かい系列だと全然ダメ
- Curriculum LearningはHidden Unitの数が少なくても安定して性能が出ている
Sentiment Analysis
- 単語の列が与えられて、単語毎に1-5の極性(ポジティブ、ネガティブ)を付与していくタスク
- Curriculum Learningがこの例でもよいが、conjunction(接続詞)が入っている難しい事例では特に性能がよい
- 学習データが多いとどれもあまり変わらないが、学習データが少ないときほどCurriculum Learningは有効に働く
- 下の図。論文より引用
参考
- [1611.06204] Visualizing and Understanding Curriculum Learning for Long Short-Term Memory Networks
難しいことを勉強する場合であっても常に簡単なことも忘れずに勉強しておくとよい.少なくともLSTMの学習においてはこのカリキュラム学習方針(baby steps)が有効.https://t.co/LVogTwy8Tq
— Danushka Bollegala (@Bollegala) 2016年11月29日深層学習 Deep Learning (監修:人工知能学会)
- 作者: 麻生英樹,安田宗樹,前田新一,岡野原大輔,岡谷貴之,久保陽太郎,ボレガラダヌシカ,人工知能学会,神嶌敏弘
- 出版社/メーカー: 近代科学社
- 発売日: 2015/11/05
- メディア: 単行本
- この商品を含むブログ (1件) を見る