越境するコンピューター

越境するコンピューター

新しいコンピューターとの付き合い方 〜コンピューターと意思決定と人間〜

シンプソンのパラドックス超概要 〜因果関係は重要だ〜 

シンプソンのパラドックスってご存知ですか?

同じデータなのに「全体で見るか」「分割して見るか」で見え方が変わるという面白い事象です。

また、面白いだけでなくデータを扱う上での大事な考え方を教えてくれます。

今日は受験生の悩みという、比較的身近な話題を例にシンプソンのパラドックスについて述べてみたいと思います。

受験生の悩み

一年後に受験を控えた受験生の太郎さんは、これから本格的に受験勉強しようと思っています。

勉強にあたり「A塾に通うか?」「自力で勉強するか?」悩んでいて、情報を収集しています。

最初に入手した情報

過去の情報から合格率を比べてみると、A塾生の方が高い

f:id:kenshi18:20191019091542p:plain

太郎さんは

「気持ち程度だが、塾生の方が合格率上なんだったら通ってみるか」

と思いました。

次に入手した情報

そこに新たな情報、さっきと同じデータを2つのグループに分割して比べると一般受験生の方が合格率が高い!

f:id:kenshi18:20191019081023g:plain

太郎さんは

「確かに全体で見るとA塾生の方が合格率が高いが、それを分けたグループA,Bは両方とも一般受験生の方が合格率が高い、どちらを信じればいいのか?」

と悩んでしまいました。

これがシンプソンのパラドックスと呼ばれる状態です。

同じ数字から異なる判断が生まれる

実は、ここまでの情報だけでは「どちらを信じればいいのか?」の判断はつきません。

「何を基準にグループ分けされているか?」を知って初めて判断が出来ます。

以下、2つの異なるシナリオで太郎さんの判断をみてみましょう。

シナリオ1 事前の学力テストでグループ分け

この分類が「入塾前に事前に実施された学力テストの結果」に基づく分類だとわかったとします。

f:id:kenshi18:20191019081026g:plain

これをみた太郎さんは

「もともと学力の高かった受験生がA塾に入ってるようだ、A塾の合格率が高いのはもともと学力の高い受験生がたくさんいるからで、塾の効果とは言えなそうだ」

と結論づけ、自力で勉強する道を選びました。

シナリオ2 勉強時間でグループ分け

この分類が「夏休み終了時(時期的には入塾の5ヶ月後)に調査された1日の勉強時間」に基づく分類だとわかったとします。

f:id:kenshi18:20191019081029g:plain

これをみた太郎さんは

「A塾に入ると勉強する習慣が身について、それで合格率が上がっているのか、塾の効果ありそうだ」

と結論づけ、入塾を決めました。

データの因果関係を把握しよう

同じ数字で太郎さんの選択結果が違ったのは、太郎さんが想定したデータ間の因果関係が違うからです。

事前の学力テストのケース

太郎さんは頭の中で

f:id:kenshi18:20191019081031g:plain

「事前の学力が、入塾と合格率の両方に影響を与える」

という因果関係を想定し、事前学力で分類された合格率を元に判断しています。

勉強時間のケース

太郎さんは頭の中で

f:id:kenshi18:20191019081034g:plain

「入塾が、勉強時間に影響を与え、勉強時間が合格率に影響を与える」

という因果関係を想定し、全体の合格率を元に判断しています。

因果関係

このように、データ間の因果関係をどのように想定するかで、データを見る適切な切り口は変わってきます。因果関係の理解は適切なデータ分析のために重要です。

以上、シンプソンのパラドックスについて超概要を述べてみました。

因果関係について、もっと詳しく知りたい方は下記の書籍をおすすめします。

参考書籍

データ分析の力 因果関係に迫る思考法 (光文社新書)

データ分析の力 因果関係に迫る思考法 (光文社新書)

入門 統計的因果推論

入門 統計的因果推論

  • 作者: Judea Pearl,Madelyn Glymour,Nicholas P. Jewell,落海浩
  • 出版社/メーカー: 朝倉書店
  • 発売日: 2019/08/28
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
f:id:kenshi18:20191019080944g:plainf:id:kenshi18:20191019081023g:plainf:id:kenshi18:20191019081026g:plainf:id:kenshi18:20191019081029g:plainf:id:kenshi18:20191019081031g:plainf:id:kenshi18:20191019081034g:plain

