のんびり肉体改造ブログ

30代社会人のトレーニング記録と雑記

ラビットチャレンジレポート(深層学習/後編/その1)

トレーニングにまつわるあれこれを掲載しているブログではありますが,都合によりこのような記事を掲載いたします.
現在一般社団法人ディープラーニング協会のE資格を取得するため,ラビットチャレンジなるプログラムを受講しています.本プログラムにおいてレポート公開が必須になっていることから,こちらのブログにてレポートします.

RNN

概要

RNNは時系列データにおける分類問題や回帰問題を解くモデル.時系列的に1つ前のデータに現在着目しているデータの特徴量を足し合わせて,1つ後のデータにつなげる.

f:id:CivilEng:20211222063844p:plain

しかしながら,RNNは以下のように時系列データの特徴量の受け渡しにsigmoid関数を使用していることから,手前の特徴量の値は急速に小さくなっていく. そのため,長期的な情報の記憶ができない仕組みになっている.

f:id:CivilEng:20211222064505p:plain

BPTT

時系列データで利用されるBack PropagationをBTTT (Back Propagation Through Time) と呼ぶ.BPTTは慣れていないからか,結構複雑.後で復習する.

LSTM

概要

LSTMはRNNの時間依存度を解決するために,記憶機能であるCEC (Constant Error Carrousel) を持たせたモデル.

f:id:CivilEng:20211222065400p:plain

f:id:CivilEng:20211222065920p:plain

入力を制御する入力ゲート,出力を制御するための出力ゲートの他に,CECで何の記憶を維持するかを制御する,忘却ゲートを有する.パラメータが非常に多く計算負荷が高いのが難点.

GRU

概要

パラメータが多く計算負荷が高い問題を克服するために開発されたモデル.

ここまでは,時系列データにおける未来予想に使われることが多いモデル.
以降は与えられた時系列データ全体の構造を理解して,変換したり,分類するのに利用されるモデル.

双方向RNN

過去の情報だけでなく,未来の情報も加味することで,精度を向上させるモデル.

f:id:CivilEng:20211222071155p:plain

Encoder-Decoder RNN

文脈表現をベクトル化した,Thought Vectorを通じて,自然言語表現を変換するモデル.

f:id:CivilEng:20211222221933p:plain

Word2Vec

自然言語表現をベクトル表現に変換するモデルのこと

Embeddingについて

自然言語を機械可読なベクトル表現に変換すること.以下のように自然言語はまずone-hotベクトルに変換されるが,それでは疎な状態であり, 単語の類似性などを表現できないので,より低次元のベクトル表現に変換する.この作業のことをEmbeddingと言う.

個人的には非常にわかりやすくて理解が深まった.

f:id:CivilEng:20211222221405p:plain

BERT

Attension機構を使用した自然言語表現の問題を解くモデル.事前に大量の文章からAttension機構により言語構造を理解させておき, その後比較的少量のデータで特定の課題を解く.言語構造構造を理解させる際には,MLMとNSPを用いる.

Attention

Seq2Seqでは固定次元ベクトルを使用するため,長い文章への対応が難しい等の課題があった.そこでAttention機構が開発された.
内積計算により,文章内の重要単語表現を自ら取得する.

この動画が参考になった.

www.youtube.com

長くなったので続きは別記事に.