SlideShare a Scribd company logo
StudyAI ラピッドチャレンジ レポート課題
深層学習 Day3
Section1:再帰型ニューラルネットワークの概念
時系列データについて
・ 気温の遷移や降水状況などの気象観測や交通の状態、土地利用の変遷など、ある一時
期の状態を表すような、時間的に変化した情報を持つデータのことをいい、時系列分析は
時系列データを用いて行う。時系列データは、トレンド、季節変動、循環変動、不規則変
動から成り立つ。
①トレンド:長期的な時間の経過とともに増加・減少する動き
②季節変動:季節ごとに繰り返される変動
③循環変動:季節変動よりも長い期間で周期性をもって現れる変動
④不規則変動:上記①~③で説明できない変動
Recurrent Neaural Network(RNN)
・ RNNは時系列データに対応したニューラルネットワークである。通常のニューラルネットワークは
ある層の出力は、次の層の入力に利用されるのみである。しかしRNNでは、ある層の出力は、
次の層の入力として利用されるだけでなく、一般的なニューラルネットワークの最後の層の
出力にも利用される。また、各層の入力として、前の層の入力のみではなく、時系列のデータ
ポイントも入力とする。このようにRNNはニューラルネットワークの出力を別のネットワークの入力
として利用するような再帰的構造を持つ。
RNNの全体像 RNNの数学的記述
参考:https://otafuku-lab.co/time-series-analysis/
https://atmarkit.itmedia.co.jp/ait/articles/1804/25/news143.html
・ RNNは時系列データの分析の他、機械翻訳や音声認識、画像の概要文章生成、説明文
からの画像生成などにも使用される。
BPTT(BackPropagation Through Time)
・ RNNにおける誤差逆伝播法の一種。RNNは展開すると長いNNとみなすことができるので
通常通り誤差逆伝播が使用できるが、学習を行う際の入出力や重みを保持しなければ
ならないため、考慮する期間が長くなるほど、計算量と必要なメモリーの量が増えていく。
このような理由から、通常のRNNでは無限に続く波形を学習することは不可能であるため
RNNの構造を改良することで学習を可能にしたモデルが提案されている。
BPTTの数学的記述
※RNNの数学的記述を元に
誤差し微分し勾配を計算
・ [ ]Tは時系列を意味する記号である
・ δは損失関数Eの微分を表現上、置き換えたもの
パラメータの更新式
Section2:LSTM
LSTM(Long Short Term Memory)
・ Simple RNNではある層の出力情報はそれまでの層の出力情報すべてを考慮した
出力となり、長い時系列データの学習が難しかった。この点を改良したRNNがLSTMであり、
CEC、入力ゲート、出力ゲート、忘却ゲートという機構を設けることで勾配消失および勾配
爆発を防ぎ、長期依存の時系列データの学習を可能にしている。
LSTMブロックを構成する要素
(1)Constant Error Carousel (CEC)
誤差消滅問題に対応するために導入された非常にシンプルなアプローチ。入力を保持する
機能を持ち、入力データについて時間依存度に関係なく重みが一律(勾配が1)である。
学習特性はない。
LSTMの全体像
(2)入力ゲート
入力ゲートにおいて、追加の重みパラメタを持たせることで、「前のユニット(1つ前の時間の
ユニット)の入力を受け取るか否か」を判断させるようにすることで必要に応じて誤差信号の
伝播をゲート部で止め、必要な誤差信号だけが適切に伝播するようにゲートを開いたり
閉じたりし、入力重み衝突を回避させる。
※入力重み衝突
逆誤差伝播法により、重みが更新される時、次の矛盾する更新を同時に受け取ること
①ユニットjを活性化されることによる入力信号の伝達
②ユニットiからの無関係な入力によってユニットjの値が消去されることを防ぐ入力信号の保護
(3)出力ゲート
入力ゲートと同様に出力重み衝突を防ぐために導入されている。
※入力重み衝突
ユニットjの情報が重みωkjに従いユニットkに出力を行うことを考えると、次の2つの衝突が起きる
①ユニットkを活性化されることによる出力信号の受信
②ユニットjからの無関係な出力によってユニットkの値が消去されることを防ぐ出力信号の保護
(4)忘却ゲート
忘却ゲートは、誤差信号を受け取ることで、一度メモリセルで記憶した内容を一気に「忘れる」
ことを学習する。そうすることで、状態遷移が起こり、今までの記憶が不必要になった時点で
素早くセルを初期化することを可能にした。
(5)覗き穴結合(Peephole Connection)
peephole connectionと呼ばれる接続をメモリセル(CEC)から各ゲートに流し込むことで、
LSTMの外側と呼べる入力層の出力と中間層の1ステップ前の出力に加え、制御対象である
メモリセル自身の内部状態を制御に利用する。
参考:https://qiita.com/t_Signull/items/21b82be280b46f467d1b
Section3:GRU
Gated recurrent unit(GRU)
・ GRUとはLSTMを簡略化したもので、メモリセル(CEC)を廃止し入力ゲートと出力ゲート
を一つにまとめた構造。更新ゲートとリセットゲートが存在する。
・ 従来のLSTMでは、パラメータが多数存在していたため、計算負荷が大きかったが、GRUは、
そのパラメータを大幅に削減したため、計算負荷が低く、同等またはそれ以上の精度が
望める様になった。
GRUの全体像
GRUブロックを構成する要素
(1)更新ゲート
過去の情報をどれだけ取り込むかを決定する役割を有する。更新ゲートは以下の式で
表される。
↑(入力値×重み +保持している過去の入力値×更新ゲート向けの重み) × sigmoid
(2)リセットゲート
過去の情報をどれだけ捨てるかを決定する役割を有する。リセットゲートは以下の式で
表される。
↑(入力値×重み + 保持している過去の入力値×リセットゲート向けの重み) × sigmoid
GRUによる計算のステップ
• 更新ゲートの値を計算する
前記の更新ゲートの式により、値を計算する。
• リセットゲートの値を計算する
前期のリセットゲートの式により、値を計算する。
• 保持している過去の入力値に対してリセットゲートの値を反映させる(忘れさせる)
リセットゲートの値で「保持している過去の入力値」を更新する。式は以下の通り。
• 未来に使用するための入力値を計算
最後に、未来で使用するための入力値(どれぐらい記憶を更新するか)を計算する。
更新ゲートが1に近ければ近いほどリセットゲートを反映した過去の値を無視して更新
することになる。計算式は式は以下の通り。
↑「入力値×入力値の重み」 + 「リセットゲートと保持している過去の入力値×リセットゲート
向けの重みを要素ごとに掛け算したもの」に対してtanh(活性化関数)を掛けたもの
↑「更新ゲートと過去の入力値を要素ごとに掛け算したもの」と「(1ー更新ゲート)と
『リセットゲートで更新した過去の入力値』を要素ごとに掛け算したもの」の和
参考:https://arimax.hatenablog.com/entry/2018/07/05/084031
Section4:双方向RNN
Bidirectional RNN(双方向RNN)
・ Bidirectional RNN は、中間層の出力を、未来への順伝播と過去への逆伝播の両方向に
伝播するネットワークである。BRNN では、学習時に、過去と未来の情報の入力を必要と
することから、運用時も過去から未来までのすべての情報を入力してはじめて予測できるよう
になる。そのため、BRNN の応用範囲が限定される。
・ BRNNはDNA 塩基を k-mer ごとに区切り、塩基配列解析に用いられたり、1 文全体を
入力して、文中にある誤字・脱字の検出などに応用されている。
BRNNの全体像
予測対象の前後の
情報を用いて予測
するイメージ
BRNNの順伝播
・ 順伝播では、状態 t における中間層は、入力値と状態 t-1 から入力を受け取り、それぞれ
に重みをかけて、活性化関数に代入して得られる値を、この中間層の出力値としている。
順伝播のイメージ
BRNNの逆伝播
・ 逆伝播では、状態 t における中間層は、入力値と状態 t+1 から入力を受け取り、それぞれ
に重みをかけて、活性化関数に代入して得られる値を、この中間層の出力値としている。
逆伝播のイメージ
BRNNの出力層
・ 状態 t における出力層の出力値は、順伝播および逆伝播の中間層の値から計算する。
具体的に順伝播の状態を表すベクトル Ht と逆伝播の状態を表すベクトル Ht を縦に
結合して一つのベクトルを作る。このとき、Ht∈Rn×h および Ht∈Rn×h ならば、結合後の
ベクトルの次元は Rn×2h となる。ベクトルの結合後に、これに重みをかけ、それを活性化関数
に代入して出力値を計算する。なお、出力層の活性化関数は恒等関数などが使われる。
→
→
←
←
出力のイメージ
参考:https://axa.biopapyrus.jp/deep-learning/rnn/brnn.html
Section5:seq2seq
Seq2seq
・発話・応答のシーケンスのペアを学習させることで、発話から応答を生成するモデル。
・LSTM などの RNN を用いたネットワークで以下の2つの部分から構成される。
①Encoder RNN: 人間からの問いかけの文章を単語などトークンに区切って渡す
②Decoder RNN: システムからの応答を単語などトークン毎に生成する
参考:https://qiita.com/halhorn/items/646d323ac457715866d4
Encoder RNN はトークン A, B, C を入力として受け取ったあとの final state を Decoder
RNN の initial state として渡す。この Encoder RNN の final state は thought vector と
呼ばれており、 A, B, C という文章全体の情報を持つベクトルとなるとされている。
Seq2Seq2の全体像
Encoder RNN
Decoder RNN
Seq2Seq2の具体的なフロー
例)「インコは可愛いね」 という文を Seq2Seq に入力して、 「可愛いよね」 という応答が
生成されるまでの過程
I. Encoding
1. Tokenize: 文章を単語等(token と呼びます)毎に分割し、
token 毎の ID に変換
2. Embedding: ID から、その token を表す分散表現ベクトルに変換
3. Encoder RNN: ベクトルを順番に RNN に入力
II. Decoding
1. Decoder RNN: Encoder RNN の final stateから、各 token の
生成確率を出力
① final state を Decoder RNN の initial state ととして設定し、
特別なシンボル <GO> の Embedding を入力
② RNN の隠れ層に全結合層等を噛まして、 token ID ごとの生
成確率を出力
2. Sampling: 生成確率にもとづいて token をランダムに選択
3. Embedding: 2で選ばれた token を Embedding して Decoder
RNN への次の入力とする。
4. Detokenize: 1-3 を繰り返し、2で得られた token を文字列に直す
Hierarchical Recurrent Encoder-Decoder(HRED)
・Seq2Seqは一問一答しかできず、問に対して文脈も何もなく、ただ応答が行われてしまう
という課題を解決するため、過去の n-1 個の発話から次の n 個目の発話を推測するよう
にしたものが HRED である。
・HRED は Encoder RNN, Context RNN, Decoder RNN の3段構成をとる。
1. Encoder RNN: 一つ一つの文章(会話なら過去の一つ一つの発言)をそれを表すベクト
ルに変換する
2. Context RNN: Encoder のまとめた各文章の系列をまとめて、これまでの会話コンテキスト
全体を表すベクトルに変換する
3. Decoder RNN: Context RNN の情報から応答を生成する
2 の Context RNN というレイヤーがあることによって、過去の発話の履歴を加味した
返答をできるようになっている。
VHRED
・HREDに対してVAEの潜在変数zを組み合わせたモデル。HREDと同じく過去のn-1個の
発話を与えられて、n個目の発話を生成。HREDの以下の課題解決を目的にしている。
課題1:確率的な多様性が字面にしかなく、会話の「流れ」のようなロングタームな多様性が無い。
課題2:短く情報量に乏しい答えをしがちである。
・VHREDではContext RNNの部分に確率的なノイズを与えて学習することで
上記の課題を解決する。
HREDモデル VHREDモデル
VAE
• 標準正規分布からサンプリングした潜在変数 z から画像等データを生成することのできるモデル。
• データを潜在変数zの確率分布という構造に押し込めることを可能にする
Section6:Word2vec
Word2vecについて
・単語を固定長のベクトルで表現することを「単語の分散表現」と呼ぶ。単語をベクトルで
表現することができれば単語の意味を定量的に把握することができるため、様々な処理に
応用することが可能。Word2Vecも単語の分散表現の獲得を目指した手法である。
・自然言語処理の主要な手法は、「単語の意味は周囲の単語によって形成される」という
分布仮説のアイデアに基づいており、 Word2Vecもこれに準ずる。
・Word2vecは手法はニューラルネットワークを用いて少量の学習サンプルをみながら重みを
繰り返し更新する手法(推論ベース)
参考:https://qiita.com/g-k/items/69afa87c73654af49d36
Word2vecで使用するNNのモデル
(1)CBOW(continuous bag-of-words)モデル
コンテクストからターゲットを推測することを目的としたニューラルネットワーク。CBOWモデルを
できるだけ正確な推測ができるように訓練することで単語の分散表現を獲得することができる。
例)右記のコンテクストから?部分を推測する場合、
「毎朝」「を」から「?」の単語を推測することになる。
・CBOWモデルは入力層が二つあり、中間層を経て出力層へとたどり着く。中間層は各入力層の
全結合による変換後の値が「平均」されたものとなる。
・CBOWモデルは出力層において各単語のスコアを出力するが、そのスコアに対してSoftmax関数を
適応することで「確率」を得ることができる。この確率は前後の単語を与えた時にその中央にどの単語が
出現するのかを表す。
skip-gramモデルの全体像
CROWモデルの損失関数
上記損失関数(交差エントロピー)を
できるだけ小さくしていく方向で学習していく
ことで、その時の重みを単語の分散表現
として獲得することができる。
(2)skip-gramモデル
skip-gramモデルはCBOWで扱うコンテクストとターゲットを逆転させたようなモデルである。
例)右記のコンテクストのように中央の単語から
前後の複数のコンテクストを予測する。
・skip-gramの入力層はひとつで出力層はコンテクストの数だけ存在する。それぞれの出力層で
個別に損失を求め、それらを足し合わせたものを最終的な損失とする。
CROWモデルの全体像
skip-gramモデルの損失関数
・skip-gramモデルはコンテクストの数だけ推測を
行うためその損失関数は各コンテクストで求めた
損失の総和を求める必要がある。
CBOWとskip-gramのモデルの特徴
CBOWとskip-gramではskip-gramモデルの方が良い結果が得られるとされており、コーパス
(テキストや発話を大規模に集めてデータベース化した言語資料)が大規模になるにつれて
頻出の単語や類推問題の性能の点において優れた結果が得らる。一方でskip-gramは
コンテクストの数だけ損失を求める必要があるため学習コストが大きく、CBOWの方が学習は
高速である。。
Section7:Attention Mechanism
Attention Mechanism
・ Seq2Seqモデルでは入力系列の情報をEncoderで圧縮したベクトルとしてしかDecoder
に伝えることができないため、入力系列が長いと入力系列の情報をDecoderにしっかりと
伝えることが難しくなる。そこでDecode時に入力系列の情報を直接参照できるようにする
仕組みがAttentionメカニズムである。
参考:https://qiita.com/ymym3412/items/c84e6254de89c9952c55
モデルの構造(Soft Attention)
・Attentionメカニズムでは時刻tにおけるDecoderの隠れ層のベクトルhtとEncoderの各時刻の
隠れ層のベクトルhsのスコアを計算し時刻tでどの入力単語に注視するかのスコアαtを決定する。
このスコアをもとにEncoderの隠れ層のベクトルの加重平均ctを求めそれをもとに時刻tの
隠れ層のベクトルhtを計算します。
・式を見ると、時刻tのDecoderの隠れ層のベクトルと各入力に対するEncoderの隠れ層の
ベクトルのスコアを計算、Softmaxを取ることで時刻tの出力に影響を与える入力の情報の
割合を計算し(αt(s))、その割合にもとづいて入力の隠れ層を足し合わせ(ct)、Decoderの
隠れ層と結合して変換し時刻tのDecoderの最終的な隠れ層のベクトル(ht)を得ている。
score()という関数はEncoderとDecoderの隠れ層のベクトルの関連度を計算する関数で
論文中では内積や結合といった3種類の計算方法が提案されている。
・このhtを使用して出力する単語ytを計算する。
→
~
~
~
Pointer Networks
・ Seq2SeqモデルではDecoderの出力したベクトルを行列変換しSoftmaxを取ることで
出力の分布を得る。これは機械翻訳のように使用する語彙があらかじめ決まっており出力の
分布の次元が固定の場合はよいが、入力に合わせて出力の分布の次元も可変となるような
場合にはうまくいかない。この問題を解決するために提案されたのがPointer Networksである。
モデルの構造
・構造はとてもシンプルで、Encoderで入力系列を読み込み、DecoderではAttentionを使って
どの入力を選択するかを決定する。Attentionを使ってどの入力を選択するかの分布を求める
ことで分布の次元が可変という問題を解決している。
・Pointer Networksが出力する単語の計算は以下のようになる。 Xは入力単語の集合。
特徴はAttentionによって得られる入力単語の分布をそのまま出力単語の分布としている点。

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Study aiラビットチャレンジ 深層学習Day3