IBMを退職して本日からフリーになりました

7月末で29年間勤務した日本IBMを退職しました。

本日からフリーランスとして活動を開始します。

今日は活動開始記念に、今後の活動の目標を綴ってみたいと思います。

どうぞよろしくお願いいたします。

「越境するテクノロジー

人類の歴史を振り返って見ると、ときおり従来の枠に収まらない新しいテクノロジーが出現し、それが社会を変える原動力となっています。

このような従来の枠組みを超えていくテクノロジーを筆者は ”越境するテクノロジー” と名付けました。

古くは文字、その後印刷、近代に入って自動車、電話、つい最近ではインターネットなど

これらのテクノロジーは社会を大きく変えましたが、その新規性ゆえ、出現の際には様々な混乱も生んでいます。

  • 文字 : 文字を使うと人間の記憶力が悪化する(迷信)
  • 写真 : 写真撮ると魂を取られる(迷信) 
  • 電話 : 通信手段として考慮するにはあまりにも欠点が多い(過小評価)
  • コンピューター : 全世界でせいぜい5台ぐらいしか売れない (過小評価)

これらの混乱が生じる原因は、大きく分けて二つに分類できます

  • 新たなテクノロジーを理解しないため生まれる過大評価と迷信
  • 適用分野を従来の枠で考えてしまったために生まれる過小評価と見誤り

新しいテクノロジーが人口に膾炙するためには、これらのハードルを超える必要があります。

テクノロジーがハードルを越えるために

ハードルを越えるためには「新しいリテラシー」が必要だと筆者は考えます。

新しいリテラシーとは?

あるテクノロジーに精通している人が、その活用に長けていることは稀です。

通常新しいテクノロジーを作る人と、その活用を考え発展させていく人は別なのです。

テレビを作った人と、それを活用してテレビドラマを作る人に必要な能力は全く別のものですよね

よって、新しいテクノロジーの活用を促し、発展させるためには、その分野の専門家でなくても理解できるテクノロジーの説明体系を構築することが重要です。

テレビが映る仕組みを詳細に知らなくても、中に人が入ってるんじゃないことはみんな知ってますよね。一方AIでは鉄腕アトムのようなものがすでに存在していると思っている人がいます。

この説明体系を、越境するテクノロジーのための「新しいリテラシー」と呼びます。

新しいリテラシーは、万人にわかるような簡単なものであると同時に、正確なものである必要があります。その構築のためには新しいテクノロジーとその周辺を深掘りする必要があります。

難しいことを簡単に説明するのが一番難しい、ということです

筆者はこのリテラシーを構築することに大きな魅力を感じています。

いま越境するテクノロジー

さて、実際問題今そんなテクノロジーはあるのでしょうか?

筆者の視野でIT業界を見渡すと、これまでの枠を超えるポテンシャルを持ち、今まさにハードルを越えようとしているテクノロジーが3つあります。

AI、ブロックチェーン量子コンピュータ

それぞれのテクノロジーについて、筆者の考える可能性を述べさせていただきます。

ブロックチェーン

最初は仮想通貨であるビットコインに使われているテクノロジーとして登場しましたが、仮想通貨の実装以外の様々な活用の可能性が認識され今はビットコインからスピンオフして単独でフォーカスが当たっています。

持っているポテンシャル : 社会・経済の仕組みを構築する

ブロックチェーンには多くの分野での可能性があります。あえて一つ挙げると、筆者は新たな社会・経済の仕組みを構築する基盤としてのブロックチェーンに高い可能性を感じています。

そのポテンシャルを引き出す為には社会学・経済学の分野の知見(マーケットデザイン理論など)を取り入れた議論を行い「新しいリテラシー」を構築するがあると考えています。

混乱 : 基軸通貨になりうる

一方でビットコインは「基軸通貨を置き換える」という説が、経済で通貨が担っている機能を無視したまま語られているなど混乱が残っています。

