機械学習と黒魔術

2次元から3次元への埋め込みをしていくブログ。

進化したGoogle Translateの性能限界はどこか? ー文法・表現力についてー

乗り遅れた感のあるGoogle Translateの性能改善調査ですー

 

これまでの流れとしては、

1.グーグル先生すごいや!

翻訳前:グーグル先生すごすぎるんやが。マジやばいっす。

翻訳後:Mr. Google is too great. It is really serious.

               f:id:chienomikun:20161122214734p:plain

 

2.いや、文脈理解が問われる場合はいけてない・・・

 

翻訳前:彼ってば誕生日忘れやがったのよ。

翻訳後:He forgot his birthday.

 

 

てな感じにグーグル先生の翻訳力の考察が進んでいるようですが、ではグーグル先生(が採用しているエンコーダーデコーダーモデル)の性能限界はどこか、というのを探ってみたいと思います。

                    f:id:chienomikun:20161122214734p:plain

 

性能指標を2つ導入します。

1.構文力

2.表現の機微

 

1.構文力

問題1:次の有名なチョムスキーの例を訳せれば合格です

翻訳前:無色の緑色の考えが猛烈に眠る

翻訳例:Colorless green ideas sleep furiously

グーグルせんせーのこたえ f:id:chienomikun:20161122220947p:plain

A colorless green idea sleeps furiously

 

うん。。。これには驚きました。みたことのない文でも構文どうりに訳せるということがわかりました。はい次!

 

問題2:次の入れ子構文をうまく訳せれば合格です

翻訳前:私が彼に言ったのは、彼は彼女に私が遅刻をしたらしいと言ったのではないかということだ。

グーグルせんせーのこたえ f:id:chienomikun:20161122220947p:plain

 I told him that he said that she seems to have arrived late. 

 

遅刻をしたのが彼女になっちゃってますね。これは残念。ということで、構文に関する性能限界は、

チョムスキーの 無色の緑色の考えが猛烈に眠る を完璧に訳すほど単文は得意だが、入れ子構造になると苦手らしい

というところかと

 

2.表現の機微

問題3:次の文を、注目している物体に合わせて訳出できれば合格です(ピンカー先生の本からとってきた)

1.アリが生姜入りクッキーの上を這い回った

2.生姜入りクッキーは這い回るアリだらけだった

 

グーグルせんせーのこたえ f:id:chienomikun:20161122220947p:plain

 

1.Ali crawled over cookies with ginger

2.Cookies with ginger were full of crawling ants

 

 

 

うん。。。完璧ですね!モハメド・アリがクッキーを這い回っている以外は!

対象をうまく選んで、それに従って訳し分けることができています。

ということで、表現力については、

常識の実装はまだまだこれからだが、文章が注目している対象に逆らわずに訳出できる程度にはすごい。

というところかと。

 

ほなまた!

 

CNN - Convolutional Neural Net - 畳み込み層の実装

普通のニューラルネットの各層を全結合層とよぶ(全てのノードは次の層のノードにつながっている)

 

なぜ全結合では不満があるか

全結合層では、2次元的・3次元的構造を保持しない。これは1次元ベクトルとして入力する仕様のため。これでは2次元的構造(画像など)の重要な構造が失われてしまう

 

全結合の不満の解消

全結合層で不満だった2次元的構造の消失問題を構造の情報を取り出し、保存することにより解決する。その取り出し方が畳み込みと言われる手法である。

 

続きを読む

「進化計算と深層学習」まとめノート 3

第2章 ニューラルネット ー 多層パーセプトロン ー

多層パーセプトロンは、パーセプトロンの収束定理では得られなかった学習、例えば線形分離不可能なXOR関数の学習を行える。

問題設定

入力ベクトル x を第1層めとして、第 n 層における脳細胞に対応する出力値を x_n, それぞれの出力にかかる重みベクトルを w_n として、最終層の出力 ニューラルネットの予想とする。

ディープラーニングの最終目的はディープラーニングの予想 y と教師データ d 差を最小化するパラメーターを求めることである。差を測る関数は色々ある。

問題の再設定

最小化するといっても、いま最小値を取ったというためには、凸関数だとかメタな知識がない限り無限時間待つことになるので、傾きが0になるパラメーターを求めることで満足しておく。これにより最急降下法という古典的手法が使えて、重みパラメーターの傾きに沿って滑り降りるようなアルゴリズムで更新すれば良いことになる。

続きを読む

確率的勾配微分法とは

前提

ニューラルネットの重みとバイアスを訓練データを予測できるよう調整したい(学習の定義)

 

Step 1

訓練データの中から、一定数を無作為抽出する。得られたデータをミニバッチといい、ミニバッチの損失関数の値を最小化したい

Step 2

勾配を求めることで、得られた関数を最も大きく減らす方向を求める

Step 3

重みパラメータを、 Step 2 の方向に少しずらす

Step 4

Step 1-3 を繰り返す

 

なぜ確率的(Stochastic)とよぶか

Step 1 のように、データを確率的に選び出すから。

「進化計算と深層学習」まとめノート 2

第2章 ニューラルネット

学習の定義

ある状況における繰り返された経験によるその状況に対する動作の変化のこと(Hilgard 1975)

 

過学習を防いでうまく学習するには

データセットを3つに分ける

  • 学習用の訓練データ
  • 学習の終了判断を行うための評価用のデータセット訓練データの一部から取ってくる
  • 最終的なテストを行うテストデータ

ニューロンのモデル化

人間の脳には140億個のニューロンがあり、それぞれ8000個程度シナプスを介して他のニューロンとつながっている。

 

McCulloch-Pitts モデルでは、ニューロンが発火するか否かを、

y = σ ( <w,x> + b )

で表す。ここで、wシナプスの結合強度を表す重みベクトル、x は各細胞の値。σ は入力が0以上なら1を、それ以外は0を返す関数。b は発火しやすさを表すバイアス。ただし< x, y > は xy内積を表している

 

アイディアの出所
続きを読む

「進化計算と深層学習」まとめノート 1

2つの本

1. 進化計算と深層学習 -創発する知能― (理論中心)

2. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装  (ゴリゴリ計算)

を 1. を中心に読み比べていくシリーズです。

 

第1章 進化計算入門

 

27億年の歴史がある世界最古の生物ストロマトライトが光合成を行なったことで好気性菌の誕生を可能にしたことから生命の進化は加速していく。

 

では進化とは何か

Darwin は生物の集団を次のように特徴付けている。

続きを読む

事業計画勉強会@Hiveshibuya まとめ

事業計画の作り方 Hiveshibuyaワークショップ@10/7 まとめ

0.最初に書くべきこと

ミッション・解決すべき問題を定義するのは特にサービス開始前に重要

 

1.金目鯛を売るには?

ただ旬ですよといっても、いくらだよ!となって結局買わない。値段を言うべき。若手で投資条件を言う人はほぼ0なのでできればお金の苦労が小さい。

 

2.市場規模について必要なこと

サービスがグロースしている(しそう)なこと

ー アプリだと1000万人でグロースしていると言える

 

3.ビジネスモデルのパターン

ー EC の手数料パターン(ピクスタなどの独占型だと50%、独自価値あると30%、ないと10%)

  ー 総流通量がECサイトのKPI。だからメルカリはプレスリリースでも必ずこの数字を出す。

ー 広告

ー ユーザー課金(ゲーム)

ー ユーザー課金(非ゲーム)