Photo Gallery

深夜にこんばんは。ローズ三浦です。

仕事で頭を使い過ぎたせいか、変に頭が冴えて寝不足なのに寝られないっていう。。
ちなみにこの1週間は仕事が重なってしまい、3件お断りさせていただきました。誠に申し訳ございません。
これぞ、『仕事が忙しい時に限って依頼が殺到する』の法則!

さて、この前観た映画『メッセージ』では、
主人公がエイリアンの言語(時制がない)を理解することで、
エイリアンの時間に対する概念が主人公の思考に影響し(『サピア=ウォーフの仮説』)、
その結果主人公は未来が見えるようになる、という設定でしたが、

今、現在進行形でそれを体感中。


pythonを学習することで、
だんだん現実認識が浸食されてきているのである。
(pythonはある種の言語なので。)

具体的に言えば、今起こっている事象を、何らかの法則や数式で表せないか?と考えるようになりました。

pythonは、というかプログラミング言語全体に言えることですが、
法則や数式をコンピュータに理解できる言語で記述することによって、
それをコンピュータに再現させるものです。
なので、pythonの法則数式という特徴が、私の思考にも影響してきています。

この感覚、昔英語を習得していく際にもあったような気がする。
(今はその感覚が当たり前になっているので、忘れていましたが)
英語を学習すると、『英語の思考回路』というものが生まれるんです。

そして、英語の時は、最初は日本語→英語を頭の中で翻訳していましたが、
ある時から、直接英語で考えられるようになりました。

その理屈でいくと、このままpythonを学習すれば、
最初からpythonで考えられるようになる?
つまり、それはAIが見ている世界を見られるようになるということです。


ここまで読まれて、「それってただの思い込み/妄想じゃないの?w」と思われる方もいるかもしれません(これは外側からはわからない変化なので)。

しかし、翻訳の過程をpythonのコードによって記述できれば
翻訳のAIで目に見える結果として再現できるため、
思い込みや妄想ではないことが証明できると思う。

もしコードが書けたら、研究機関に無償提供しますので、
ご希望の方がいらっしゃったらお申し付けください。
(書けるかどうかはわかりませんが)

翻訳の過程をpythonで記述するためには、
翻訳のAIの仕組みと、翻訳の仕組みの両方を知る必要があります。
(現在は、どちらも正確には解明されていません)

ある意味、翻訳のAIと翻訳者間の翻訳者ですね。
現在、そのような職業はありませんが、ランゲージ・エバンジェリストなんてどうでしょうか?

※本記事はネタではありません。

※ジョーク記事です。


Erika.png


勉強メモです。

間違っていたらご指摘お願いします。
また、プロの方からのアドバイスもお待ちしております。

・英文を書く時の3C(Clear、Correct、Concise)は、プログラミングについても言える。

・私の場合、数式は理解できない(数学は高校時代に赤点取ったことも!)けれども、
同じことをプログラミング言語で表記するとナゼか理解できる。

・Windowsはプログラミングに適していないらしい。(LinuxとUbuntuをすすめられた)

・ディープラーニングにはGPU必須?CPU(家庭向けの一般的なPC)では、計算に時間がかかり過ぎるらしい。

・『ゼロから作るDeep Leaning』を読みながら実際に動かしているが、良書!(勉強会で質問した方も、「この本はよい」とおっしゃっていた)

・プログラミングの“初心者向け”の勉強会に行ってはどうか?とアドバイスをいただいたが、
私の場合はUdemyの応用コースをやる方が都合がよいかもしれない。(※今初級のコースやってます)

・NMTは言葉の意味を理解していない。確率ベクトルで計算するだけ。「see」と「watch」の違いは、NMTにとっては計算上の誤差?


来月は関東でMT勉強会が開催されるみたいです。
行きたいのはやまやまだけど(クックパッド日本IBMの方も発表されるようです)、
今の状態じゃせっかく行っても理解できないと思うので、
9月のMT Summitまで待つかなー?

それまでに、何らかの形のあるものを1つ作れたらいいな。

