投稿

3月, 2017の投稿を表示しています

4月、東京・大阪で6時間集中講義

4月22日東京、4月29日大阪で、角川アスキーさんの主催で、「IT技術者の新しい常識「ディープラーニング」入門」6時間集中講義を行います。皆さんの参加をお待ちしています。 --------------------------------------------------- 4月22日の東京は、昨年来のシリーズの第二弾で、今回のテーマは、「自然言語とニューラルネットワーク」です。 次のような構成になります。   第一部 概説 自然言語と人工知能   第二部 RNNとLSTMの基礎   第三部 Googleニューラル機械翻訳 4月22日東京の開催趣旨はこちら https://goo.gl/LJ7qvA 申し込みページはこちらです。https://goo.gl/uHFcxj --------------------------------------------------- --------------------------------------------------- 4月29日の大阪のテーマは、「ニューラルネットワークの基礎」です。(4月22日の東京とは、コンテンツが異なりますのでご注意ください。)  次のような構成となります。   第一部 ニューラルネットワークの基礎   第二部 ニューラルネットワークはどう「学習」するのか   第三部 ニューラルネットワークによる画像認識技術 開催趣旨はこちら https://goo.gl/ufQ2vH 申し込みページはこちらです。https://goo.gl/xhXoqC --------------------------------------------------- --------------------------------------------------- 4/22 東京 開催概要 --------------------------------------------------- ■セミナータイトル: IT技術者の新しい常識「ディープラーニング」入門6時間集中講義 Part 2 自然言語処理とニューラルネットワーク ■講義の構成:   第一部 概説 自然言語と人工知能   第二部 RNNとLSTMの基礎   第三部 Googl

Google翻訳での日本語の点数の低さについて

イメージ
Google翻訳は、なかなかスゴイのだが、他の欧米系の言語での翻訳と比べると、日本語の翻訳精度は、かなり低い。 この表は、Google翻訳の「Zero-Shot論文」の、ある意味「目玉」の結果の一つである。 機械翻訳のシステムを、ドイツ語 -> 英語、フランス語 -> 英語 というように、一対一の言語の組み合わせで別々のシステムで訓練させるより、{ ドイツ語、フランス語} -> 英語 のように、一つのシステムで同時に複数の言語(この場合は二つの言語)の一つの言語(この場合は、英語)への翻訳を訓練した方が翻訳精度が上がるという、驚くべきものである。 人間で言えば、日本語の英語への翻訳をもっとうまくやりたいなら、韓国語から英語への翻訳も、同時に学習する方がいいということ。 このメリットを説明する可能性のある仮説の1つは、モデルがより多くの英語データをターゲット側に持ち、ソース言語が同じ言語ファミリに属していること。それで、モデルは有用な一般化を学んでいると思われる。 こうした 発見は、とても興味深いものだが、ここでは、別のことに注目しよう。 ここでの翻訳精度の改善は、BLEUのスコアで、+0.05〜+0.79の改善である。(表の赤い枠の部分。) ただ、日本語 -> 英語の翻訳精度は高いスコアで 23.87で、フランス -> 英語の 36.77と比べるとずいぶん低い。この表の中では、最低だ。実験で最高得点をたたき出している ポルトガル語 -> 英語の 45.19と比べると、半分程度だ。 実は、このポルトガル語の高得点も、僕には不思議に見える。WMTのコーパスでは、英語・フランス語のパラレル・データが3,600万ペアで、英語・ドイツ語のペア500万と比べても圧倒的に多い。ポルトガル語の高得点は、Google内部のコーパスを使ったものだが、アメリカなら、英語・スペイン語のデータは多いと予想できるのだが、英語・ポルトガル語のデータが、それ以上に多いとは思えない。でも、スペイン語 -> 英語より、ポルトガル語 -> 英語の方が、ずっと成績がいいのだ。 きっとGoogle翻訳は、英訳に関して言えば、日本語とは相性が悪く、ポルトガル語とはとても相性がいいのだ。なぜか? 僕にはわからない。

