2017年2月16日木曜日

Google翻訳、すげぇ

定期試験

僕はGoogle翻訳を定期的にテストしています。早晩、機械翻訳が実用レベルに達すると確信しているからです。さっき、翻訳を試したら、あまりに高い精度なので、びっくりしました。

機械翻訳の勃興

機械翻訳を初めて目にしたのは、Microsoft Developer Network (MSDN)のサイトです。ソフトウェアの開発にかかわる人は、開発環境に関する様々な情報が必要です。インターネットが今ほど発達していない時代、そのような情報を得るのは、とても骨の折れることでした。1990年ころなら、専門書が数冊、1000ページ以内でよかったのですが、Windowsが出てきて、 それが一気に10倍くらいになりました。最悪なのは、それがおよそ2年で陳腐化するのです。そして、ほとんどの情報が最初は英語なのです。
開発環境の劣化は、開発者の減少を招くので、Microsoftは開発環境の整備を精力的に行いました。その取り組みのひとつがMSDNです。最初のMSDNは書籍として提供されました。総重量20Kgくらいありました。あまりにあほらしい量なので、次からは、CDでの提供になりましたけど。
その総重量20Kgの書籍が全部翻訳なわけです。ページ数にして、5万とか10万とかになるので、1ページ1000円で翻訳したとしても億単位のお金がかかります。開発環境なんて、そんなにたくさん売れませんから、コストが回収できません。しかも、時間がかかります。すぐに、翻訳に1年、2年かかるようになりました。開発環境は2年くらいで刷新されるので、開発環境の刷新サイクルと、マニュアル類の刷新サイクルが完全にずれてしまいました。日本語訳の提供は限定され、多くは英語のまま提供されるようになりました。
それでも追いつかなくて、そのうち、Webでの情報提供になりました。Webで順次日本語への翻訳を進めることで、最善の努力で日本語訳が得られるようになりました。しかしながら、それでも追いつかないので、ほとんどの項目は英語でした。
2000年ごろだったかなぁ、突然、日本語訳が多くなりました。しかも、へんてこな日本語でした。翻訳コストをケチって、非日本人に翻訳を外注したのかな、なんて思いました。でも、下の方をよく見ると「このページは、機械翻訳されました」とありました。
その頃は、機械翻訳は意味不明なことが多かったので、英語の原文で内容確認するのが普通でした。もちろん、重要な部分は、優先的に人力で翻訳されてました。ところが、2010年を過ぎたあたりから、すべてのページが、素人翻訳レベルになりました。つまり、機械翻訳がある程度の実用レベルに達したのです。開発環境のマニュアルという限定された対象だと、文法や用語がかなりしぼられるので、翻訳の質を上げやすいという事情があります。さらに、2015年頃には、すべてのページが機械翻訳になりました。
おそらく、これの経緯が機械翻訳の実用レベルで運用の最初の例だと思います。

Google翻訳

コンピュータサイエンスの世界では自然言語の翻訳はとても人気のある研究分野です。古くから多くの研究があります。GoogleはWebから利用できる翻訳サービスを何年も前から提供しています。
結構な精度を達成していて、ちゃんとした日本語を入力すると、ちゃんとした英語に直してくれました。逆に、英語を日本語に翻訳すると、ちょっと違和感がありました。僕らは日本語を母語としているので、日本語のニュアンスの違いに敏感だというのが理由のひとつです。もう一つの理由として考えられるのは、開発者に英語を母語とする人が多いので、英語のちょっとした違いを敏感に修正できるので、必然的に他言語⇒英語の翻訳の開発が先行することです。実際、ロシア語⇒日本語の翻訳は全然ダメです。ロシア語⇒英語、英語⇒日本語はそれぞれそこそこの精度です。でも、ロシア語⇒日本語の場合、ロシア語⇒英語⇒日本語と処理していて、誤差が蓄積するのだと推測されます。
状況が変化したのは、2016年の秋です。GoogleがAI翻訳を導入しました。導入時に試しましたが、そんなにすごいとは思いませんでした。しかし、さっき試して、びっくりしました。精度が極端に上がってる!!

今日の結果

僕のフェイスブックの最近のエントリーでGoogle翻訳を試しました。
https://www.facebook.com/yukihiro.nishikawa.14/posts/1173999572714281?notif_t=like&notif_id=1486083991260932

