15章RNNとCNNを使ったシーケンスの処理
バッターがボールを打つと、外野手はすぐにボールの軌跡を予想して走り始める。彼は軌跡を追跡して走り方を調節しながらボールに追いつきキャッチする(歓声の嵐のなかで)。友だちが言おうとしていることを思い浮かべたり、朝食のコーヒーの匂いを予想したり、人はいつも未来を予測している。この章では、未来を予測できる(もちろん、限界はあるが)タイプのニューラルネットワークである再帰型ニューラルネットワーク(RNN:recurrent neural network)を取り上げる。RNNは、株価などの時系列(time series)データを解析し、いつ売買すべきかを教えてくれる。自動運転システムでは、クルマの軌跡を予想して衝突を避けられるように支援する。より一般的に言うと、RNNは、今までに取り上げてきたすべてのニューラルネットワークのように長さが決められた入力ではなく、任意の長さのシーケンス(sequence)を操作できる。たとえば、入力として文、文書、オーディオサンプルなどを受け付け、自動翻訳や音声認識などの自然言語処理(NLP:natural language processing)システムで役に立つ形式に変換する。
この章ではまず、RNNを支える基本概念と時間をさかのぼるバックプロパゲーションでRNNを訓練する方法を説明してから、RNNを使って時系列データを予測する。最後に、RNNが直面する2つの大きな難問について考える。
- 不安定な勾配(11章参照)。この問題は、再帰ドロップアウトや再帰的レイヤ正規化などのテクニックで緩和できる。
- (非常に)短い記憶。記憶の期間はLSTMセルやGRUセルで延ばすことができる。
シーケンシャルデータを処理できるニューラルネットワークはRNNだけではない。小規模なシーケンスなら、普通の全結合ネットワークでも処理できる。オーディオサンプルやテキストといった非常に長いシーケンスでは、CNNもRNNと同じくらいうまく機能する。この章では、両方を取り上げる。そして、最後に数万のタイムステップを持つシーケンスを処理できるCNNアーキテクチャ、 ...
Get scikit-learn、Keras、TensorFlowによる実践機械学習 第2版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.