これは、通貨の担っている役割を考慮に入れた議論を行っていくことで解消されていくと考えています。

AI

クイズ王に勝利、十年は難しいと思われていた囲碁名人に勝利、など目を引く成果とあいまって大きな注目を浴び、第三次AIブームとなっています。

持っているポテンシャル : 人間の意思決定を支援する

現在のAIブームを支えている機械学習と呼ばれるテクノロジーには多くの可能性がありますが、筆者は意思決定を支援する基盤としての機械学習に高い可能性を感じています。

そのポテンシャルを引き出すためには、従来からある意思決定の手法(経営学、経済学など)と、意思決定支援の手法(数理統計学など)を取り入れた議論を行い、それらを統合した「新しいリテラシー」言い換えると「新しい意思決定理論」を構築する必要があると考えています。

混乱 : 人間を超える、仕事を奪う

一方でAIでは「人間を支配する」など、SFと現実がごちゃ混ぜになったような説がまことしやかに語られており混乱が生じています。

高いポテンシャルを持つ機械学習がここで埋れてしまわないためには、ビットコインからブロックチェーンがスピンオフしたようにAIと機械学習を分けて考える必要があると考えています。

しかしAIブームのおかげで、これまで議論の俎上に乗らなかった「人間とは?」「知能とは?」を考える土壌ができたのは良いことだと思います。

今後多様な分野の知見(科学哲学、数理科学、脳科学認知科学、その他たくさん)を取り入れた議論が活発になっていけばこの分野での「新しいリテラシー」が醸造されていくと思っています。

量子コンピュータ

量子コンピューターは量子力学の手法を使って、従来のコンピューターでは時間がかかり過ぎて解けなかった問題を高速に解く可能性を持ったテクノロジーです。

実現はまだ先と思われていましたが、ここ数年で実装が出てきました。

まだ本格的な実用段階に到達するまでには少し時間がかかりそうですが、今後の進展に高い注目が集まっています。

持っているポテンシャル : 特定の処理の高速化

量子コンピューターが実用化されると、これまで「計算方法はわかるけど膨大な時間がかかるから解くことが出来ない」とされていた問題を解くことができるので、いろんな分野での活用が期待されます。

筆者はそれに加えて、量子コンピューターの可能性を把握し、その適用方法を検討する過程で、コンピューターの性能の限界と可能性、そこから発展して科学の可能性と限界について議論し見直す機会が生まれると考えています。

この議論を経て作られた「新しいリテラシー」は、他のテクノロジーと対峙する新たな汎用的な視座となりうると考えています。

誤解 : なんでも高速になる

一方で量子コンピューターを使うと、なんでもかんでも高速になるという誤解もあります。

この誤解は「新しいリテラシー」を構築してく中で解消されていくと考えています。

これからの活動

新しい革新的なテクノロジーが社会で活用する土台(リテラシー)を作る現場に立ち会い、微力ながらもそれに貢献する、これが私の活動の目標です。

もちろん私一人の能力と力には限界があるので、様々な分野の方の力をお借りして活動していければと思っております。 個々の具体的な活動については今後ブログでも報告させていただきたいと思っています、よろしくお願いします。

関連リンク Qiita Twitter

blogs.itmedia.co.jp

参考文献

ブロックチェーン関連

アンドレアス・M・アントノプロス (2016)『ビットコインとブロックチェーン』NTT出版

デイヴィッド・バーチ (2018)『ビットコインはチグリス川を漂う』みすず書房

アルビン・E・ロス(2016)『Who Gets What』日本経済新聞出版社

AI関連

Sebastian Raschka (2017)『Python Machine Learning』Packt Publishing

イツァーク・ギルボア (2013)『意思決定理論入門』みすず書房

ジュリオ・トノーニ (2015)『意識はいつ生まれるのか』亜紀書房

量子コンピューター関連

竹内繁樹(2005)『量子コンピュータ―超並列計算のからくり』講談社

レオン・レーダーマン(2014)『詩人のための量子力学』白揚舎

マーカス・デュ・ソートイ()『地の果てへの旅』新潮社

AI都市伝説 ディープラーニング「"目" だ "耳" だ "人間"だ」理論

