network)について説明しましたが、大鵬と言えば柏戸(ふるっ)、ルパン三世と言えば銭形警部、そしてCNNと言えばRNNです。Network)について解説します。CNNとの違い、どのような用途に向いているか、RNNの仕組みなどを理解しておきましょう。network)と比較するために、前回のおさらいしておきましょう。Scholarで公開している数字を画像認識するCNNのブロック図です。maps(特徴マップ)が小さくたくさんになっていきます。Layerで全結合してOutputs(出力層)で5である信頼性が95%という具合にClassification(分類)されている構成よくわかりますね。Scholarhttps://www.semanticscholar.org/paper/Memristor-crossbar-deep-network-implementation-on-a-Yakopcic-Alom/59d7c6c1e0b761aed209b2acbc2a181db29860c7これら一連の処理は、上流から下流に流れるのでフィードフォワード(順伝搬型)ニューラルネットワークと呼ばれています。画像認識など静的な(時間の要素のない)場合に適しています。誤差は逆伝搬してフィルタを変えますが、元画像から特徴を抽出してゆく信号は遡ることがありません。Network)は、ある層の出力が遡って入力される再帰結合を持つリカレント(再帰型)ニューラルネットワークです(図2)。自分の出力をもう一度自分に食わせる、そんなややこしい構造を持つネットワークなのですが、なぜ、このような処理をする必要があるのでしょうか。図2:順伝搬NNと再帰型NNその鍵は時系列と可変長です。前回学んだ画像の文字がマルかバツか判断するCNNは、固定長の静止画を畳み込み処理するだけでした。自然言語処理(NLP)などの領域では、時間の概念が必要となり、入出力のデータサイズも可変となります。例をあげて説明しましょう。あなたはTV番組でどちらが「麻里ちゃん通」なのかAIと勝負することになりました。相手は麻里ちゃんを学習済のAIなので、早押ししないと勝てないかも知れません。図3のような問題が流れてきました。「麻里ちゃんの」「好きな」。ここではまだ解答がわかりませんが、すでに頭の中は激しく回転していて続く言葉として「人は誰か」とか「食べ物はなに」「場所はどこ?」などが浮かんでいます。続く音声の「ケーキは」まで聞いたとき、AI野郎が勢いよくボタンを押しました(しまった、わかっていたのに...)。自信たっぷりに「チーズケーキ」と答えたのです。この流れを時系列でみてみましょう。時点(t-1)で「麻里ちゃんの」、時点(t)で「好きな」と聞き、時点(t+1)で「ケーキは」ときたから問題文の意図が理解できたわけです。この人間なら当たり前のことが、順伝搬NNでは少し難しいのです。「ケーキは」だけだと文の意図が読み取れないので、その前の「麻里ちゃんの」や「好きな」を記憶しておく必要があり、それを可能にする構造が再帰型なのです。時間軸に展開して説明しましょう。図4は再帰型構造を時系列に展開したモデルです。問題文は4つの文節からなるので、4ステップのニューラルネットワークに展開できます。時点(t)の時の隠れ層には、入力層からの「好きな」と前ステップからの「麻里ちゃんの」という2つの入力があり、これを組み合わせ計算します。time)組み合わせるって簡単に言っていますが、実際は2つの入力の重みを考慮した数学的な行列計算です。前回マルという記号を判別するのにも苦労したように、人間が頭の中で自然とできている処理がAI君は結構大変なのです。propagation)で重みを調整するからでしたね(Vol.5参照)。RNNの学習法も同じく逆伝搬による重み調節なのですが、前ステップからの情報も加わるために特別に通時的誤差逆伝搬(BPTT)と呼ばれています。図4:RNNの展開図あれ、その麻里ちゃんがやってきました。「入力層と隠れ層はイメージ湧いたけど、出力層には何が出力されるの?」[RELATED_POSTS]お、そう来ましたか。確かに時点(t)で出力層って何が出力されているのでしょうか。わかっていたつもりで分かっていなかったかもです。う~ん、いつもながらシンプルな疑問ほど難しい...。実は、この答えはAIが何を目的に学習したかによって異なります。Analytics)としてトレーニングしている想定です。時点(t)では「麻里ちゃんの好きな人を尋ねる」のか「麻里ちゃんの好きな場所を問う」のか文意がまだわからず、どの候補も信頼度が低い状態です。時点(t+1)で出力層に「麻里ちゃんの好きなケーキを問う問題」という候補ができ、その信頼度が閾値を超えたからAI野郎はボタンを押したのです。普通に、問題文の意図ではなく、文章全体を予想するモデルでもいいでしょう。時点(t)では、「麻里ちゃんの好きな〇〇」という候補が多すぎて判断つかなかったものが、時点(t+1)までくれば、後ろに「なんですか?」をくっつけた「まりちゃんの好きなケーキはなんですか?」という候補が浮上します。1文章全体を想定出力する→2文章の意図を読み取る→3意図と正解を学習(Classification)した分類器で解答を導き出す、というような3ステップの処理になります。この場合、疑問文になると分かっていないので、「チーズケーキ」という候補を選んでしまう可能性も大きいので、クイズ専用に学習したモデルには負けます。別の目的ならどうでしょうか。Languageで試したらこんな感じでした)。Translation)はどうでしょうか。Translationで試してみました)。ちなみに、ネットなどでは、次に来る単語を予測出力するという例で説明していることが多いようです。Writing)のような実用イメージしか湧かなかったので麻里ちゃんに登場してもらいました。「なるほど、そうなんだ。あ、でも、今はチーズケーキよりも、モンブラン派なんだけどなぁ...。」(ふふ、褒められてうれぴー。僕はもちろん知っていますよ)。AI君は、自然言語理解(NLU)は優れていたのですが、学習データが古くて分類(Classification)の精度がイマイチだったのです。AI君が間違えた後、僕はゆっくりボタンを押してクールに「モンブラン」と答えたのでした!(^^)!人生は、リカレントでない方がいい場合もある実は、将棋の「次の一手」は、これまでの手順にとらわれずに、その局面だけを見て最前手を見つけ出す方がいいです。人間は”前の手の顔を立てて”とか”勢いで”とかを重視して手を選びがちなのですが、AI君がそんな要素を全く無視して最強手段を出すようになってから、人間もそれを見習うように変わりつつあります。小さな嘘をついてしまったから大きな嘘をつく、ああ言ったからそれを正当化する発言をしてしまう、そんなふうに過去に引きずられて悪い方向に行ってしまうこともあるので、リカレントも時には考えものです。はい、全くの余談でした(^^)リカレントニューラルネットワークが使われる技術分野リカレントNNが、時間とともに次々と入ってくる、長さも決まらないのデータを処理するのに向いていることは理解できました。具体的にどのようなところに使われているのかみてみましょう。Processing)代表的な適用分野は自然言語処理(NLP)です。Understanding)という言葉もよく使われますので合わせて覚えておきましょう。NLPはいかにも人間らしい分野で、図5に示すさまざまな用途の総称でもあります。Analysis)テキスト(文章)を読んで、〇〇を出力する処理です。〇〇のところは目的に応じていくつかあります。図6は、それらの例です。機械翻訳なら英文、感情分析なら感情と度合い、タグ付けなら「麻里ちゃん」と「ケーキ」が出力されていますね。Text)でいったんテキストにした後で処理しますが、感情分析のようにそれに加えて声のトーンなど音声情報も使って処理する場合もあります。テキスト分析は、社内ドキュメントに自動タグ付けしてドキュメント検索を楽にするとか、ネット上の技術情報を自動的にスクレイピングするなどに役立ちます。感情分析も、コールセンターのお客が怒っているかとか、従業員で鬱予備軍がいないか、などさまざまな用途で使われつつあります。Translation)2016年にGoogle翻訳の精度が飛躍的に向上したのは、エンジンをディープラーニングに切り替えたからです。翻訳は、入力と出力で言語の長さが異なりますが、元の言語の理解と変換言語の文章生成という2つにリカレント技術が大活躍しています。Homeなどのスマートスピーカーが発売されましたね。私も両方使っていますが、その音声認識精度の高さにはいつも関心しています(といいつつ、以前からブログをGoogleの音声入力で書いていましたが...)。音声認識は入力が可変長の音声で、出力も可変長のテキストです。単なる音の文字化ではなく、文脈をきちんと理解しているからこそ高い精度で変換できるのです。Recognition)はCNNで処理しました。画像を見て何をしているのか説明するような場合は、CNNにRNNを組み合わせて使います。麻里ちゃんがおいしそうにモンブランを食べている写真をインプットすると、最初にCNNで画像認識した後、認識した「1人の女性」「ケーキ」「食べている」などのタグを使ってRNNが「1人の女性がケーキを食べている」というように説明してくれます。なく動画の分析はどうでしょうか。前回のマルを認識するAIで説明しましょう。今回はマルという文字の全体がわからず、図7のように上からスキャンして1/3ずつ画像が渡されて、それをCNNで認識するとします。時点(t+1)のとき、真ん中の画像しか渡されないより、時点(t)の画像も渡してもらう方が的確に判断できますね。こんな感じで動画の場合は、前の映像との連続した情報で判断する必要がありますのでリカレントNN向きです。この技術を使って、ネット上の写真(静止画)だけでなく、動画もタグ付けされている例を見かけます。bot)チャットボットは、話しかけられた言葉から意図を理解して、テキストや音声で適切な応答を行います。いろいろな自然言語理解の技術を組み合わせた1階層上位の技術ともいえます。「ああ言えば、こう言う」というのは親子喧嘩の決まり文句ですが、botもそんなフロー作成を基本としています。言い方を変えても意図をきちんと理解できる柔軟性があり、そのあたりが第2次AIブームのエキスパートシステムから進化しているところです。botの利用範囲はかなり広く、ECサイトの接客ロボだったり、社内システムに対する指示(会話型UI)だったり、いろいろな面で使われつつあります。Assistant)パーソナルアシスタントも上位階層の技術です。チャットボットが単なる会話のやり取りなのに対し、こちらは会話以外にメンバー全員のスケジュールを見て会議室を予約してくれたり、タクシー(米国だとUBER)の手配をしてくれたり、よりインテリジェントなイメージでしょうか。した上位層での応用には、さらにいろいろな技術が組み合わさって使われていますが、人間とのインターフェースに関わる自然言語理解が活躍しています。適用分野はありますが、このくらいにしておきます。リカレントという言葉の意味、なぜ、再帰型構造を持つ必要があるか、どんな分野に使われているか、麻里ちゃんは実はモンブランが好き、などを理解していただければ十分です。まとめリカレントニューラルネットワークは、過去を記憶して利用する技術です。これがずらずらと長い文章だったと想像してください。記憶する範囲が大きくなると、勾配(過去のどの情報がどれくらい影響を及ぼすか)が複雑になり過ぎて伝えるべき誤差が消滅したり(勾配消失問題)、記憶したものをどう生かすかという計算量も爆発的に増えます。そのため、リカレントNNは記憶する範囲をちょっと前までに限定していて、それ以前のものは切り捨てています。time)とも言います。現実社会では、もう少し前までの情報を使わないとうまくいかないものもあります。Memory)という技術で、日本語では長・短期記憶ユニットと呼ばれています。次回は、このLSTMについて解説しますのでお楽しみに。