終末 A.I.

データいじりや機械学習するエンジニアのブログ

RNN

Keras Loss Behavior with Language Model

KerasのModelクラスを使用した際のロスの計算は、Paddingで追加した余計な値を勾配の計算から除外する処理は自動でやってくれるのですが、 historyに記録されるlossの平均値を求める際に、maskを部分的にしか考慮しておらず、padding数が多くなればなるほど…

RNN より高速な Feedforward Sequential Memory Networks (FSMN) を TensorFlow で実装してみた

LSTM や GRU など RNN の一般的なアーキテクチャの弱点としては、DNN や CNN に比べた場合に処理の遅さがあげられます。それは、アーキテクチャからは自明で、LSTM や GRU のような系列の記憶としての隠れ変数を使用する層の場合、あるステップの計算を行う…

TensorFlow の ptb サンプルを動かす

TensorFlow で ptb を学習させるサンプルは Recurrent Neural Networks チュートリアルに記載されている通り、 github からソースを落としてきて、tensorflow/models/rnn/ptb に移動し、ptb_word_lm.py を動かすだけで簡単に動作させることができます。 ただ…

GoogleのAIはどうやって「詩」を生成するのか

一ヶ月ほど前ですが、Googleの人工知能が「詩」を創りだしたという話が話題になりました。 wired.jp この話の元ネタは、[1511.06349] Generating Sentences from a Continuous Spaceで発表されている論文になります。この論文では、ベイズとDeep Learningを…

word2vec の結果を利用して RNN で文章を生成してみる(2)

word2vec の出力結果を元に文章を作ってみるコーナーの第二弾です。 今回はエンコーダー・デコーダーモデルを使用して word2vec の出力から文章を生成できないかを試してみました。 使用したモデルは以前の記事で紹介した Skip-Thought Vectors です。 ksksk…

Deep Learning で使われてる attention ってやつを調べてみた

先週 Skip-Thought Vectors について調べてみたわけですが、その中でよく何を言っているのかよく分かっていなかった、 attention mechanism について調べてみました。 調べるにあたって、最近のDeep Learning (NLP) 界隈におけるAttention事情 が大変参考に…

Skip-Thought Vectors を解説してみる

本日は、インスピレーションと予算の枯渇のため、実験ができていなかったので、論文の解説をいたします。まあ、解説とか偉そうなことを言っていますが、主に自分用のメモみたいなものなのですが。 紹介する論文は、「Skip-Thought Vectors」です。この手法は…

word2vec の結果を利用して RNN で文章を生成してみる(1)

chainer のサンプルの中には RNN 利用して文章を学習し、コンテキストに沿った単語を選択できるようになる ptb のサンプルが付属しています。 今回はこいつをちょっと改造して、単語の識別IDではなく、word2vec で生成したベクトルを用いて ptb サンプルと同…

Chainer の ptb サンプルで遊んでみる

AWS の GPU環境をなんとか整えたので、RNN で遊んでみようと思い、Chainer の ptb サンプルを試しに動かしてみました。 ptb サンプルでは、入力された単語系列(文章)を元に、次の単語を推論する構造で、RNNのよくあるモデリングになっています。 ちなみに…