おしゃべりな 人工知能講座⑪
■人工知能に耳を与えるには
愛さん「では天馬先生、CNNが生物の視覚野をモデルにしているということは、目ではなく耳を使うような音声や言葉の処理などに、ディープラーニングは利用できないのですか?」
天馬「そんなことはない。2次元の画像データだけではなく、音声データや言語のような時系列データでも、ニューラルネットワークはもちろん扱える。それでは次に、この時系列データを扱うニューラルネットワークの説明をしよう。
ディープラーニングは画像認識の分野だけでなく、実は音声認識の分野でも画期的な性能を発揮している。音声データは可変長の時系列データだから、固定長の2次元データを主に扱っているCNNのようなネットワークでは使いづらい。可変長データをニューラルネットワークで扱うために、隠れ層の値を再び隠れ層に入力するというユニークなネットワーク構造にしたのが、RNN(Recurrent Neural Network)だ。再帰型ニューラルネットワークとも言う」
愛さん「戻すという意味が、よくわかりません。出力をそのまま入力したら、グルグル回り続けてしまいそうですが」
天馬「では、次の図を見たまえ」
猿田くん「あれ?いつのまにか天馬先生がスライドを操作してますが、マリリンは?」
天馬「マリリンは、とっくにここからログオフして、別の仕事に移ったんだ。とにかく、左のニューラルネットワーク図は、シンプルなネットワークだろう。RNNではこの隠れ層の出力を再び同じ隠れ層の入力に入れている。これだけでは何をやっているか不明なので、この隠れ層に戻すという操作を、時間軸方向に展開したのが右の図だ。
この図のように、t=0での隠れ層h0の出力を、t=1での隠れ層h1に入力する。さらにh1の出力は、h2に入力するのだ。このように展開して考えると、隠れ層には、時系列的に過去のデータが入力されていくことが分かると思う」
愛さん「なんとなくイメージは分かります」
天馬「この展開したネットワークを利用して、RNNは誤差逆伝播法で学習できる。ただし誤差の計算方法は、CNNのようなニューラルネットワークとは少し異なっている。誤差は、最後の時刻Tから最初の時刻0へ向かって伝播していく。したがって、時刻tにおける出力Ytの誤差とは、時刻tにおける教師データとの差とt+1から伝播してきた誤差の和となる。つまりRNNは最後の時刻Tまでのデータがなければ学習ができない。このため長いデータは、常に一定間隔で最新データだけを切り出すなどの操作が必要になってしまう」
猿田くん「説明が分かりづらくて、理解できませんよ」
天馬「ようするに、RNNは長い話を聞かされると最初の頃に話した内容を忘れてしまう猿田のようなもんだ」
伴くん「すぐに忘れるのは別に猿田くんだけではないですが、そもそもどうして出力を戻しているのですか?」
天馬「では、ここも概念だけで説明しよう。CNNが主に扱う画像はデータの長さ、というか大きさが一定の2次元データだな。音声や言葉は時系列データ、つまり時間と共に次々と変化していく1次元のデータだ。画像ならデータを1つずつの単位で扱える。しかし音声のようなダラダラと続くデータだと、データを順番に読み込むしかないが、データがどこで区切れるかは不明だ。だから先に入力されたデータを短い間だけ覚えていて、後から入ってきたデータと比較することで、データの前後の関係性から一定のパターンを特徴として抽出していくのだ」
伴くん「データの前後関係だけですか?」
天馬「正確には過去のデータとの比較になるが。音声のような時系列データなら、ある値は直前の値と強い関係性を持っていることは、直観的に理解できるはずだ。例えば上の図のように、ABCDEFG FEDCBとデータが入力された場合、次にデータが ABCDEFと入ってきたら、その次のデータは GFE である可能性が高いだろう」
伴くん「まあ、そう思いますね」
天馬「つまりシリアルデータのパターンを抽出するために、それ以前の入力データを戻しているのだ」
猿田くん「ボクは記憶力抜群ですけど、RNNが短い間しか覚えられないなら、長い周期のパターンは抽出できないですよ」
天馬「鋭いな。それがRNNの最大の欠点だった。しかし、そのRNNの欠点を解決したのが、LSTM(Long Short-Term Memory)だ。LSTMはRNNの欠点を解消し、長期の時系列データを学習することができる強力なモデルだ。発表されたのは1997年とかなり前になる」
愛さん「え!ディープラーニングのブームを起こしたCNNは、確か2012年ごろの発表でしたね。その20年以上前からディープラーニングがあったのですか?」
天馬「記憶力がよければ、授業の冒頭で紹介した『ニューラルネットワークの歴史』に書いてある。RNNの発表は1989年だ。しかし当時はディープラーニングという言葉もなく、一部の研究者しか知られていなかった」
愛さん「なぜですか?こんなに凄い機能を持っていますよ」
天馬「RNNやLSTMの基本的構造は、2000年より前に出来ていたのだが、最大の問題は計算量の多さだ。コンピューターパワーが小さい時代には、実用的なスピードで実験できなかったのさ。CNNの登場でディープラーニングがブームになり、ハードウェア性能が急激に向上したこともあって、RNNは再発見されたようなものだ」
伴くん「先生、また話が逸れてますが」
天馬「そうか、なんの話だったかな。LSTMの話だったな」
天馬「LSTMは、RNNの隠れ層を図のように特殊な構造にしたものだ。詳しくは説明しないが、LSTMはRNNと比較すると長い時系列データを記憶できるように改良したものだと理解してもらえばよい」