入力:
こうなってることは、事故直後から様々なデータが暗示していたので、驚きはしません。個人的には滴り落ちた水が心配です。
気になったのは、読売新聞の記事にある「数メートル離れると、推定放射線量は10分の1以下に下がった」の一文。これが観測されるためには、ほぼすべての線源が530Sv/hの付近に密集していなければなりません。ということは、ほぼ全ての核燃料が落下していることを意味します。放射能の封じ込めという点では悪いニュースですが、廃炉作業場所が限定されるという点では、良いニュースです。

出力:
It is not surprising that this kind of data was suggested from immediately after the accident. Personally I am worried about dripping water.
What I became concerned is a sentence in the article of the Yomiuri Shimbun "A few meters away, estimated radiation dose fell below 1/10". In order for this to be observed, almost all sources must be dense near 530 Sv / h. That means that almost all nuclear fuel is falling. Although it is bad news in terms of containment of radioactivity, it is good news in that the location of the waste furnace work site is limited.

これはかなりすごいです。英語と日本語の感性の違いがあるので、ちょっとした違和感は残りますが、十分に理解できます。ちゃんとした文書だと修正が必要ですが、日常会話なら通用します。というか、僕が英語でしゃべるより上手かも?

ロシア語⇒日本語もためしました。こちらはからっきしでした。なんでだろう?

Google翻訳の実力は?

Google翻訳はクラウドサービスなので、時々刻々進歩します。ですが、現時点ですら、大学入試のレベルをかるく凌駕すると、僕は思います。僕の学生で、これほどの英語を書けるのは見たことがありません。少なくとも、語彙はリッチですね。

前節の文例では、that this kindo of data was suggested...に違和感があります。それは日本語の原文があいまいだからだと思われます。because many data, even just after the accident, has suggested this situationというのが本来のニュアンスですが、Google翻訳のような読み方も理論的には可能です。でも、そのレベルのあいまいさが重要になるくらいにまで、到達しているわけです。
後の部分は、違和感はありますが、間違いではない気がします。少なくとも、会話では通じると思います。

さらに、英語にした文章を即座に読み上げる機能もあります。翻訳して、読み上げるということは、writingとspeakingのスキルをコンピュータがやってくれるということです。英語⇒日本語の精度はもう少しな感じですが、時間の問題でしょう。すると、readingも肩代わりしてくれるということです。残るlisteningは、これはすでにかなり良いのです。というのも、英語圏の人々は日常的にスマホに語り掛けているからです。

listening/speaking/writing/readingという4つの言語スキルをすべてコンピュータで代替できる時代が、思っていたよりも早く来そうです。要するに、英語を勉強しなくてよいのです。その代り、僕たちには、英語に自動変換可能な「完璧な日本語を書くスキル」が必要になります。学生の書いたヘボイ日本語は、不正確な英語にしかなりません。あいまいで不完全な文章では、どんなに優秀な翻訳家でも翻訳できないのが道理です。

日本における英語教育は、早急に方針転換すべきだと僕は思います。

関連記事:日本人は英語ができない

2017年2月9日木曜日

錯視について

錯視にまつわる一般論

特定の図形において、長さを間違って知覚したり、あるはずのないものが見えたりすることを、錯視と呼びます。人間の視覚認識におけるエラーと考えられており、主に心理学の一分野とみなされています。錯視の程度に個人差は認められますが、錯視の有無に個人差はほとんどありません。
錯視は高度に発達した人間の脳に特有の現象だと思う人も多いかもしれませんが、錯視は多くの哺乳動物で確認されています。また、魚類にも錯視があると言われています。視覚にかかわる脳の働きに関係があるため、脳科学としても研究されています。
さて、錯視が生じるメカニズムはどんなものなんでしょう?よくわからないので、人気の研究分野です。

錯視の個人差

有名な錯視のパターンの一つが下に示したミュラーリアーの錯視図形です。どのくらい長さが違って感じるかには、個人差がありますが、誰でも下の方が長く感じます。みなさんご存知の通り、長さは同じです。錯視のない人は、基本的にいません。

ミュラーリアーの錯視図形