Lady GaGa -- Joanne

もうだいぶ前のことだが、Paul McCartneyが出した"My Valentine" という曲が好きだった。ジャズのスタンダード・ナンバーっぽい曲だ。まあ、彼は万能なので、どんな曲でも作れるんだなという感じで聞いていたのだが。 https://goo.gl/KLvgP そのうち、Lady GaGaがTony Bennettとデュエットのアルバムを出した。もちろん、古い曲のカバーだ。スランプ気味だったGaGaのリハビリみたいなものかなと、生暖かく見守ることに。GaGa、歌が上手いことに気づく。例えば、これ。 https://goo.gl/74Ug8m ただ、Bob Dylanが、Frank Sinatraのカバー・アルバムを出した時には、少し驚いた。Dylan 自身がギャングに扮するビデオまで作って。 https://goo.gl/lFav5U この流れは何なんだ。何かが起きていることは確かなのだが、その時は、その意味は、よくわからなかった。今になってみれば、それは、今、アメリカで起きていることの予兆の一つだったということに気づく。「古き良きアメリカ」は、失われつつあるという意識とともに、それを懐かしむ意識は、だいぶ前から伏流していたのだと思う。 仕事が一段落して、ようやくGaGaの新しいアルバム Joanneを聴く。今までのGaGaのアルバムとは、ずいぶん違ったものになっている。 ネットで見かけたタイトルに、こんなのがあった。 「レディー・ガガが普通になっちゃった?新作『ジョアン(Joanne)』に暗雲漂う… 」 確かに、そうかもしれない。 奇抜なメークもなし。曲もシンプルで、歌詞は、演歌のようにわかりやすい。どこの訛りかわからないのだが、発音もなまっているように、僕には聞こえる。何星人だかわからなかったGaGaが、悪魔崇拝の雰囲気も漂わせていたGaGaが、アメリカの淳朴で信心深い田舎娘になっている。 (Diamond Heart) I'm not flawless, but I gotta diamond heart. (sinner's prayer) Hear my sinner's prayer I am what I am A

古代と現代のパラレル・コーパス

イメージ
機械翻訳では、同じ意味の二つの言語の文を集めたパラレル・コーパスが不可欠だ。 この世界で標準的に利用されているWMTというデータセットがあるのだが、WMT‘14の英語(En) <-> ドイツ語(De)データセットには、500万の文のペアが含まれている。すごいと驚いてはいけない。 WMT‘14の英語(En)<-> フランス語(Fr)データセットには、3,600万もの文のペアが含まれている。 これは、英語・フランス語のパラレル・コーパスパラレル・コーパスの例。Gale & Church "A Program for Aligning Sentences in Bilingual Corpora" http://www.aclweb.org/anthology/J93-1004.pdf から。 ところが、上には上がある。 Googleのニューラル機械翻訳の論文を読んでいたら、すごいことがサラリと書かれていた。 「わしら、Google社内で機械翻訳のためコーパス持っているんだけど、それって、WMTより、二桁から三桁大きいんだよね。エヘン。」 噂には、聞いてはいたが、「WMTより、二桁から三桁大きい」は、すごい。どうりで、100個のGPU使って、訓練に3週間もかかるわけだ。WMTだけだったら、そんなに時間かからないはず。 アマノジャクなので、別のことを考える。 「でも、そんなにデータ持ってて、あなたは賢いの?」 「パラレル・コーパスって、昔からあったよね。ロゼッタ・ストーンってそうだろ。」   シャンポリオンが、これを使って、古代エジプトの象形文字を解読した。 ローリンソンとヒンクスが、楔形文字を解読するのに使ったベヒストゥン碑文も、立派なパラレル・コーパスだ。 若い時に、確か、みすずの本で古代エーゲ海文明の「線文字B」の解読の本を読んだことも思い出した。ヴェントリスは、天才だ。パラレル・コーパスなんかなくても、未知の文字を解読できる。 21世紀になって、クレタのGareth Owensは、たった一つの粘土板Phaistos diskにきざまれた、45種類の「文字」で書かれた241文字の「文」の解読に成功したという。 女神への祈りだという

