自然言語処理においてSequence-to-Sequenceモデル、そしてAttentionは大きな影響を与えてきました。 いまやSequence-to-Sequence + Attentionモデルは自然言語処理とディープラーニングを語る上では欠かせない存在となりつつあります。 近年の自然言語処理ではこのSequence-to-SequenceとAttentionをベースにしたモデルが多く提案されています。 この記事ではSequence-to-Sequenceをベースとしたモデルがどういった進化を遂げているかを歴史を追いながらまとめていこうと思います。 Sequence-to-Sequenceモデル (2014) Sequence-to-SequenceモデルはSequence to Sequence Learning with Neural Networksの論文で提案され、「Seq2
EncoderDecoderモデルの一種であるSequence to Sequence(Seq2Seq)に、 Attention Modelを導入し、その実装と検証結果について説明する。 はじめに 前回 http://qiita.com/kenchin110100/items/b34f5106d5a211f4c004 Sequence to Sequence(Seq2Seq)モデルの実装をChainerで行なったが、 今回はそのモデルにAttention Modelを追加しました。 以降では、Attention Model、その実装法、検証結果について説明をします。 Attention Modelとは LSTMなどのRNN系のネットワークを用いることで、文などの系列データを特徴ベクトルに変換することができます。 しかし初期に入力したデータは、最終的に出力される特徴ベクトルに反映されにくくな
概要 シーケンス(例えば文章)のペアを関連付けて学習させる DeepLearning の手法 sequence-to-sequence learning において、長いシーケンスでの学習の精度を上げると言われている Attention Mechanism の論文を読んだので備忘録を兼ねて概要を書いておきます。 元論文: Neural Machine Translation By Jointly Learning To Align And Translate そもそも seq2seq とは シーケンスのペアを大量に学習させることで、片方のシーケンスからもう一方を生成するモデルです。 元論文: Sequence to Sequence Learning with Neural Networks tensorflow 上にも実装があります。 実用例としては以下のようなものがあります。 翻訳: 英
こんにちは、 11月8日にAWSxBot勉強会*1で無事に発表してきた@vanhuyzです。 発表資料も上げましたので、来られなかった方は是非チェックしてください! さて、今回の内容です。 最近、Google翻訳先生がすごくなるよという話題がありますね。 手法はこの論文*2に詳しく書いてありますが、基本的にSequence to Sequenceモデル (seq2seq) を使っているそうです。 背景 まず、seq2seqモデルを少しまとめてみます。 単純なseq2seqモデル seq2seqモデルは名前の通り、入力シーケンスから出力シーケンスに変換するモデルです。シーケンスはテキストでも良し、画像や音声でも構いません。そのため、seq2seqは機械翻訳、会話生成、画像キャプション、音声認識などに広く応用されています。 上の図にはABCというシーケンスからWXYZというシーケンスに変換しま
seq2seqで利用可能な日本語対話データセットをダウンロードするツールの続きです。TensorFlowのseq2seqサンプルを、このデータで学習できるようにしてみました。 オリジナルのTensorFlowサンプルseq2seqは、WMTの配布する巨大な英仏翻訳のデータセットをダウンロード、展開して処理するコードが入っています。考えなしに動かせる点ではとてもお手軽で良いのですが、自分で用意したデータセットを与えるには向いていません。そこで、指定したディレクトリ上にあるinput.txt(encoder用データ)とoutput.txt(decoder用データ)を読みに行くよう修正したバージョンをgithubに置きました。オリジナルのコードに準じてApache 2.0ライセンスです。 knok/tf-seq2seq-mod: Modified seq2seq on TensorFlow これ
Sequence-to-Sequence(Seq2Seq)学習は、任意長の入力列から任意長の出力列を出力するような学習のことで、Neural Networkの枠組みで扱う方法が提案されて、いい結果が報告されています。雑なメモ。 入力・出力列の例 (自然)言語処理系 機械翻訳(翻訳元->翻訳先) [1409.3215] Sequence to Sequence Learning with Neural Networks [1406.1078] Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation http://www.slideshare.net/yutakikuchi927/learning-phrase-representations-using-rnn-
こんにちは。今年は冬休みをとても長くとったのですが、肉や蟹や餅や酒を連日消費しているうちに人体が終わっていき、気持ちになったので(様々な方向に感極まった状態のことを「気持ちになる」と表します)、世間で流行っているらしいディープラーニングの関連情報をつまみ食いしてチャットボットを作ってみることにしました。 入力文に対しニューラルネット(RNN)で応答文を生成して返事します。 @neural_chatbot というtwitterアカウントで動かしています。 ご興味があればぜひ@neural_chatbotに話しかけてみてください。 あらすじ ニューラルネットというものがあり、関数を近似することができ、知られています。 Recurrent Neural Network (RNN)というものがあり、内部状態を持つことができ、自然言語を含む可変長の系列を取り扱うのに便利で、知られています。 Sequ
@tkngueと共著 TL;DR NMTを試してみました. 翻訳結果を見ると、うまくいっている翻訳は驚きの結果でした. ただ,内容語をとんでもない間違いかたをしているものもあったりして面白かったです. 概要 "でぃ〜ぷらーにんぐ"の波が機械翻訳にも来ていて 大きなパラダイムシフトになりつつあります. その圧倒的な表現能力の高さ や 高価なGPGPUが大量にないと話にならないお金持ちゲーであること や 膨大なハイパパラメータ(学習の際の設定の組み合わせ)が 存在することから 「さわるの嫌だなー」と思いつつも、さわらざるを得ない状況になったので触ってみました. 実際にさわってみて, やっぱり凄かったので 投稿する次第です. 本稿では, 再配布可能な対訳コーパスKFTTを対象に日英翻訳をニューラルネット翻訳(NMT)で試してみます. 加えて, これまでのフレーズベースの統計的機械翻訳の典型的なツ
TensorFlowは「テンサーフロー」か「テンソルフロー」か?TensorFlow自身に聞いてみる。自然言語処理機械学習深層学習TensorFlow この記事は、 TensorFlow Advent Calendar 2016 25日目の記事です。 今年の10/7、TensorFlow UserGroup (TFUG) が発足しました。 「TensorFlow User Group立ち上げの儀」 に私も参加させていただいたのですが、そこで議題となったのが 「TensorFlowの読み方(カタカナ表記)」 でした。その場で多数決をとって、TFUGとしては 「テンソルフロー」 にすることに決定したのですが、思い通りに進まないのが世の常。 TFUG コアメンバの多数決の結果、 TFUGでは 「テンソルフロー」 に統一することに決定 TFUG #1 で、 NHKの取材が入り、 「テンサーフロー」
上図の四角はRNNセルを表しています。またこれらの四角は、最も一般的にはGPUセルもしくはLSTMセル(説明は RNNチュートリアル を参照のこと)を表しています。エンコーダおよびデコーダは重みを共有するかもしくは、より一般的には、異なるパラメータセットを使用します。多層セルが sequence-to-sequence モデルにおいてもうまく使われています。例: 翻訳向け Sutskeverほか 2014年 ( PDF ) ここで表されている基本的なモデルにおいて、あらゆるインプットは、デコーダに引き継がれる唯一のものである、固定サイズのベクトルにエンコード されなければなりません。インプットへの直接アクセスをデコーダに与えるために、注意メカニズム(attention mechanism)は、 Bahdanauほか、2014 ( PDF )にて導入されました。注意メカニズム(attenti
背景 ある日,私は機械翻訳に興味を持った. (英語に苦しむ日本の研究者の声を聞いたからかもしれないし,勉強会の準備に追われていたからかもしれない.) しかし私は門外漢なので,encoder-decoderモデルの "あの" 図を読むことができなかった. 先日気持ちを掴むことができたので,自分なりに噛み砕いたものを記録・共有するためにこの記事を書いた. 先人の詳細な記事 http://qiita.com/odashi_t/items/a1be7c4964fbea6a116e RNNの図を翻訳 翻訳までの流れを別視点から描いた. encoder-decoderモデルによって「彼 は 走る」を「He runs」と翻訳するまでの流れは,以下のようになっている. encode側の図において,日本語の登場順序がodashi_tさんの図とは逆になっている. 逆順に入力すると実験的に良い結果が得られている
Sequence to Sequence Learning with Neural Networks Ilya Sutskever Google ilyasu@google.com Oriol Vinyals Google vinyals@google.com Quoc V. Le Google qvl@google.com Abstract Deep Neural Networks (DNNs) are powerful models that have achieved excel- lent performance on difficult learning tasks. Although DNNs work well whenever large labeled training sets are available, they cannot be used to map sequ
上の図の各ボックスは RNN のセルを表しています、より一般的には GRU セルまたは LSTM セルです (それらの説明については RNN チュートリアル を参照)。エンコーダとデコーダは重みを共有することができますがあるいは、より一般的に、異なるパラメータセットを使用することもできます。多層セルは sequence-to-sequence モデルでも成功的に使用されています。例えば翻訳のために Sutskever et al., 2014 (pdf)。 上に描かれた基本モデルでは、デコーダに渡される唯一のものとして、全ての入力は固定サイズの状態ベクタにエンコードされなければなりません、デコーダにより直接的な入力へのアクセスを可能にするため、attention メカニズムが Bahdanau et al., 2014 (pdf) で紹介されました。私たちは attention メカニズム
Seq2Seqで小説自動生成の学習を失敗した話 失敗した経験をネット上に上げることにいくつか意見があるでしょうが、機械学習を行って、学習が失敗すると、大きな時間的な損失になるよという見地を示す目的があります。 小説の自動生成では、ディープラーニングを実用に移した例では、韓国資本の会社がRNNモデルを利用して、VOYAGERなる小説(アプリ?)を公開するに至りました。考え方としては、Seq2Seqによる文章作成はこれに該当すると思われます[1]。 Seq2Seqとは 図.1 この図は、inputを文字のシーケンシャルな列としたとき、アプトプットをシーケンシャルな文字の列とすることです。 ユニークなのは、図の”I”という出力を次のインプットとすることで、”am”という最尤度を持つ文字を取り出していることです。さらに次の出力をインプットとすることで文字列を作り出すということを行っています。 基幹
This tutorial: An encoder/decoder connected by attention. While this architecture is somewhat outdated, it is still a very useful project to work through to get a deeper understanding of sequence-to-sequence models and attention mechanisms (before going on to Transformers). This example assumes some knowledge of TensorFlow fundamentals below the level of a Keras layer: Working with tensors directl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く