RNNの用語、エルマン・ジョルダン・BPTT・教師強制・双方向が一気に出てきてごっちゃになる
【疑問】エルマンネットワークとジョルダンネットワーク、何を戻してるかの違い?BPTT・教師強制・双方向RNNも【G検定】
前提のおさらい。誤差逆伝播法で層をさかのぼるたびに傾きを掛け算すると、勾配が消えたり爆発したりする。RNNでは、この「層」が「時刻」になる
>>1
RNN(リカレントニューラルネットワーク)は、前の時刻の情報を次の時刻の入力に戻す回帰結合層を持つネットワーク。文章・音声・株価みたいな時系列データ向け
1つの値だけで回すと、 で、入力が 1, 0, 0 なら
、、
入力がなくなっても、最初の1の影響が少しずつ薄まりながら残る
>>3
エルマンネットワークとジョルダンネットワークは、何を戻すかが違う
エルマンネットワーク:隠れ層の出力を次の時刻に戻す
ジョルダンネットワーク:出力層の出力を次の時刻に戻す
今のRNNの基本はエルマン型
学習はBPTT(Backpropagation Through Time)。時刻ごとに同じ重みを使うネットワークを、時間方向に横に展開して、ふつうの誤差逆伝播法をかける
100時刻の系列なら、100層の深いネットワークと同じことになる。だから勾配消失・勾配爆発が起きやすい
>>5
長い系列やと計算も重そうやな
>>6
重い。だから実際は、さかのぼる時刻の数を区切って計算することが多い。そのかわり、区切りより前とのつながりは学べん
教師強制は、文章を1語ずつ作るモデルの学習で、次の入力に「モデルが前に出した語」ではなく「正解の語」を入れるやり方
最初に間違えた語を入れ続けると、そこから先が全部くずれて学習が進まんから、正解を見せて安定させる
>>8
でも予測のときは正解がないやん。学習のときと条件が変わってまうんちゃう?
>>9
変わる。自分の出した語を入れたことがないから、予測のときに一度間違えると立て直せないことがある。学習の途中から、ときどき自分の出力を入れるように切りかえる工夫もある
双方向RNN(Bidirectional RNN)は、前から読むRNNと後ろから読むRNNを両方使って、各時刻で2つの結果を合わせる
文の途中の語の品詞を当てるなら、後ろの語もヒントになる。ただ、後ろを見るには系列が全部そろってないとあかんから、しゃべってる途中でリアルタイムに訳すような用途には向かん
管理人のひとこと
- RNNは前の時刻の情報を戻す回帰結合層を持つ。 に 1, 0, 0 を入れると 約0.762、0.363、0.180。
- エルマンネットワークは隠れ層の出力を、ジョルダンネットワークは出力層の出力を次の時刻に戻す。
- BPTTは時間方向に展開して誤差逆伝播法をかける。100時刻なら100層と同じで勾配消失・爆発が起きやすい。さかのぼる数を区切ることも多い。
- 教師強制は学習時に正解の語を次の入力にする。予測時との条件の違いが弱点。双方向RNNは前後両方から読むが、系列が全部そろっている必要がある。