「Zero-Shot 論文」の翻訳

イメージ
ゼロ・ショット翻訳を可能にする Googleの多言語ニューラル機械翻訳システム Melvin Johnson, Mike Schuster, Quoc V. Le, Maxim Krikun, Yonghui Wu, Zhifeng Chen, Nikhil Thorat melvinp, schuster, qvl, krikun ,yonghui,zhifengc,nsthorat@google.com Fernanda Viégas, Martin Wattenberg, Greg Corrado,  Macduff Hughes, Jeffrey Dean 概要 私たちは、単一のニューラル機械翻訳(NMT)モデルを使用して、複数の言語どうしを翻訳する、シンプルで洗練されたソリューションを提案します。 私たちのソリューションでは、基本のアーキテクチャーからモデルのアーキテクチャーを変更する必要はありません。代わりに入力文の始めに特殊な人工的なトークンを導入して、必要なターゲット言語を指定するだけです。エンコーダ、デコーダ、アテンションを含むモデルの残りの部分は変更されず、すべての言語で共有されています。 共有ワードピースのボキャブラリを使用することで、多言語NMTはパラメータを増やさずに、単一のモデルを利用することができるのです。これは、従来の多言語NMTの提案よりも大幅に簡単なものです。私たちの方法は、多くの場合、モデル・パラメータの総数を一定に保ちながら、関連するすべての言語ペアの翻訳品質を改善します。 WMT'14のベンチマークでは、単一の多言語モデルが、英語 -> フランス語翻訳に匹敵するパフォーマンスを達成し、英語 -> ドイツ語の翻訳では、最先端の結果を凌駕しています。同様に、単一の多言語モデルは、それぞれ、フランス語 -> 英語とドイツ語 -> 英語のWMT'14とWMT'15ベンチマークの最新の結果を上回りました。 製品版のコーパスでは、最大12言語対の多言語モデルで、多くの個々のペアの翻訳より良い翻訳が可能になります。 我々のモデルは、モデルが訓練された言語ペアの翻訳品質を向上させることに加えて、訓練中に明示的には見られなかった言語

可微分ニューラルコンピュータとは何か(2) システム概観

イメージ
システム概観 DNCは外部メモリ行列に結合されたニューラルネットワークである。 (ネットワークの動作は、メモリが容量まで満たされていない限りメモリのサイズに依存しないため、メモリは「外部」と見なされる)。このメモリ行列をDNCのRAMと考えるならば、 「コントローラ」と呼ばれるネットワークは、微分可能なCPUである。その動作は、勾配降下法で学習される。 DNCアーキテクチャは、メモリを選択的に読み書きすることができ、メモリの内容を繰り返して修正することが可能である点で、近年のニューラル・メモリー・フレームワークとは異なっている。DNCの以前の形式であるニューラル・チューリング・マシンは、同様の構造を持っていたが、メモリアクセスの方法がより制限されていた(詳細は「Method」の章を参照されたい)。 従来のコンピュータが、メモリ内容にアクセスするためにユニークなアドレスを使用するのに対し、DNCは微分可能なAttentionメカニズムを使用して、$N×W$メモリ行列である$M$内の$N$行、「ロケーション」上に分布を定義する。この分布が、各ロケーションが読取りまたは書込み操作に、関わる程度を表現している。我々はそれを「重み付け」と呼んでいる。 メモリM上の読み出しで、重み付け$w^r$によって返される読み出しベクトル$r$は、メモリ・ロケーションにわたって重み付けされた和である。$r = \sum_{i=1}^N  M [i、\cdot ] w^r [i] $である。ここで、「$\cdot$」は全ての$j = 1, ... ,W$を表している。 同様に、書き出しの操作は、書き出しの重み付け$w^w$を使う。まず、消去ベクトル$e$を使って消去し、その後で、書き出しのベクトル$v$を追加する。  $M[i,j] \leftarrow M [i、j](1-w^w [i]e[j])+ w^w [i]v[j]$ 重みづけを決定して適用する機能の単位は、読み書きヘッドと呼ばれる。ヘッドの動作は、以下に要約する。形式的な記述は、「Methodの」章を参照されたい。 ヘッドとメモリーの間の相互関係 ヘッドは3つの異なる形の微分可能なAttentionを用いる。 コンテンツ検索 第一は、コンテンツ検索である。そこでは、コントローラ

