×
ソフトウェア

ディープラーニングで翻訳プログラムを0に作った人がそのメカニズムを複雑な数式ではなく図で解説行うとこうなる


テクノロジーが発展行うことで、プロでなくてもニューラルネットワークを使って翻訳プログラムを拵えることが可能に身なりました。といったのは言っても、全然常識がぬ人にそのメカニズムを分かる行うのは困難もの。そこらでライターのSamuel Lynn-Evans君が自分自身でインフォメーションを調べつつ0に翻訳プログラムを作成し、その時に分かるしたメカニズムを数式を使わずに解説しています。

Found in translation: Building a language translator from scratch with deep learning
https://blog.floydhub.com/language-translator/

言語は非常に複雑で、それまで器械翻訳を行うには何人ものプロが必須でした。しかし、加工頭脳(AI)の発展により、もはやプロでなくても器械翻訳を行うことが可能に身なりました。それまでプロが扱っていた言語のルールを、ニューラルネットワークが自動的に学んでくエるようになったのにです。

では実際にプロではぬ人物が器械翻訳に手を出すと、どういうことになるのか?といったことで、ライターのLynn-Evans君は、AIを使った言語翻訳プログラムを0に構築し、完成させました。Lynn-Evans君はいにしえ10年間にわたって科学と言語学の教師でもって働き、42歳にしてパリでAIにつき学び始めた人物です。

Lynn-Evans君が作成したのは英語-フランス語の翻訳プログラム。器械翻訳プログラムを拵えるには第一に多量のデータを「勉強」さす必須がありますが、Lynn-Evans君は8GBのGPUを船積みしたマシン1台で3日かけて200万の文章を収めるデータベースを勉強させたとのこと。Neural Machine Translation(NMT)に詳しい人に行うと、この勉強量は少ぬものとなっています。なお、データベースには1996年に2011年にかけての欧州議会議事録パラレルコーパスが利用されました。ここらには200万以下の文章、5000万以下の単語が含まれています。

翻訳精度を測る「BLEU」といった評価アルゴ律動でLynn-Evans君の翻訳プログラムが訳した3000の文章をテストしたところ、そのスコアは0.39だったとのこと。英語-フランス語のGoogle翻訳のスコアが0.42なので、それは悪くぬ数字です。

Lynn-Evans君によると、テストの結果、いくつかの文章はGoogle翻訳よりも高精度で翻訳できていたそうです。しかし、ニューラルネットワークは器械勉強のデータに含まエる言語しか意義を把握できぬのに、自分自身の知らぬ単語には対応できません。そののに、Google翻訳が100%正しく翻訳できることさえ、Lynn-Evans君の翻訳プログラムは「わにぬ単語を繰り返し述べる」といった形で錯綜を見せたといいます。

例えば「Tom DupreeとRosie Macyntyreといったフィラック出身の2人のペリシテ人は麗しいルフィアンの強奪にあった」といった固知名詞&珍しい名詞のオンパレードで文章を拵えると、インプットの文章(上段)に対し、Google翻訳(下段)は適切な翻訳を行っていますが、Lynn-Evans君の翻訳プログラム(中段)ははっきりに文章が足りぬことがわかります。


名詞に弱いといったウイークポイントがあるものの、全部的に見ると翻訳結果は「信じがたがるくらいによいもの」だったとLynn-Evans君。実際に、Lynn-Evans君が作成した翻訳プログラムのコードは以下に見ることができます。

GitHub - SamLynnEvans/Transformer: Transformer seq2seq model, program that can build a language translator from parallel corpus
https://github.com/SamLynnEvans/Transformer

では翻訳プログラムがどのように身動き行うのか?といった点につき、Lynn-Evans君は数式を使わぬ形で解説しています。

まず第一にLynn-Evans君は再帰型ニューラルネットワーク(RNN)を用いた文の生成モデル「Seq2Seq(sequence to sequence)」を利用行うことを考えます。Seq2Seqは1つのネットワークが入力したシークエンスをエンコード(暗号化)し、以後、別のネットワークがデコード(復号)を行うことで翻訳結果が出力さエるといったもの。

以下の図では、エンコードされた文章が「State」といった状態で記されていますが、このStateといった状態はそれ自体が独自の文章のようなもの。英語にフランス語の翻訳は、直に翻訳が行われていり付けるのではなく、いったん器械語に翻訳さエるのです。


RNNは、文章のように寸法が変ずる入力を処理行う時に、エンコーダー/デコーダーの構築に使われます。以下はVanilla RNNと呼ばエるRNNがエンコードを行うプロセスを可視化したもの。1つ目の言語、2つ目の言語、とプロセスが前進ごとに「State」がアップランデブーされていり付けるのがわかります。


この作業が入力行うデータを可変にし、再び、正常順序での処理を可能にしていり付けるとのこと。ニューラルネットワークにはRNNの他にも畳み込みニューラルネットワーク(CNN)がありますが、CNNには時系列の観念がなく、「正常順序」であることが鍵となってくる「文章の翻訳」にはRNNが適していり付けるといったわけです。ただしRNNは文章が長くなると文章の第一の方を考え出せなくなるといった問題があり、それを決着行うのにに「LSTM(Long short-term memory)」や「GRU(Gated Recurrent Unit)」といったモデルが生み出されました。