皆さま、こんにちは。
ローズ三浦です。

お久しぶりですね。
ブログ更新してなくてゴメソね!

というのも、5月初にいただいた案件が、本来4日程度で終わる量だったのにもかかわらず、
納期まで約20日間も余裕があっため、ダラダラやっていた
→しかし途中でセミナー&割り込み案件があり、
結局納期当日に納品になってしまったっていうw

ま、自分が悪いんですけどねwww

さて、ちょっと時間は経ちましたが、5/14の関西MT勉強会について、
主催者側から掲載許可をいただきましたので、うpしときます。
(ちなみに納期がギリギリながらも、27日の「iPS夜話」にも行きましたwそっちの方はまた後で書きます。)

**********************************************************************************************
5/14(日)にMT勉強会が(株)はてなさんで開催されました。

参加者は50名弱。
大半が学生(7割以上?)。
翻訳者は数名、翻訳会社は数社参加されてました。
女性は少なかったです(私を入れて3~4人?)
私は普段翻訳者の集まりでは最年少か、それに近いのですが、
久しぶりに平均年齢以上となりましたw

☆Sentencepiece:ニューラル言語処理向けトークナイザ by 工藤 拓氏(Google)☆
工藤 拓氏はGoogleの日本法人でGoogle翻訳に携わっていらっしゃる方です。
SentencePieceとよばれるトークナイザを開発・公開されています。
SentencePieceとは、
・教師なし
・言語非依存
・End-to-End

で処理を可能にし、
理想的な分散表現の分布から語彙を導出するものだそうです。
数学的な話は全くわからずw

☆GANを用いたニューラル機械翻訳について by 白井 圭祐氏(京大)☆
GANとは敵対性生成モデルで、GeneratorにはRNNを使用し、DiscriminaterにはCNNを使う。Generatorには強化学習(Policy Gradient Method)を用いており、
今のところうまくいっているそうです。

☆Open Problems of Neural MT Systems by 小田 悠介氏(NAIST)☆
NMTの問題として、
・Over generation(単語を重複で出力)
・Under generation(出力していない単語がある)
・Erroneous selection(例:「男」とすべきところを「女」と選択)
・Misunderstanding

などがある。

NMTは、研究者側にもなぜそうなるのか、理由がわかっていない部分(偶然できてしまった?)があるようです。

勉強会の最後は、
「今回は翻訳者の方もいらっしゃったので、
今までとは違うタイプの議論ができたと思います」

という言葉で結ばれました。

【感想】
内容は非常にアカデミック。研究は翻訳の実務とは違う観点で行われている。
翻訳者が気になる部分(「see」と「watch」の使い分け、「距離が“かかる”」という日本語の言い回しが変など)はあまり気にされていない様子。
どうやら翻訳者とは手段と目的がのように感じた。

翻訳のAIの研究者翻訳のAIのシステムを作ること自体が目的。ギミック重視。データフェチ。
翻訳者:翻訳という目的の一手段としてAIを使う

実務でAIを使えるようにするには、AIの技術を取り入れつつも、翻訳者視点で実装し直すことが必要かな、と思いました。

<その他>
・PCを持ち込んでる人が多かったが、プログラム書く人達だから、打ち込むスピードが異常に速いw(もちろんタッチタイピング)。
私はアナログで手書きでメモっていたが、発表者の話が超難解&話すスピードが速いので、とても追いつけないw
・「貪欲的に(greedy)」という言葉が興味深かった。(この勉強会では、「貪欲的に」は「貪欲法(アルゴリズムの一種)を使って」という意味らしいです。)

懇親会では、発表者やエンジニアの方から貴重な情報や勉強のアドバイスをいただきました。
まだ勉強し始めたばかりですが、私の勉強の方向はだいたい合っているようだし、
次に何を勉強すべきかもわかりました。


素晴らしい勉強会でした!

勉強会を主催してくださった中澤氏とお世話をしてくださった須藤氏に、改めてお礼申し上げます。
中澤氏はMT業界の「エバンジェリスト」ですね!