AIブームですね

ディープラーニングの記事で特徴抽出をこんな風に説明している記事を最近よく見かけます。

質問 : ディープラーニングはどうやって画像が人間の顔だと判断するのですか? 答え : ディープラーニングは画像からまず"耳"、"目"、など顔の部品の特徴を自動的に抽出して把握し、それらの特徴を組み合わせて「人間の顔」と判断します

一見もっともらしく聞こえますね

では、これは?

質問 : テレビははどうやって人間の顔を画面に映すのですか? 答え : テレビはまず"耳"、"目"、など顔の部品を画面に映します、それらの画像を組み合わせて「人間の顔」を映します。

こちらはほとんどの人が質問に答えてくれてないと感じますね

二つとも論理展開に無理がある

テレビの場合

質問している人が知りたいのは「三次元の物体が二次元のテレビ画面に映る仕組み」 回答する人は「耳が映って、目が映って、人間の顔が映るんだよ」という的外れな答えなので画像化の仕組みが全くわかりません。 こんな回答されたら「じゃあどうやって耳を写すんですか?」と追加質問したくなりますよね。

ディープラーニングの場合

質問している人が知りたいのは「ディープラーニングが画像を認識する仕組み」 回答する人は「耳を認識して、目を認識して、人間の顔と認識するんだと」という的外れな答えなので認識の仕組みが全くわかりません。 でも、この回答で「ああ、そういうもんなのかなぁ。。」と納得してしまう人も多いのではないでしょうか。 そこで納得せずに「じゃあディープラーニングはどうやって耳を認識するんですか?」と追加質問しましょう。

ディープラーニングなど機械学習で言われている特徴って人間が直感的に把握する特徴(耳、目、とか)とは全く違います。その話はまた今度。

AI都市伝説 暴走つみれ汁 〜AIが人類の脅威?ならイワシもやばい?〜

AIの暴走に警鐘を鳴らす意見、最近よく聞きますね

GoogleのAIが人間の囲碁名人に勝利した時には

囲碁というゲームの中でとはいえ、"自ら考え"、"独創的な手を生む"AIの登場には「暴走」への懸念がつきまとう』

もっともらしいと感じる方も多いのではないでしょうか?

では、これは?

『つみれ汁の中でとはいえ、他の素材と調和しながら"自ら主張"し、"独自の風味を生む"イワシには「暴走」への懸念がつきまとう』

こちらはほとんどの人が無理があると感じますね

何が違うのか?

イワシの場合

イワシがどういうものか?」みんなに共通の認識があります。

"自ら主張"、"独自の風味を生む" というのがイワシを料理に使うときの比喩表現だとみんなすぐ分かります。 なのでその後に "「暴走」への懸念" と出てくると強い違和感を感じます。

AIの場合

「AIがどういうものか?」実は共通の認識ってまだありません。

"自ら考え"、"独創的な手を生む" という表現の受け取り方が人によって違います。

AIという言葉からターミネーターのようなSF的なものを思い浮かべる人は?

"自ら考え"、"独創的な手を生む" を比喩ではなく額面通りに受け取るので、最後に出てくる"「暴走」への懸念" のくだりも違和感無いでしょう。

AIという言葉から現段階でAIと呼ばれるテクノロジーが実現できていることを思い浮かべる人は?

"自ら考え"、"独創的な手を生む" をAIと呼ばれているテクノロジーがやってることを擬人化した比喩表現にすぎないと受け取るので、最後に出てくる "「暴走」への懸念" のくだりにイワシ文書と同じくらいの大きな違和感を感じるでしょう。

AIの擬人化には気をつけよう

擬人化した表現は難しいことを直感的に分かりやすく伝えるのにとても役立ちます。

しかし、AIのような定義が定まっていないものを論じる時に使うと、受け手ごとに大きく異なる解釈が生じる可能性があるので注意が必要です。

ちなみに、ターミネーターのようなSF的なAIはこの世に存在しません。

ゼロから始める機械学習 〜悩めるシステムエンジニアの方に向け連載開始〜

 

qiita.com

qiita.com

 

長年IT業界に身を置くシステムエンジニアにとっても機械学習って結構ハードルが高いです。

