ディープ学習リカレントニューラルネットワーク

(1)リカレントニューラルネットワーク理論

RNNは、データ処理シーケンスを使用してオブジェクト。入力層から中間層への従来のニューラルネットワークモデル、及び、出力層に、層が完全に接続されている間、それぞれの層の間にノードがコネクションレスです。しかし、多くの問題のために、この一般的なニューラルネットワークが、ありませんが余裕ができます。たとえば、文章中の次の単語が単語の前後の文章が独立していないので、一般的に、単語の前に使用する必要が、何であるかを予測します。RNNサイクルは、現在の出力シーケンスの前の出力も関連している、すなわち、ニューラルネットワークと呼ばれます。特定情報記憶のための前述のネットワークの形態と隠された層に、すなわちノード間の電流出力を計算するために使用される接続されているが、もはや接続を有し、中間層と入力層では入出力を備えさらに隠された層のタイミング出力を含みます。理論的には、のRNNは、任意の配列の長さのデータを処理することができます。しかし実際には、複雑さを軽減するために、多くの場合、現在の状態は、わずか数の以前の状態に関係していると仮定

ワンホットベクター:カテゴリ変数アルゴリズムを変換するワンホットベクターの形態では、このベクターは、属性の特徴ベクトル、すなわち、同じ時間だけつの活性点(ない0で表され、使用する機械学習プロセスに容易です)、これは、1つの特徴ベクトルは、他に特にスパース、0であり、0ではありません。
ワンホットベクターは、Ti =ように表される{0,0,0、...、1 、...、0}は、 長さの値は、離散のすべての機能に応じて決定、全特徴の値の離散的な数は、一般的な特性より、追加されます数は、より多くのシーンの特定の機能の数と同じではありません。

ネットワークはXtの時間tでの入力を受信した後、隠された層の値は、ST、出力値OTがあります。キーポイントは、値が聖Xtの上だけでなく、XT-1にだけでなく、依存することです

式1式は出力層であり、出力層は、すなわち、そのノードの各々、完全に接続された層であり、各ノードは、隠された層に接続されています。Vは、出力層の重み行列であり、Gは、活性化関数です。式2は、層が環状である隠された層、で計算されます。Uは、入力X重量重み行列であり、Wは、Fは、活性化関数であり、この重み行列の入力時刻として重み値です。

我々は、サイクルと層との間の差は、完全多層ループ重み行列Wの接続層である上記の式からわかります
1に2を入力するために、あなたが繰り返しスキルならば、我々はなります:

ニューラルネットワークのOTサイクルの上、出力値から分かるように、前の入力値は、任意のサイクルニューラルネットワークが期待できる理由である上記のXt、XT-1、XT-1、XT-1 ...効果によって制限されます入力値の理由複数の。

アルゴリズムのトレーニング(2)ニューラルネットワークサイクル:BPTT
BPTTアルゴリズムは、トレーニングアルゴリズムループ層のためであり、その基本的な原理は同じ3つのステップを含む、BPアルゴリズムと同じである。
エレメント前に、各神経(A)を算出します出力値は、
(B)各ニューロンは、下位誤差項の値ΔJ、netjの入力ニューロンjの加重偏導関数である誤差関数Eを算出し、
(iii)の各重量勾配の重みを計算します。
最後に、その後、確率的勾配降下アルゴリズムが重みを更新します。

①計算の前に

S / X Uが行列であり、ベクトルであり、インデックスベクトルが表す時刻が
入力ベクトルX次元がMであり、出力ベクトルsの寸法はn次元行列UはNであると仮定M、行列の次元であるW N- N- 。以下の式は、マトリクス状に展開され

手書き文字は、要素ベクトルを表し、それは時間の数を表し、このベクトルのいくつかの要素の添え字であることを示し、上付き文字

②誤差項の計算
:BTPP Lのアルゴリズムは、2つの方向での伝播時間tの第1レイヤ誤差値である
、)を得るために、ネットワーク層に送信される方向を1た重み行列Uおよび関連の部分のみ。
2)他の方向は、重み行列Wのこの部分とのみ関連を与えるために、最初の瞬間にタイムラインに沿って通過します

用向量nett表示神经元在t时刻的加权输入

也就是说

列ベクトル、ATによって表される行ベクトルを表します。最初の項は、ベクトル導出関数のベクトル、結果ヤコビ行列であります

同様に、第二項はヤコビ行列です。

DIAG [A]表す対角行列のベクトルを作成するために応じて

最後に、2一緒に

......

いくつかの導出は省略されている、の直接の結果は言いました:

これは、誤差項は、アルゴリズムレベルに伝達されています

③各重みについて計算勾配
時間tにおける勾配W 1)重み行列です。

2)最終の勾配を

3)右の重み行列Wと同様に、我々は重み行列Uを得ることができます

最终的梯度也是各个时刻的梯度之和

(3)RNN言語モデルは、に基づいて、
順次ワードリカレントニューラルネットワークへの入力は、各入力単語、リカレントニューラルネットワークの出力できるまでに、最も可能性の高い次の単語
のすべての単語が含まれるの辞書を作成するために、まず、一意の番号を持っている辞書内の各単語。
第二に、ワードが表現するN次元を有する任意のワンホットベクターであってもよいです。