可微分ニューラルコンピュータとは何か(1) 概論

ニューラルネットワークの最前線 Googleニューラル機械翻訳も素晴らしいのだが、ニューラルネットワークの世界では、さらに大きな変化が進行中である。その最前線と言っていいのが、去年の10月に、GoogleのDeepMindチームが、Nature誌に発表した次の論文である。 Alex Graves et al. "Hybrid computing using a neural network with dynamic external memory"  https://goo.gl/r4g5xt ニューラルネットワークに、動的に外部メモリーへのアクセスを可能にすることによって、ニューラルネットと従来のコンピュータのハイブリッドのシステムを提案している。 以下に、この論文の概論部分を翻訳してみた。 動的外部メモリーを持つニューラルネットワークを利用したハイブリッド・コンピューティング Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, Adrià Puigdomènech Badia, Karl Moritz Hermann, Yori Zwols, Georg Ostrovski, Adam Cain, Helen King, Christopher Summerfield, Phil Blunsom, Koray Kavukcuoglu & Demis Hassabis 人工のニューラルネットワークは、感覚の処理、シーケンスの学習、強化学習には、極めて熟練しているのだが、変数やデータ構造を表現したり、長い時間のスケールでデータを格納する能力には限界を持っている。そうした限界は、ニューラルネットワークが、外部メモリを持たないことによるものだ。 この論文で、我々は、「可微分ニューラル・コンピュータ(DNC: Differentiable Neural Computer)」と呼ばれる機械学習モデルを

Google翻訳のアーキテクチャー(3) Attention Mechanism

イメージ
新しいGoogle翻訳の元になった論文 新しいGoogle翻訳のシステムは、全く新しいアイデアに基づいてスクラッチから作り上げられたものではない。 その基本的なアイデアは、2016年の5月にarXivに投稿された次の論文に多くを負っている。(Google Brainのチームが、新しいシステムを6ヶ月で仕上げたと言っていることと、符合する。) Bahdanau, D., Cho, K., and Bengio, Y.  “Neural machine translation by jointly learning to align and translate”    https://goo.gl/HZxbNH   「近年、ニューラル機械翻訳として提案されたモデルは、多くの場合、Encoder-Decoderのファミリーに属している。そこでは、ソースの文が固定長ベクトルにエンコードされ、そこからデコーダが 翻訳文を生成する。この論文では、固定長ベクトルの使用が、この基本的なEncoder/Decoderアーキテクチャの性能を改善する上でのボトルネックになっていると推論し ... 」 先に見た、Ilya Sutskever らの翻訳システムでは、翻訳されるべき文は、Encoderで、一旦、ある決まった大きさの次元(例えば8000次元)を持つベクトルに変換される。このベクトルからDecoderが翻訳文を生成する。入力された文が、長いものであっても短いものであっても、中間で生成され以降の翻訳プロセスすべての出発点となるこのベクトルの大きさは同じままだ。このシステムでは、長くても短くても入力された文全体が、一つの固定長のベクトルに変換されるのだ。 確かに、そこは翻訳の精度を上げる上でのボトルネックになりうる。事実、Ilya Sutskever らのシステムでは、文の長さが長くなるにつれて、翻訳の精度が低下されるのが観察されるという。 それでは、どうすればいいのか? 「モデルに自動的に、ターゲット・ワードを予測するのに重要なソース・文の一部分について、 (ソフト)検索を可能とすることによって、これを拡張することを提案する。その際、これらの部分を明示的にハードセグメントとして形成する必要はない。」 Attention