「入門書を手に取ったけど数ページ進んで数式が出てきたところでギブアップ」

という方も多いのではないでしょうか?

「学生時代に理系専攻で数学をバリバリやってた」という人なら話は別ですが「学生時代文科系だったけどIT業界に入ってシステムエンジニアやってます」という方にとっては巷に出ている「機械学習入門書」はかなりハードルが高いと思います。

でも勘違いしないでください、あなたが理解できないのはあなたの頭が悪いからではありません、あなたが理解するための前提知識を身につけていないだけなんです。

連続ドラマに例えると、5話目からから観るとストーリーわかりませんよね、それは1〜4話のストーリーを知らないからですよね。

機械学習も同じこと、巷の「機械学習入門」はある程度の数学の知識(線形代数微分積分、統計など)を前提にして書かれているものがほとんどです。この前提知識を身につければ機械学習のハードルはぐっと下がります。

「でも前提知識って数学なんでしょ?学生時代数学苦手だったから私には無理かも」と思っているあなた、安心してください、絶対大丈夫です。

数学の知識といっても決して難しいものではありません。少なくともシステムエンジニアとして仕事をしているあなたなら、慣れてしまえば「なんだ、こんな簡単なことなのか」と思える日が必ず来ます。

機械学習に必要な前提知識を身につけるのに、重要なポイントが二つあります

  • 何の役に立つのかを理解する
  • 数式に慣れる
何の役に立つのかを理解する

機械学習に必要な数学の前提知識(線形代数微分積分、統計など)のわかりやすい入門書は沢山あります。機械学習に必要だからという理由でこれらの入門書で勉強を始めた人が挫折する大きな理由として「機械学習にどう役立つか分からんのでやる気が出ない」というのがあると思います。目的がわからないまま基礎練習ばっかりやらされてる感じが、時間の無い多忙なシステムエンジニアには厳しいですよね。

まず「機械学習でこう言う風に使われるから必要なんだ」と理解してから勉強すると、目標が見えるのでやる気が出ますし、実践的な理解が可能になります。

数式に慣れる

「数式を一つ追加すると本の売り上げが半分に落ちる」という話がまことしやかに囁かれるほど、数学に馴染みのない人にとって数式はハードルが高いようです。

しかしシステムエンジニアのあなたはこれまでの仕事でプログラムを書いたり読んだり、システム設定のパラメーターを調整したりしたことがあると思います。

数式も一つのプログラム言語のようなものです、慣れるまでは何を言いたいのか読み解くのに時間がかかりますが、慣れてしまえば「確かに、文書で書くよりシンプルでわかりやすい」と思えるようになります。

プログラム言語を習得した時のことを思い出しましょう。システムエンジニアなら必ず数式を楽に読み解けるようになります。

ゼロから始める機械学習

筆者はAIのコミュニティーを立ち上げ活動を行っており、その活動の一つとして機械学習入門をコミュニティーメンバーと実施しています。

この活動をする中で「数学の前提知識を持たないシステムエンジニアの方は多い、そんな方たちが機械学習の知識をスムーズに身につける手助けができれば」との思いを持ち、連載を開始することを思い立ちました。

「前提知識ゼロの方にも理解できるわかりやすい内容にすること」「分かりやすさのために正確性を犠牲にしないこと」を目標に、コミュニティー活動を通じて得たフィードバックを織り交ぜながら進めていきます。

記事はQiitaに投稿していきます、こちらに投稿したリンクを添付していきますので、よろしくお願いいたします。

 

 

 

 

 

劇的精度向上で話題のディープラーニングを使った翻訳の仕組み

ちょっと前までコンピューター翻訳って「なんとか理解できるけど、かなりぎこちない」という印象でしたが、最近は驚くほど流暢な翻訳をしてくれます。この劇的と言える品質の向上、実はディープラーニングによって実現されています。

今日は、ここ数年でコンテストや実際の活用場面で従来の方法を上回る結果を出して注目を浴びている "ニューラル翻訳"と呼ばれるディープラーニングを使った仕組みについて記してみたいと思います。

ニューラル翻訳による機械翻訳