高次元スパースベクトル(スパース、要素のほとんどの値を指すゼロです)。私たちのニューラルネットワークにつながるようなベクトル処理は、大量の計算をもたらし、多くのパラメータがあります。そのため、多くの場合、あなたは、いくつかの次元削減方法、密な低次元のベクトルに高次元のスパースベクトルを使用する必要があります。

辞書内の各単語のリカレントニューラルネットワークの計算が最大の単語の確率は次の最も可能性の高い単語であるように、次の単語の確率でみましょう。このように、ニューラルネットワークの出力ベクトルはN次元のベクトルであり、辞書に対応するワードに対応する各ベクトル要素は、ワード確率です。

どのように確率的ニューラルネットワークの出力にそれを作るには?この方法は、ニューラルネットワークのソフトマックス出力層として層を使用することです。

 ソフトマックスは、指数関数、ベクトル圧縮を、正規化と呼ばれる(0,1)の間に、出力確率ニーズの各要素の範囲および適合されるように。

言語モデルのために、私たちは辞書に次の単語を予測できるモデルは、最初の単語の確率は0.03ので、辞書で2番目の単語が0.09である確率、であることを信じて
トレーニング(4)言語モデル
の学習を指導しました最初にラベル付けを必要とします

量子化方法を用いて、入力xとyのラベルベクトルの
最適化の目標は、最後に、誤差関数としてのクロスエントロピーを使用することは、モデルが最適化されます。

例えばY1 = [1,0,0,0]、= Oネットワーク出力なら[0.03,0.09,0.24,0.64]

確率論的モデリングは、選択すると、クロスエントロピー誤差関数は、より合理的です。

モデル、最適化目標、グラデーション表現があり、あなたはトレーニングのために勾配降下アルゴリズムを使用することができます

7.環状構造ニューラルネットワーク
(1)一方向ループニューラルネットワークは、
時刻tにおいて、入力ネットワークはXTであると仮定される、隠された状態(すなわち、隠れ層のニューロン活性値)を入力し、現在の時刻XT HTない関連し、またAに隠された状態に関連する時間HT-1、すべての過去の入力シーケンスに関連した順番に(X1、X2、...、XT -1、XT)

ここで、ZTは、隠された層の正味の入力であり、fは(•)は、典型的にTANHシグモイド関数または関数、非線形活性化関数であるU-状態である - 重み行列は、Wがオン状態である - 入力重み行列、bはバイアスであります

(2)リカレントニューラルネットワーク双方向
双方向リカレントニューラルネットワーク(双方向リカレントニューラルネットワーク、ビ RNN)、 サイクルのニューラルネットワークの2つの層からなる、両方の層は、ネットワーク入力シーケンスXであるが、情報転送の逆方向です。
時系列順に第一層の送信情報を仮定し、第2の層は逆の時系列情報で送信され、時刻tにおける隠された状態で二つの層、それぞれHT(1)およびHT(2):

第三の式は、一緒にスプライス2の隠された状態ベクトルを表します。

8.サイクルパラメータは、ニューラルネットワークを学習します

要求パラメータ:ステータス-重み行列U、状態-入力重み行列W、及びBバイアス
方法を学ぶ:勾配降下

(1)損失関数および勾配:
勾配パラメータUの全配列にわたって損失関数を計算します

T時間、損失は、Tは、サンプルの長さである
時間バックプロパゲーションアルゴリズム上(2)
時間逆伝播アルゴリズムとニューラルネットワークの誤差逆伝播アルゴリズム同様の比較をフィードフォワードが、リカレントニューラルネットワークとして考えられています多層フィードフォワードネットワークは、各レイヤの各時点に対応するリカレントニューラルネットワークを拡大しました。
実際の勾配パラメータが全て勾配とフィードフォワードネットワーク層のためのパラメータであるので、拡張多層フィードフォワードネットワークでは、すべてのレイヤのパラメータは、共有されています。
最初の時間T損失パラメータUのとパラメータのシーケンス全体の損失関数の勾配を計算することにより、偏微分を計算U.
①の計算時間T損失パラメータはU偏微分
時間tの損失関数、ステップからのアップ以下の式によって算出されるZTネット入力
    

隠された層のk回目(1≤K≤T、時間Tのすべての時間を経過表す)正味入力ZK = Uhk-1 + Wxk + bは勾配パラメータUijに、時間tの損失関数で得ることができます

注ZK = Uhk-1 + Wxk + B ZK、HK-1を一定に維持する場合Uijの偏導関数を計算する
Uijに関する勾配パラメータの時間tの需要損失関数を:

②パラメータUのシーケンス全体の損失関数の勾配の計算