**********************************************************************************************
今、納品終わってちょうど時間が空いたから、
NMTの勉強しようかな。

9月のMT Summitまでに、
ちょっとは話についていけるようになりたいし。

とりあえず、自分で勉強してきた現時点での考察を書いときます。
素人意見なので間違ってるかもしれません。また、後程意見が変わるかもしれません。
(専門家の方、間違っていたらご指摘お願いいたします。)

*******************************************************************************************
●AIの定義は曖昧なので、
ここでは機械学習+ビックデータ+高速演算とする。

これを翻訳のAIに置き換えると、

翻訳者の認知プロセスを機械学習のプログラムのコードで表すことによって、
機械に人間の認知を再現させる
+膨大な対訳データを入れる
+計算させる
=対訳データの特徴量を機械に学習させる(重みづけ


●翻訳のAIは『理論』だけでは実現できない。
機械学習のプログラムは、現状では人間が書く必要があるため、
「ここのコードどうする?ここのハイパーパラメータどうする?」という、
超具体的な行動に落とし込むことが必要。
コードやハイパーパラメータを変えるとアウトプットが変わるので、
そこをtrial & errorしていく。

●セミナーでエラい先生の話聞いたり、専門書読んだりすると、
何となくわかったような気になるが、
実際はそんなにわかってない。
話し手・書き手と同じレベルではないので、
何分の1、何十分の1しか伝わってない。

しかし、いざ自分でコードを書こうとすると、何をわかってないかがわかるので、
後からそこを勉強していく。
(家電の説明書を読んでから使うのではなく、使ってみてわからなかったらそこで初めて説明書を読む、みたいな)

●プログラムのコード自体には著作権がない。
英文のフレーズ自体に著作権がないのと同じ。
(ただし、【機密保持】の問題はありますがw)
スクラッチからプログラムを書くのは無理でも、
精度の高いNMTのコードがわかれば、
かなり近づけるのではないか
と。
(翻訳でも最初はレベルの高い翻訳をパクって、慣れてきたらそれから自分でアレンジする)

機械学習と、翻訳者が翻訳を修得する過程は同じ。
(ビックデータ=レベルの高い翻訳をたくさん読む、
重みづけ=自分よりレベルの高い人にチェックしてもらって、修正を蓄積して「ここはこうするんだな」と学習する)

●ビックデータについては、トップレベルの翻訳者の対訳データが必要(それも莫大な量)。
翻訳の場合、教師あり学習のみ可能(教師なし学習は不可能)なので、→2017/5/16修正:教師なし学習や強化学習の方法もあるようです。
教師あり学習の場合、教師がクソならどうしようもない。
(でないと、間違った特徴量を学習してしまう)

●世の中には翻訳のプロセスを研究されている方もいらっしゃるようですが、
逆に言えば機械学習で重みづけが変わった部分が認知に重要な役割を果たしていると言えるのではないでしょうか?
なので、そこを重点的に研究すれば早いのではないでしょうか?
(すでに研究されていたらご容赦ください)

●精度の高い翻訳のAIを作るには、
プログラマだけではなく、
翻訳者視点でAIの改善を提言したり、実装(プログラミング)できる者も参加する必要があると思うが、
おそらくGoogle翻訳の開発部署内には既にそのような人物がいるのではないか(もしくは外部のそのような人物と提携しているのではないか)?
でないと、この精度は実現できないような気がする。

●そこまでいかなくても、
翻訳のAIを作るには○○という工程が必要であるが、
翻訳の△△という過程は○○という工程では表しずらい

ということを知っていたら、
それがAIの弱点なので、
そこを突いて翻訳者として生き残るという戦略が取れると思う。

少なくとも、「AIに翻訳の仕事を奪われるのではないか」と漠然とした不安におびえるよりも、
具体的に対策した方が余程よいと思う。

*******************************************************************************************

だいたいこんな感じ。
これが正しいかどうか、および技術的なことは、第15回関西MT勉強会で聞いてみるつもりです。

Google様、
Google翻訳の機械学習のプログラムのコード教えろくださいwww


WHAT'S NEW?