5-1 ネットワークの構成要素
みかん
今回はG検定の第5章「ディープラーニングの要素技術」の1節「ネットワークの構成要素」を解説します
1. 畳み込み層
1.1 畳み込み層の処理
みかん
畳み込み層では、フィルタ(またはカーネル)を用いて、特徴を特徴マップとして抽出する「畳み込み処理(convolution)」を行います。
みかん
フィルタを画像の左上から順番に重ね合わせていき、フィルタと画像の同じ位置の値をかけ合わせて総和をとる処理になります。
あいで
フィルタのサイズはどれくらいが一般的なんですか?
みかん
3×3など小さなサイズのものが多く用いられます。入力が幅W×高さH×チャネルNの場合、フィルタは3×3×Nのような3次元の構造になります。
あいで
フィルタの値は人が決めるんですか?
みかん
いえ、フィルタの値は学習により獲得します。この学習にも誤差逆伝播法が用いられます。
フィルタは学習で獲得
畳み込み層のフィルタの値は人が決めるのではなく、誤差逆伝播法による学習で自動的に獲得される。
1.2 パディング処理
みかん
畳み込み処理を適用すると、特徴マップのサイズは少し小さくなります。入力と同じサイズの特徴マップにしたい場合は「パディング処理」を使います。
あいで
入力の周りを0で囲むことで、フィルタを適用しても出力サイズを維持できるんですね。
1.3 ストライド
みかん
畳み込み処理では、フィルタを重ねる位置をずらしていきますが、そのずらし幅を「ストライド」と呼びます。
みかん
ストライドが1の場合は1画素ずつ、ストライドが2の場合は1画素飛ばして畳み込み処理をします。ストライドが大きいほど特徴マップのサイズは小さくなります。
1.4 Atrous Convolution
みかん
通常の畳み込みでは、フィルタの値を特徴マップの値に対して密にかけ合わせます。しかし、広い範囲の情報を集約したい場合もあります。
みかん
そこで使われるのがAtrous Convolutionです。フィルタの間隔を空けて、広い範囲に対して畳み込み処理を行います。計算量を増やさずに広い受容野を得られます。
あいで
Dilated Convolutionとも呼ばれるんですね。計算量を抑えつつ広い範囲を見られるのは効率的ですね。
1.5 Depthwise Separable Convolution
みかん
通常の畳み込みの代わりにDepthwise Separable Convolutionを用いることもあります。空間方向とチャネル方向に対して独立に畳み込み処理を行います。
みかん
空間方向はDepthwise Convolution、チャネル方向はPointwise Convolutionと呼びます。Depthwiseはチャネルごとに畳み込み、Pointwiseは1×1の畳み込みを行います。
あいで
通常の畳み込みを分離することで、計算量を大幅に削減できるんですね。ただし精度は近似計算なので一致はしないと。
みかん
その通りです。通常の計算量O(H×W×N×K²×M)をO(H×W×N×K² + H×W×N×M)に削減できます。精度は近似ですが、実用上は十分な性能が出ます。
計算量削減のポイント
Depthwise Separable Convolutionは通常の畳み込みの近似で、計算量を大幅に削減。精度は一致しないが実用上は十分。
2. プーリング層
みかん
プーリング処理は、特徴マップをルールに従って小さくする処理です。ダウンサンプリングあるいはサブサンプリングとも呼ばれます。
みかん
プーリングには、最大値を抽出する「最大値プーリング(max pooling)」と、平均値を計算する「平均値プーリング(average pooling)」があります。
みかん
プーリングにより特徴を集約して次元を削減する効果があります。また画像のズレに対する頑健性を持ち「不変性」を獲得します。
プーリングの重要ポイント
プーリング層は特徴の次元を削減し、画像のズレに対する「不変性」を獲得する。学習すべきパラメータは存在しない。
あいで
プーリング層にはあらかじめ決めたルールで演算を行うだけなので、畳み込み層と異なり学習すべきパラメータは存在しないんですね。
3. 全結合層
みかん
全結合層では、層に入力された特徴に対して重みをかけて、総和した値をユニットの値とします。通常のニューラルネットワークと同じで線形関数となっています。
みかん
CNN(LeNet)では、畳み込み層・プーリング層を繰り返した後、全結合層を接続します。このとき特徴マップを1列(フラット)に並べる処理を行います。
みかん
全結合層を用いず、特徴マップの平均値を1つのユニットにする「Global Average Pooling」と呼ばれる処理が用いられることもあります。
4. スキップ結合
みかん
ネットワークの層を増やし「超」深層にすると、識別精度が落ちるという問題がありました。学習時に誤差を入力近くまで逆伝播しにくくなることが原因です。
みかん
そこで考えられたのが「層を飛び越えた結合」である「スキップ結合」です。ResNetで導入されました。
みかん
スキップ結合を導入することで、層が深くなっても飛び越える部分は伝播しやすくなり、様々な形のネットワークのアンサンブル学習になるという利点があります。
スキップ結合の効果
スキップ結合の効果:①層が深くても勾配が伝播しやすい ②様々な形のネットワークのアンサンブル学習になる。H(x)=F(x)+xで表される。
あいで
通常はH(x)を直接学習しますが、ResNetではF(x)=H(x)-xの残差を学習するんですね。入力xをそのまま足すからスキップ結合と呼ばれるわけだ。
5. 正規化層
みかん
学習するうえで、各層に伝わっていく特徴の分布は重要です。特徴のバラツキを抑制するために、各層の特徴の平均値が0、分散が1になるように正規化処理を行います。
みかん
代表的なのが「バッチ正規化(batch normalization)」です。各層で活性化関数をかける前の特徴を正規化します。ミニバッチで複数の入力データを用いて正規化します。
あいで
バッチ正規化以外にも正規化の種類はあるんですか?
みかん
はい。正規化する範囲を変えることで、レイヤー正規化、インスタンス正規化、グループ正規化などがあります。
みかん
これらの正規化は学習がうまくいきやすくなるという利点以外にも、過学習にもなりにくくなります。
正規化の効果
正規化の効果:①学習がうまくいきやすくなる ②過学習になりにくくなる。バッチ正規化が最も代表的。
あいで
正規化によって学習の安定化と過学習の抑制、両方の効果が得られるんですね。
まとめ
みかん
1つ目、畳み込み層はフィルタ(カーネル)で特徴を抽出。パディング・ストライド・Atrous Convolution・Depthwise Separable Convolutionなどの手法がある。
みかん
2つ目、プーリング層は特徴マップを小さくし「不変性」を獲得する。最大値プーリングと平均値プーリングがあり、学習パラメータは存在しない。
みかん
3つ目、スキップ結合はResNetで導入された「層を飛び越える結合」。超深層ネットワークでの学習を可能にした。
みかん
4つ目、正規化層はバッチ正規化が代表的で、学習の安定化と過学習の抑制に効果がある。
みかん
ということで今回はネットワークの構成要素について解説しました
あいで
このチャンネルでは情報に関することを発信しています。
あいで
よければチャンネル登録、高評価よろしくお願い致します。