③バックプロパゲーションアルゴリズム(BPTT)時間をかけて、勾配パラメータが「前方」完了を必要とし、計算のためのために、「逆」、およびパラメータを更新計算は、中間空間のすべての時間勾配を保存する必要があります高い複雑。リアルタイムの時刻tにおけるループ学習(RTRL)アルゴリズムは、勾配パラメータのリアルタイム損失に計算することができ、勾配復帰せず、スペースの複雑さの低い
長期依存性の問題9.リカレントニューラルネットワーク
(1)長期的な問題に依存している
長期的な依存性のは、現在のシステムの状態を指し、システム状態の前に長い影響を受ける可能性がある、RNNは解決できない問題です。
リカレントニューラルネットワーク理論が、長い時間間隔で状態間の依存関係を確立することができますが、爆発の勾配または勾配の消失が原因で、実際には、唯一の短期的な依存関係を学ぶことがあります。
誤差ΔT、k個の方程式は次のように拡張されます

変えること

   
あなたが定義した場合

そこ

(2)改善プログラムは、
問題を軽減することができ、長期的な依存関係の問題を回避するために、勾配爆発や勾配サイクルニューラルネットワークを消滅
①勾配爆発:
避ける爆発に重い減衰勾配勾配権を切断することができます。減衰はそのγ≤1ように、正則化パラメータの範囲を制限するためにL1とL2パラメータ正則増加量です。勾配が所定の閾値よりも勾配モジュラス大きく切断され、それはより少ない数に切り捨てられます。

②勾配が消滅:
そのようなU = Iを製造するように、モデルを変更することができ、そのF一方「(ZI)= 1

③メモリ容量の問題:
ソリューション勾配消失、関数g(•)の導入によって、そのようなHTと1 HT-間の線形関係の両方が存在することを非線形関係。連続HT新しい入力情報とともに保存されている。このメモリ容量をもたらす問題は、それが、あること、より多くの飽和現象になります。より多くのコンテンツ、より多くの情報が失われた記憶部に記憶されているように隠れ状態HTに格納することができる情報は、限られています。
容量の問題を解決するために、次の2つのメソッドを使用することができます。最初は、即ち、外部記憶装置、余分なメモリセルを追加し、そして第二の選択、すなわちゲーティング機構長期記憶ネットワーク(LSTM)は、選択的更新を忘れています。

前記ニューラルネットワークモデルサイクル
  :リカレントニューラルネットワークモデル
カタログのシーケンスパターン、
シーケンスモード、へ同期シーケンス
配列に対して非同期モードシーケンス。
(1)のカタログに配列パターン
入力配列(Tデータ)、出力カテゴリ(データ):カテゴリ分類パターンに配列は、主に、配列データのために使用されます。典型的なテキスト分類タスク、(文書で構成)入力データの単語列、テキストの出力カテゴリがあります。
試料X1と仮定する:T =(X1、X2 、...、XT、) 長さTのシーケンスのを、出力がカテゴリy∈{1、2、...、 C}。循環へのニューラルネットワークの異なる時点での入力サンプルxは、異なる時間H1、H2、...、HTにおける状態を隠すことができ、その後、シーケンス全体を最終HTとみなされる(分類子Gへの入力を表す• )の分類を行います

シーケンス全体の平均値によって表されるように、それはまた、隠された状態で、シーケンス全体のすべての状態を意味することができます

(2)配列パターンに同期系列
配列モードへのシーケンスは、主同期タスクシーケンスラベリング、すなわち、入力と出力の両方たびに、入力系列及び出力系列長と同じに使用されます。例えば、音声は(順位タギング)、あなたはその品詞にラベルを付けたい各単語をタグ付け。固有表現認識(名前エンティティの認識、NER)配列はまた、それは演説の一部を置き換えるために出力エンティティタグという名前の名前付きエンティティのためにあることを特徴とPOSタグ付けの練習に類似ラベリングの問題を、見ることができます。
試料X1と仮定する:T =(X1、X2 、...、XT、) 長配列のを、出力シーケンスは、T Y1である:T =(Y1、Y2 、...、YT)。入力サンプルは、循環中にニューラルネットワークに異なる時間にX、異なる時間H1、H2、...、HTにおける隠れ状態であること、及び各時点の隠れ状態は、与えるために分類子G(•)に入力されることができます現在のラベル時間。

(3)配列に非同期モードシーケンス
非同期モードにシーケンス配列はまた、符号化とも呼ばれる-デコーダ(エンコーダ・デコーダ)モデル、即ち、入力系列及び出力系列必要が厳密対応関係を持っていない、同じ長さを維持していません。このような機械翻訳は、ソース言語入力単語列、ターゲット言語の単語列の出力として。
非同期モードでは、シーケンス内のシーケンス、長さTの配列を入力する:X1:T =(X1、 X2、...、XT、)、 長さMのシーケンスの出力を:Y1:M =(Y1、 Y2 、...、YM)は、第1の符号化方法を復号化することによって達成しました。
異なる時間リカレントニューラルネットワーク(エンコーダ)への第1の入力サンプルxは、次いで、別の出力系列Y1ループニューラルネットワーク(デコーダ)を得HTをコードする得た:M. 出力シーケンスは、デコーダにおける通常非線形自己回帰モデル間の依存関係を確立します。

其中f1(•)和f2(•)分别表示用作编码器和解码器的循环神经网络,g(•)为分类器

おすすめ

転載: www.cnblogs.com/hello-bug/p/12524776.html