動物に錯視があるということで、錯視は脳の錯覚ではなくて、光学的あるいは物理化学的な現象だということを示している、と考える人もいるかもしれません。物理や化学が錯視に作用するのは、ちょっと想像できませんが、画像処理的には、少しだけですが、ミュラーリアーの錯視を説明することができます。それは細線化と外挿です。細線化というのは、線を細くする画像処理です。図形を骨格だけにする操作で、人間は頭の中で線画を細線化処理している可能性があります。鋭角の図形を細線化すると、角の位置は少しだけ内側に寄ります。最大で線幅の半分移動します。逆に鈍角の場合は、線幅の半分まで外側の移動する可能性があります。ミュラーリアーの図形では、直線部は少しだけ錯視の通りに補正されます。しかし、最大でも線幅までです。先の図だと、もともと線が細いので移動量はほんの少し。そして、それよりはるかに大きな錯視を我々は感じます。だから、細線化では錯視を説明できません。
外挿というのは、図形が直線で構成されていると仮定して、交点を推定する操作を、ここでは仮にそう呼びました。この操作は、細線化で移動する位置を補正する方向に作用するので、錯視とは逆です。細線化も外挿も画像処理・解析の類なので、数学の範疇です。しかし、それも錯視を説明できません。

錯視はソフトウェアかハードウェアか

さて、誰でも同じように錯視があるなら、錯視の有無はDNAで決まっている、と考えることもできます。魚類にだって錯視があるわけだから、DNAの奥深くに錯視の秘密があるかも知れません。でも直接錯視にかかわっているのは、我々の脳の知覚です。DNAに錯視の情報が組み込まれているなんてことがあるのでしょうか。
我々がDNAについて知っていることは、DNAは体の設計図であるということです。「体」というのは、つまるところハードウェアです。つまり、DNAの情報というのは、主にハードウェアに関するものです。いやいや、生物が異性を生殖のパートナーに選ぶというのはソフトウェアの問題で、それはDNAにプログラムされている、という反論もあるでしょう。でも、そういう感情面の制御は脳内化学物質のバランスが重要で、感情はおおむねハードウェア制御と言えるかもしれないのです。一方、理性は後天的な要素なので、ソフトウェアと考えられます。人間のソフトウェアは、脳内の神経細胞のネットワークで構成されていて、DNAでは、細かなネットワークの構造を記述するには情報量が不足します。だから、DNAをいくら調べても、錯視のメカニズムの記述は見つからないでしょう。
錯視は我々の知覚の問題だと考えると、脳内のネットワーク、すなわちソフトウェアの問題とするのが妥当です。脳内ネットワークの構造は個人で違うはずなのに、なぜ同じように錯視があるのでしょう。錯視に関するソフトウェアが各個人の脳内で自然に発生するなんてことがあり得るのでしょうか。
我々は視覚を赤ん坊のころに発達させています。赤ん坊は目の焦点を合わすのが下手で、視覚はちゃんとあるけど、ものをよく見ることができない、と考えられています。目の焦点を合わせるには、視神経からの入力を脳内で画像として認識し、焦点が合った画像が得られるように眼球にかかわる筋肉を適切に制御する必要があります。最初は焦点が合った画像というのを認識できませんので、どのように合焦機能がビルドアップされるのか、興味が尽きません。一つ確実なのは、これはかなり高度が画像処理だということです。そのような高度な処理を、我々は無意識でやっています。同じような画像処理は最近のデジカメもやっていますが、十分な精度と速度が達成できるようになったのは2010年頃で、ごく最近です。そういう高度な処理なので、赤ん坊のころは、うまくできません。でも、すぐに、みんなできるようになります。できない人を見たことがありません。
視覚にかかわる脳内ソフトウェアに限らず、たくさんの入力を受けると自然に適切なソフトウェア(神経ネットワーク)が発達するというのが、脳の素晴らしい機能です。でも、これ、よく考えると、最近流行の機械学習と同じです。赤ん坊は、合焦機能の次に、空間認識を発達させます。そのとき、物体を線画で抽象化し、形状を推測し、大きさや距離を知覚するようになります。そのプロセスの中で錯視が生まれると考えられます。先のミュラーリアーの錯視図形は三次元空間での物体の認識機能と関係していることが指摘されています。

人工知能は錯視をするか?

