Study aiラビットチャレンジ 深層学習Day4
- 5. Section4:応用モデル
MobileNet
・般的な畳み込みレイヤーは計算量が多いため、MobileNetsでDepthwise Convolution
とPointwise Convolutionの組み合わせで軽量化を実現
参考:https://deepsquare.jp/2020/04/resnet-densenet/#outline__3
Depthwise Convolution Pointwise Convolution
MobileNetのイメージ
通常の畳込みが空間方向とチャネル方向の
計算を同時に行うのに対して、Depthwise
Separable Convolutionではそれらを
Depthwise ConvolutionとPointwise
Convolutionと呼ばれる演算によって個別に
行う。
Residual Network (ResNet)
・ResNetはshortcut connectionという機構を導入し、手前の層の入力を後ろの層に
直接足し合わせることで、勾配消失問題を解決。
・ResNetのアイデアはシンプルで、「ある層で求める最適な出力を学習するのではなく、
層の入力を参照した残差関数を学習する」 ことで最適化しやすくしている。
右図のdeep pathが従来のルート
で、ResNetにおいて追加されたのが、
shortcut connectionとなる。
DenseNet
・DenseNetのアイディアは、もし前のレイヤーとスキップ接続で接続することによってパフォーマンス
が向上するならば、どうしてレイヤーをその他のレイヤーに直接接続しないのか、というもの。
この発想を実現するということは、常にネットワークを介した情報を送る直接的なルートを存在
させることを意味する。レイヤー間の情報の伝達を最大化するためにすべての特徴量サイズが
同じレイヤーを結合させている。逆伝播を保つため、ある層より前の層の出力を入力とする。
DenseNetの構造
①Initial Convolution
②Dense Block
③Transition layer
④Classification layer
ResNetとDenseNetの違い
ResNetはある層に与えられた信号をそれよりも少し上位の層の出力に追加するスキップ接続
により深いネットワークを訓練できるようにした。それに対してDenseNetは前方の各層からの
出力すべてが後方の層への入力として用いられる。
正規化
1.Batch Norm:ミニバッチに含まれるsampleの同一チャネルが同一分布に従うよう正規化
2.Layer Norm:それぞれのsampleの全てのpixelsが同一分布に従うよう正規化
3.Instance Nrom: pixelsに加え、channelも同一分布に従うよう正規化
Wavenet
・生の音声波形を生成する深層学習モデル。
・時系列データに対して畳み込み(Dilated
convolution)を適用。
- 6. Section5:Transformer
Transformer
・翻訳タスクにおいて、Seq2seqよりも早くて精度が高いというモデル
・RNNもCNNも使わずに Attentionのみを使用 したEncoder-Decoderモデルで計算量も
精度も改善。並列計算が可能。
・アーキテクチャのポイントは①エンコーダー-デコーダモデル、②Attention、③Position-wise
全結合層の3点。BERT,XLNet,GPT-2などのベースとなっている。
参考: https://qiita.com/omiita/items/07e69aef6c156d23c538
①エンコーダー-デコーダモデル
エンコーダ: N=6層で構成されていて、6層とも同じ構造。
各層は Multi-Head Attention層 と Position-wise
全結合層 の2つのサブ層で構成されている。それぞれの
サブ層の後には 残差結合 と Layer Normalizationがある。
デコーダ: 同じく N=6層で構成されており、6層とも同じ構造。
ただし、各層はエンコーダの2つのサブ層の間にエンコーダの出力を
受け取るMulti-Head Attention層を追加した形になっている。
デコーダのサブ層の1つ目は右図に書いてある通りMasked
Multi-Head Attentionになっており、これはデコーダが現時刻で
予測する単語およびそれ以降の単語たちをカンニングできないよう
にしている。
②Attention
・文中のある単語の意味を理解する時に、文中の単語のどれに注目すれば良いかを表す
スコアのこと。Attentionには下図の通り、2種類存在する。
・ AttentionとはQuery(Q)とKey(K)とValue(V)の3つのベクトルで計算される。Queryと
KeyでAttentionスコアを計算し、そのAttentionスコアを使ってValueを加重和すると、
Attentionを適用した単語の潜在表現が手に入る。
TransformerでのAttentionの導入箇所
③Position-wise全結合層
・各ブロックのAttention層のあとに入っているPosition-wise 順伝播ネットワーク。
Position-wiseというのはただ単に、各単語ごとに独立してニューラルネットワークがあるという
こと(ただし、重みは共有)。 ニューラルネットワーク内では他単語との干渉はない。2層の
ニューラルネットワークになっている。式は以下の通り。
④その他工夫
単語の分散表現とソフトマックス:
・入力の単語は事前訓練済みの単語分散表現を使ってベクトルに変換 する。またデコーダ
の最終出力は、ニューラルネットワークに入力されソフトマックスで一番高い確率を示した
単語を出力するが、そのニューラルネットワークに使う重みは一番最初の単語の分散表現
を使うときの重みと同じものを使用する。
位置エンコード:
・一番最初にこのモデルに単語の分散表現を入力するときに単語位置に一意の値を各分散
表現に加算する。 単語に一意な値を出力するような関数を使ってあげることで実現できる。
・Transformerで使われている位置エンコードの式は以下の通り。Transformerは単語の
位置に一意の値を与えてくれるsin関数とcos関数のパターンもしっかりと学習してくれるため、
結果として位置の依存関係を学んでくれているという算段になっている。
BERT
・Bidirectional Encoder Representations from Transformers の略で、「Transformerに
よる双方向のエンコード表現」と訳され、2018年10月にGoogleのJacob Devlinらの論文で
発表された自然言語処理モデル。BERTは、多様な自然言語処理タスクタスクにおいて当
時の最高スコアを叩き出した。