RNN (リカレント ニューラル ネットワーク) の背後にある数学の図解説明

RNN (リカレント ニューラル ネットワーク) の背後にある数学の図解説明

導入

最近では、機械学習、ディープラーニング、人工ニューラルネットワークに関する議論がますます増えています。しかし、プログラマーは多くの場合、これらの魔法のフレームワークを使いたいだけであり、舞台裏でどのように動作するかを知りたがらない人がほとんどです。しかし、その背後にある原理を理解できれば、それを使用したほうが良いのではないでしょうか。

今日は、リカレント ニューラル ネットワークと、その背後にある基本的な数学的原理について説明します。この原理により、リカレント ニューラル ネットワークは他のニューラル ネットワークではできないことが可能になります。

〄 RNN(リカレントニューラルネットワーク)。

この記事の目的は、リカレントニューラルネットワークの機能と構造を直感的に理解できるようにすることです。

ニューラル ネットワークは通常、独立変数 X (または独立変数のセット) と従属変数 y を受け取り、X と y 間のマッピングを学習します (これをトレーニングと呼びます)。トレーニングが完了すると、新しい独立変数が与えられたときに、対応する従属変数を予測できるようになります。

しかし、データの順序が重要な場合はどうなるでしょうか?すべての独立変数の順序が重要だとしたらどうなるでしょうか?

これを直感的に説明しましょう。

それぞれのアリが独立変数であると仮定する限り、1 匹のアリが異なる方向に進んでも、他のアリには影響しないはずですよね?しかし、アリの順序が重要な場合はどうなるでしょうか?

この時点で、1 匹のアリがグループを逃したりグループから離れたりすると、その後ろにいるアリに影響が及びます。

では、機械学習の分野では、データのどのような順序が重要なのでしょうか?

  • 自然言語データの語順問題
  • 音声データ
  • 時系列データ
  • ビデオ/音楽シーケンスデータ
  • 株式市場データ

では、全体的な順序が重要なデータを RNN はどのように解決するのでしょうか? RNN を説明するために、自然なテキスト データを例として使用します。

映画のユーザーレビューに対して感情分析を実行しているとします。

「この映画は良い - 肯定的」から「この映画は悪い - 否定的」へ。

単純な Bag of Words モデルを使用して分類し、予測 (肯定的または否定的) することはできますが、待ってください。

レビューでこの映画は良くないと言われたとしたらどうしますか?

BOW モデルではこれは良い兆候だと言っているかもしれないが、そうではない。そして、RNN はそれを理解し、否定的な情報として予測します。

1. RNN はどのようにそれを実現するのでしょうか?

1. さまざまなRNNモデル

(1)1対多

RNN は画像などの入力を受け取り、単語のシーケンスを生成します。

(2)多対一

RNN は単語のシーケンスを入力として受け取り、単一の出力を生成します。

(3)多対多

次に、2 番目のモードである多対 1 に焦点を当てます。 RNN への入力は時間ステップとして考慮されます。

例: input(X) = [" this ", " movie ", " is ", " good "]

これのタイムスタンプはx(0)、映画のタイムスタンプはx(1)、のタイムスタンプはx(2)、goodのタイムスタンプはx(3)です。

2. ネットワークアーキテクチャと数式

RNN の数学的世界に飛び込んでみましょう。

まず、RNN セルが何で構成されているかを理解していきましょう。フィードフォワードニューラルネットワーク(FFNN)の一般化についてはご存じだと思います。

〄 隠れ層に単一のニューロンを持つフィードフォワードニューラルネットワークの例。

〄 単一の隠れ層を持つフィードフォワードニューラルネットワーク。

フィードフォワード ニューラル ネットワークには、X (入力)、H (隠し要素)、Y (出力) があります。隠し層の数は任意ですが、各隠し層の重み W と各ニューロンに対応する入力重みは異なります。

上記では、出力 Y に対する 2 つの異なる層の重みに対応する重み Wy10 と Wy11 があり、Wh00、Wh01 などは入力に対する異なるニューロンの異なる重みを表しています。

時間ステップのため、ニューラル ネットワーク ユニットにはフィードフォワード ニューラル ネットワークのセットが含まれます。ニューラル ネットワークには、順次入力、順次出力、複数の時間ステップ、複数の隠れ層という特性があります。

FFNNとは異なり、ここでは入力値だけでなく、前のタイムステップ値からも隠れ層の値を計算します。隠れ層の重み (W) は各タイムステップで同じです。以下に、RNN の全体像とそれに関連する数式を示します。