さて、錯視が脳内で機能する機械学習プロセスの産物らしいと考えると、すべての人が錯視するということをDNAと関係なく説明できます。また、動物にも錯視があることも説明できます。逆に、錯視が視覚機能の獲得プロセスの副産物であるならば、同じような機能獲得プロセスを持つ系では、同じような錯視が現れる、ということにもなります。つまり、脳の機能獲得プロセスを模倣していると実証されてつつある最近流行の機械学習に基づく人工知能も、錯視を獲得する可能性がある、ということです。人工知能が進歩して、空間認識を獲得するに至ると、ミュラーリアーの錯視が生じると、僕は断言します。それは、その気になれば、結構すぐに実証できるでしょう。もうあるかも。機械学習に基づく画像分類サービスで、黒人とゴリラを取り違えた事件がありましたが、よく見ると誤認しても仕方ないケースがあることが分かります。錯視はそれの延長にあるんじゃないか、ということです。
さて、人工知能が錯視を生じることが実証されてしまうと、錯視の研究は心理学ではなくなります。ギリギリ人工知能心理学という新しい学問を定義できるかもしれません。たぶん、そのうちそういうものが出てくるでしょう。でもそれは、普通の意味での心理学ではありません。
また、普通の意味での脳科学でもなくなるでしょう。脳を数理モデルとして理解するために、人工知能の錯視の研究は脳科学にとどまるかもしれません。でもそれはむしろ数学の範疇かもしれません。
錯視研究は心理学の花形分野の一つです。でも、近い将来、それは心理学ではなくなるということです。これは心理学にとっては激震です。でもそれは、いつ起こるかだけの問題で、確定済みだと僕は思っています。

おまけ:我々の視覚はとても高度だ

僕は重度の糖尿病で、ちょっとだけ網膜症があります。ちょっと前に視野がかけました。そのとき、いろんなことが分かりました。僕たちは何かを見つめているときでさえ、眼球を絶えず動かしているということに気づきました。僕は網膜の一部の神経がかけているのでその部分は灰色に見えます。なぜ灰色なのかわかりませんけどね。
普段、脳の補完機能が働いているらしく、視野が欠けているという事実はほとんど知覚できません。そのため、ほとんど不便はありません。しかし、本を読む場合に、時々知覚します。
本の文字を見つめていると、視野の中心から外れたとこりに見えない部分があって文字がわからないので、それとわかります。少し見つめていると、見えない部分が時々瞬間的に移動していることに気づきました。サケードとかサッケードと呼ばれる眼球運動が理由です。眼球が運動するので、視野も移動するはずなのですが、なんと視野は移動しないのです。いや、視野欠けしている領域は移動しているので、見ている視野は移動しているはずなのですが、知覚している視野は移動していないのです。びっくりしました。
実は、眼球は絶えずぴくぴく運動しているのですが、脳がその運動を補正して、視野を固定しているのです。僕たちはその補正を普段は知覚できません。僕も網膜の一部を失うまでは気づきませんでした。視線検出機で視線を表示すると、不規則なジグザグ線となり、思った以上に視点が移動している、というのをよくテレビで見ます。不規則なジグザグになるのは、視線の検出精度の問題ではなくて、眼球が不規則に運動しているからです。にもかかわらず、僕たちは、そのような不規則な眼球運動に気づくことはありません。僕たちの脳は、高度な画像補正を行い、視野を統合して知覚していると考えられます。
一見無駄に見えるサケードですが、いくつかの利点があります。例えば、多くの視野を統合するので、広い視野が得られます。また、サケードは僕たちの体の運動の知覚と連動していると思われます。自分の体の運動がないのに視野が移動すると、視野の補正がくるってしまい、脳が混乱します。典型例は、乗り物酔いです。また、細かいサケードによって、超解像を得ている可能性があります。つまり、網膜細胞の大きさよりずっと細かな眼球運動で得た画像を合成することで、網膜細胞よりずっと細かな解像度を得ているかもしれない、ということです。これは我々が物体を線画で認識する傾向にあることと関係しているかもしれません。
眼球運動は、細かな直線で構成されていると思われますが、一つの直線運動に着目すると、眼球運動時に輝度の変化が小さい部分は「その方向の線」だということが分かります。逆に、大きい部分は輪郭と判断できます。複数の方向の眼球運動の情報と合わせると、視野を線画、あるいは輪郭にすることができます。それを瞬時に行っているのかもしれません。このレベルの画像処理は、未だコンピュータが到達していない領域です。奥が深いです。