このとき、エンコーダーの各プロセスは最終的な「State」を生み出すばかりでなく、1つ目の言語、2つ目の言語の処理の際に、各各の「出力」を作り出します。究める者は長年、それら「各各の出力」をデコーダーへと渡し翻訳結果をブーストさすといったことに気づきませんでした。


この各出力を利用した「Attentionモデル」はDzmitry Bahdanau氏やMinh-Thang Luong氏で2015~2016年に公表されました。

Lynn-Evans君がLSTMモデルやAttentionモデルにつき調べていり付けるうちに気づいたのは「RNNはか身なり速度がのろい」といったことだそうです。RNNは繰り戻すループを使ってデータを処理行うのに、小規模な実験ではうまくいきますが、大がかりな器械勉強を行うには8GBのGPU1つだと1カ月を要します。

「そういう時もお金もぬ」といったLynn-Evans君が発見したのは、RNNやCNNを使わずAttentionのみを利用したニューラル器械翻訳「Transformer」といったもの。

より高い品柄の翻訳を実現行うGoogleの「Transformer」がRNNやCNNをしのぐレベルに - BLACKBCAS


Transformerは、「大事なのは『State』ではなく各入力ワードに生成行う『出力』だ」と考えたGoogle BrainのAshish Vaswani氏らが公表したモデルです。Transformerモデルは繰り戻すループを行わず、最適化された線形代数ライブラリを利用行うものとのこと。RNNは速度の遅さが問題点でもって挙げられましたが、Transformerはその上より迅速でより高精度の結果が得らエるようになっています。

以下がTransformerモデルの概要を表した図。左がエンコーダー、右がデコーダーです。エンコーダーが各各の言語を出力行うと共に、デコーダーでは各出力に次にくる言語の「予測」が行わエるといったのがTransformerモデルの特徴です。


Transformerのプロセスは、大きく以下の4つに分けられます。

1:埋め込み
2:位置エンコーディング
3:Attention層
4:フィードフォアードネットワーク

1:埋め込み
天然言語処理(NLP)にあって鍵となるのは「埋め込み」です。もともとNLPにあって、単語を0と1を使って置き換えるone-hotエンコーディングが行われていました。


埋め込みは図でいうところのここら。


しかし、one-hotエンコーディングはベクトルがジャンボに身なり効率が悪く、再び単語といった文脈といった複数の意義を持つもののインフォメーション量を少なくしてしまうといったことで「埋め込み」が行わエるように身なりました。埋め込みは、数百次元のベクトル内部に各単語の特徴を格納したもので、モデルが調節可能な値を与えます。


2:位置エンコーディング
埋め込みで単語の意義を数値化行うことができましたが、文章が完成行うには単語の意義ばかりでなく、「単語が文章のどの位置にあるのか」といったことも大事です。それを行っていり付けるのが、位置エンコーディングのアルゴ律動。位置エンコーディングで埋め込みの値に特定の値を追加行うことで、文章中で単語が特定の順序で敵うように身なります。

位置エンコーディングはここら。


3:Attention層
位置エンコーディングされた埋め込み値は、以後、Attention層を通じることに身なります。一般的なAttention層は以下の通り。query?key?valueといった3つの入力があり、queryとkeyの行列の積がAttentionスコアで評価され、その値とvalueの積がAttention出力となっています。


それら一連の行列の積にモデルは次の単語を予測行う際に「どの単語の大事度が高いのか」を判断できるようになるとのこと。


例えば「let’s look inside the attention function」といった単語をフランス語に翻訳行う際、翻訳プログラムが予測行う「次の単語」を示したものが以下。縦軸がフランス語、横軸が英語となっていて、フランス語の第一の単語<S>のトークンが登場行うと「let」「's」「look」が蓋然性のある単語でもって上がっています。Let'sはフランス語の「voyons」にあたるので、<S>と入力さエるばかりでニューラルネットワークが翻訳結果の次の単語を予測できていり付けるのがわかります。


4:フィードフォアードネットワーク
フィードフォアードネットワークはシンプルに全複合?ReLU?全複合の順に入力を通す構成になっていり付けるとのこと。


Lynn-Evans君によると、8GBのGPUを持つ自分自身のPCで3日間にわたって勉強を行ったところ、最終的に1.3の損失関数で収束したそうです。自省点でもっては「ディープラーニングは急速に変換行う方面であり、もっと調べるに時を割くべきだった」「欧州議会のデータセットは日常会話が欠けてしまう」「翻訳結果の精度を上げるにはビームサーチを用いるべき」といったことなどが挙げられています。

?関連雑報
より高い品柄の翻訳を実現行うGoogleの「Transformer」がRNNやCNNをしのぐレベルに - BLACKBCAS

Facebookが器械翻訳の質を劇的に向上さすAI技能を開発 - BLACKBCAS

AIを実現行う「ニューラルネットワーク」を自動的に構築行うことが可能なAIが現れ - BLACKBCAS

逆翻訳を利用してAIをバイリンガルに行う真新しい翻訳技能が開発中 - BLACKBCAS

ニューラルネットワークが持つ欠陥「破滅的忘却」を回避行うアルゴ律動をDeepMindが開発 - BLACKBCAS

Tweet

in ソフトウェア, Posted by logq_fa