図では、時間ステップ t における隠れ層の値を計算しています。


〄 異なる活性化関数。

上記では Ht のみを計算しましたが、同様に他のすべての時間ステップも計算できます。

ステップ:

以下の点に注意してください。

フィードフォワード入力が完了したら、クロスエントロピーをコスト関数として使用して、エラーを計算し、バックプロパゲーションを使用してエラーを逆伝播する必要があります。

3. BPTT (時間経過によるバックプロパゲーション)

通常のニューラル ネットワークの仕組みがわかっていれば、残りは簡単です。そうでない場合は、このアカウントの人工ニューラル ネットワークに関する以前の記事を参照してください。

次のことを計算する必要があります。

  • 1. 出力(隠れユニットと出力ユニット)に対する合計誤差はどのように変化しますか?
  • 2. 重み (U、V、W) に応じて出力はどのように変化しますか?

W はすべてのタイムステップで同じなので、戻って更新する必要があります。

〄 RNN での BPTT。

RNN でのバックプロパゲーションは ANN でのバックプロパゲーションと同じであることを覚えておいてください。ただし、ここでは現在のタイム ステップが前のタイム ステップに基づいて計算されるため、最初から最後まで前後に移動する必要があります。

連鎖律をこのように適用すると

〄 バックプロパゲーションチェーンルール。

W はすべての時間ステップで同じなので、連鎖律によって項の数が増えます。

例に戻る

さて、感情分析の問題に戻りましょう。ここに RNN があります。

入力として単語ごとに単語埋め込みまたは 1 つのホットエンコードされたベクトルを提供し、フィードフォワードと BPTT を実行します。トレーニングが完了すると、新しいテキストを与えて予測を行うことができます。 「no + 肯定的な言葉 = 否定」といったことを学習します。

RNN の問題 → 勾配消失/爆発問題

W はすべてのタイムステップで同じなので、バックプロパゲーション中に重みを戻して調整すると、信号が弱くなりすぎたり強くなりすぎたりして、消失または爆発の問題が発生します。

<<:  分析と AI で注意すべき 7 つの致命的な間違い

>>:  人と「人」の対立を実感する: よく使われるAIセキュリティツールのインベントリ

ブログ    
ブログ    
ブログ    

推薦する

数学が苦手でも機械学習を学ぶことはできますか?

[[381131]] 01 「機械学習は簡単に習得できますか?」これは私が最も頻繁に聞かれる質問で...

AIOps 実装をスムーズに開始するための 3 つのヒント

[[386134]]企業は、激しい市場競争に直面して、ビジネスと IT の間にスムーズな「リンク」を...

AI分野で世界で最も影響力のある機関トップ100のランキング、中国の機関6つがランクイン

[[243888]]現在、「人工知能」という言葉は主要メディアプラットフォームで頻繁に登場し、注目を...

Java プログラミング スキル - データ構造とアルゴリズム「再帰」

[[392763]]コンセプト簡単に言うと、再帰とは、毎回異なる変数を渡しながら、自身を呼び出すメ...

年末ですね!ファーウェイクラウド開発者デーと2023イノベーションサミットが成功裏に開催されました

12月20日、ファーウェイクラウド開発者デーと2023イノベーションシェアリングサミットが成功裏に開...

Action Bagelは人工知能技術を組み合わせてインテリジェントな分析エンジンを作成します

[51CTO.com からのオリジナル記事] インターネットの継続的な更新と反復により、ネットワーク...

人工知能はあらゆる点で人間よりも優れているのに、なぜ人間の言っていることを理解できないのでしょうか?

9月8日、英国の新聞「ガーディアン」は、熱心な読者でも記者でもなく、サンフランシスコの人工知能スタ...

OpenAI が ChatGPT にマルチモーダル入力機能を追加しました。ご存知ですか?

OpenAIのCEO、サム・アルトマン氏は昨夜Twitterで、ChatGPTに音声と画像の機能が...

...

...

...

小型モデルの意見も参考になります! GPT-4+AutoGPTオンライン意思決定:物を買うときにもう心配はいりません

この論文では、現実世界の意思決定タスクにおける Auto-GPT エージェントの包括的なベンチマーク...

Java 配列から HashMap へのアルゴリズムの説明

1. 配列とは何ですか?どの本にこのような文章があったか忘れましたが、「すべてのデータ構造は配列の進...

一般的なソートアルゴリズムの概要

概要コンピュータサイエンスと数学において、ソートアルゴリズムとは、一連のデータを特定の順序で並べるア...