ニューラル翻訳による機械翻訳和文英訳を例に説明します。

1.ざっくりどんな仕組みか?

大量の日本文と英訳文のセットを使ってニューラル翻訳に対する学習を行います。適切な学習をさせた後日本文を入れると、翻訳された英文が出てくるようになります。

以下では学習が完了したニューラル翻訳で和文英訳を行う際の動きを使って、その仕組みを説明します。

2.ニューラル翻訳への入力前の下準備

2-1.単語分割

ニューラル翻訳への入力は単語単位になりますので、まず文書を単語分割する必要があります。英語の場合単語の間にスペースあるので比較的簡単ですが日本語は単語の切れ目が無いので少し難易度は高いです。形態素解析と呼ばれる単語分割の方法を使ってこれを行います。今回は形態素解析については詳細を記しません「単語を分割する仕組みがあるんだ、それをやってくれる仕組みがあるんだ」と理解いただければ大丈夫です。

  • 今日はいい天気ですね → '今日' , 'は' , 'いい' , '天気' , 'です'

2-2.one-hotベクトル

コンピューター扱えるのは基本的に数値データのみですから入力に先立ち、単語を数値情報に変換する必要があります。単語の数値変換に使われるがOne-Hotベクトルです。語彙数分の次元を持つベクトルを準備し、単語に割り当てられた要素のみを1で他は0に設定することで単語を表現します。難しそうに聞こえますがやってることはシンプルです。

'今日' , 'は' , 'いい' , '天気' , 'です' をone-hotベクトルで表現してみましょう。

  • ‘今日’ → 1 (1,0,0,0,0)
  • ‘は’  → 2 (0,1,0,0,0) 
  • ‘いい’ → 3 (0,0,1,0,0)
  • ‘天気’ → 4 (0,0,0,1,0) 
  • ‘です’ → 5 (0,0,0,0,1)

ここでは簡単のため5次元にしましたが、実際は日本語の語彙はもっともっとたくさんあるのでベクトルはもっと高次元(例えば10万)になります。

 *ベクトルというと難しいそうですが、要するにこういうふうにいくつかの数字を並べてセットにしたものです。上の例では5つの数字がならんでるので5次元ベクトルといいます。
 

2.ニューラル翻訳の内部構造

ニューラル翻訳は大きく2つのパートに分かれています。前半パートでは入力された日本文の情報をベクトルに詰め込む作業を行います。後半パートでは作成した日本語ベクトルを元に英文を出力する作業を行います。

2-1.前半パート(日本語情報を符号化する)

ここでは入力された日本語情報を表現するベクトルが作成されます。このパートは2つの層で構成されています、それぞれの層を見ていきましょう。

(1)単語を符号化する(符号化埋め込み層)

ニューラル翻訳の最初の層です。この層では入力されたone-hotベクトルを分散表現ベクトルに変換します。

one-hotベクトルは通し番号振ってるだけに等しいので単語と単語の類似性とか関連性などを表現できません。そこでこの層で入力のOne-Hotベクトルを、複数のベクトル要素で単語を表現する分散表現ベクトルと呼ばれるものに変換します。学習を通じて分散表現が適切な値に設定されれば、意味の似た単語は似た分散ベクトルの値というように単語の関連性を表現できるようになります。

下記の例では5次元のOne-Hotベクトルを3次元の分散表現に変換しています

  • ‘今日’→ 1 (1,0,0,0,0)  分散表現 (0.3, 0,4, 0,5)
  • ‘は’→     2 (0,1,0,0,0)  分散表現 (0.2, 0,8, 0,3)
  • ‘いい’→ 3 (0,0,1,0,0)  分散表現 (2.0, 0.6, 3.0)
  • ‘天気’→ 4 (0,0,0,1,0)  分散表現 (0.6, 3.2, 5.0)
  • ‘です’→ 5 (0,0,0,0,1)  分散表現 (1.3, 4.5, 0.4)

one-hotベクトルは5次元のベクトルのうち1つだけ1で他は0でした。一方分散表現では3次元のベクトルの複数のベクトル要素に値がセットされ単語を表現しています。複数のベクトル要素で表現しているので分散表現と呼ばれます。