Google翻訳のアーキテクチャー(2) Encoder / Decoder

イメージ
Google機械翻訳の基本的な論文 Googleの新しいニューラル機械翻訳システムについては、基本的な論文が二つある。 一つが、去年の10月にarXivに投稿された Yonghui Wuらの" Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation "(「Googleのニューラル機械翻訳システム:人間と機械のギャップを橋渡しするもの」)という論文である。 https://arxiv.org/pdf/1609.08144.pdf もう一つが、同じくarXivに11月に投稿された Melvin Johnsonらの" Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation " (「Googleの多言語ニューラル機械翻訳システム:ゼロ・ショット翻訳が可能に」) https://arxiv.org/pdf/1611.04558.pdf 前者の論文は、新しいGoogle機械翻訳のニューラル機械翻訳システムの発展形としてのアーキテクチャにフォーカスしたもので、後者の論文は、このGoogle機械翻訳を多言語対応させた時に、翻訳システムとして、どのような特徴を持つかを、述べたものである。 Googleニューラル機械翻訳システムの概観 ここでは、まず前者の論文に依拠して、Googleニューラル機械翻訳システムのアーキテクチャーの概観を見てみようと思う。アーキテクチャーの概念図を下に示す。 左側に、LSTMを8段重ねにした Encoder LSTMがあり、右側には、同じくLSTMを8段重ねにした Decoder LSTMがある。 Googleニューラル機械翻訳 (GNMT : Google Neural Machine Translation )システムは、LSTMを利用したシステムであり、全体としては、Encoder-Decoderのアーキテクチャーを採用していることを確認しよう。 EncoderとDecoderの中間に、Attent

Google翻訳のアーキテクチャー(1) ニューラル機械翻訳モデル

イメージ
ニューラル機械翻訳に先行した機械翻訳モデル 新しいGoogle翻訳は、「ニューラル機械翻訳モデル」に基づいている。それに対して、それ以前のGoogle翻訳は、「統計的機械翻訳モデル」に基づいたものだ。ここでは、まず、新しいGoogle翻訳以前の代表的な機械翻訳モデルを振り返り、ニューラル機械翻訳モデルが、どのような問題意識から生まれたのかを考えてみよう。 ルール・ベース機械翻訳モデル (RBMT) ルール・ベースの機械翻訳モデル(Rule-Based Machine Translation)は、古典的なものだ。日本でも、このモデルに基づく多くの翻訳システムが、かつては作られていた。(こんなリストをネットで見つけた。今から20年以上前のものだ。当時の日本は、AIでも機械翻訳でも、先進国だった。 http://aamt.info/english/mtsys.htm  ) 人間が(ここでは日本人としよう)、英語の文章を日本語の文章に翻訳する場合を考えよう。その時、最低限必要になるのは、次の三つだ。 英語・日本語の辞書 英語の文法の知識 日本語の文法の知識(暗黙の知識を含めて) ただ、これで十分かというと、そうではない。英語の構文を日本語の構文に変換する知識が必要となる。 ルール・ベースの機械翻訳は、基本的には、こうした人間の翻訳作業と同じことを、機械にさせようとする。原理はわかりやすい。機械の翻訳のルールは、人間が手で書くので、誤訳があっても、その原因を突き止めることは容易だ。ただ、電子的に利用可能ないい辞書があるかは分野による。と言って、ゼロから辞書を作るのは手間がかかる。その上、文法構造の解析は、意外と難しい。様々の付加的情報を追加する必要がある。ただ、我々は、母語にせよ外国語にせよ、自分の持つ文法知識を、たいていの場合、ルールとして全て書き下せるわけではないのだ。 統計的機械翻訳モデル (SMT) ルール・ベースの機械翻訳モデルが、その精度を上げるのに伸び悩んでいる中、新しい機械翻訳のモデルに注目が集まる。それが統計的機械翻訳モデル (Statistical Machine Translation)である。 代表的な論文は、次のものだと思う。 1990年 Peter F. Br