(2)日本文を符号化する( 符号化再帰層)

前の層で分散表現に変換された単語を順番に入力して、日本語の文書のベクトルを作成します。この層は作成されたベクトル情報を次のステップで入力として使う再帰ニューラルネットワークという仕組みになっています。

例を使ってみてみましょう。

  • Step#1 ‘今日’                                 → 日本文ベクトル#1
  • Step#2 ‘は’  + 日本文ベクトル#1     → 日本文ベクトル#2 
  • Step#3 ‘いい’ + 日本文ベクトル#2     → 日本文ベクトル#3
  • Step#4 ‘天気’ + 日本文ベクトル#3     → 日本文ベクトル#4
  • Step#5 ‘です’ + 日本文ベクトル#4     → 日本文ベクトル#5 

再帰構造になっているので、各ステップで前のステップで作成された日本文ベクトルを入力として使っています。この層の処理が完了し、最終的に作成された日本文ベクトル#5には日本文を構成する全ての単語情報が入っています。

2-2.後半パート(英訳を行う)

ここでは符号化層で作成された日本語情報を表現するベクトルを元に英訳文を出力します。

  • Step#1 日本文ベクトル#5 + BOS     → 英訳ベクトル#1 →  "It"
  • Step#2 英訳ベクトル#1    + "It"        → 英訳ベクトル#2 →  "is"
  • Step#3 英訳ベクトル#2    + "is"       → 英訳ベクトル#3 →  "fine"
  • Step#4 英訳ベクトル#3    + "fine"    → 英訳ベクトル#4 →  "today"
  • Step#5 英訳ベクトル#4    + "today" → 英訳ベクトル#5 →  "EOS" 

各ステップの動きをみてみましょう。

Step#1では

前半パートで作成した "日本語ベクトル#5" とこれから英文開始しますという特殊文字記号 "BOS" を入力に変換処理を行い、"英訳ベクトル#1"が作成されます。

作成された"英訳ベクトル#1"を入力に変換処理を行い、英訳文の最初の単語 "It" が作成されます。

Step#2では

Step#1で作成された"英語ベクトル#1"と出力された英単語 "It"を入力に"英訳ベクトル#2"が作成されます。

作成された"英訳ベクトル#2"を入力に変換処理を行い、英訳文の2番目の単語 "is" が作成されます。

この後同じように処理を繰り返して行き、"EOS:(End of Sentence)"が出力されたら終了します。

今までの仕組みとの違いと可能性

従来の機械翻訳の仕組みは自然言語処理に必要な色々な部品を組み合わせて作られていました。実装に当たってはまずそれぞれの部品の学習を行い、学習済みの部品を組み合わせたものに対して翻訳の学習を行うという作業が必要でした。

ニューラル翻訳は一つのニューラルネットで翻訳を行うので、従来の方法に比べると学習方法がシンプルです。従来の仕組みの場合は各部品の学習のために部品の学習に特化したデータを作成する必要がありましたが、ニューラル翻訳の場合は実際の翻訳データだけあれば良いのでデータ収集も簡単です。

また従来の部品による構成だとある程度入力と出力の関係を考慮して部品の構成を考えて実装する必要がありましたが、ニューラル翻訳の場合はそういった中間層を考慮する必要がありません。

これを応用すればこれまで入力と出力の関係の定義が難しいため機械学習の対象にすることができなかったような処理も可能になります。この系列変換モデルという仕組みを使って画像情報を入力にその説明文を出力するような学習も実装され始めています。

 

参考書籍 

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

 

 

岩波データサイエンス Vol.2

岩波データサイエンス Vol.2

 

 

統計的自然言語処理の基礎

統計的自然言語処理の基礎

 

 

文系のための人工知能 人工知能をめぐる都市伝説 〜なぜ誤解は生まれるのか?~〜

文系のための人工知能の連載はこちらに引っ越しました。

blogs.itmedia.co.jp

Hatenaブログでは引き続き日々の由無し事を綴っていきますのでよろしくお願いします。

このサイトの掲載内容は私個人の見解であり、必ずしも私が所属する会社、組織、団体の立場、戦略、意見を代表するものではありません