Case Studies
Classic Networks
LeNet - 5, AlexNet, VGG - 16 -> VGG - 19, ...
ResNets
Residual block: make shorcut from shallow layer to deeper layer (skip connection)
\( a^{[l + 2]} = g( z^{[l + 2]} + a^{[l]} ) \)
이론적으로는 plain network의 layer가 깊어질수록 training error가 낮아져야 하는데 practical 하게는 낮아지다가 높아진다.
하지만 ResNet을 사용했을 때에는 training error가 layer 수가 많아질수록 낮아진다.
Why ResNets Work?
Activation function이 ReLU라면,
$$ a^{[l + 2]} = g( z^{[l + 2]} + a^{[l]} ) $$
$$ = g( w^{[l + 2]} a^{[l + 1]} + b^{[l + 2]} + a^{[l]} ) $$
$$ = g( a^{[l]} ) $$
$$ = a^{[l]} $$
만약 regularization 때문에 weight와 bias가 0으로 간다면 \( a^{[l]} \)만 남을 것이다.
결국 layer 개수가 l인 network와 다를게 없어지는데 residual block을 추가함으로써 deep network의 성능을 손상시키지 않을 수 있다.
당연하지만 layer l과 layer l + 2의 shape이 같아야 한다.
Networks in Networks and 1x1 Convolutions
1x1 convolution으로 채널 수를 조절할 수 있다.
Inception Network Motivation
window size가 큰 convolution layer를 사용하면 computational cost가 너무 크다.
그렇다고 filter 개수를 줄인다면 해당 layer가 작아지고, 이 layer는 bottleneck layer로 작용할 수 있다.
따라서 1x1 convolution과 같은 작은 window size의 convolution을 concatenating 해서 inception module을 만든다면 적은 computational cost로 해당 layer의 사이즈를 유지할 수 있다.
Inception Network
이러한 inception module을 쓴 network가 inception network다.
MobileNet
Normal convolution: 위에서 계속해서 썼던 일반적인 convolution
Depthwise convolution: channel마다 다른 filter로 filtering (3d의 경우 2d filter가 channel num만큼 따로 있음)
Pointwise convolution: 동일한 1x1 filter를 channel 전역에 사용하는데 filter 개수만큼 (1x1 normal convolution랑 같은 것 같음)
=> Depthwise seperable convolution
computation cost를 normal convolution을 사용하는 것보다 획기적으로 줄임
MobileNet Architecture
MobileNet v1 => depthwise seperable convolution (depthwise + pointwise)
MobileNet v2 => residual connection, expansion -> depthwise -> projection (pointwise) (bottleneck block)
Expansion: pointwise convolution으로 크기를 키움
EfficientNet
network의 input resolution, depth, width 중 어떤 것을 늘리는 것이 performance에 좋을까
EfficientNet은 더욱 구조화된 방법으로 CNNs를 키우기 위해 간단하고 효과적인 compound coefficients를 사용하는 새로운 model scaling method다.
'Google Machine Learning Bootcamp 2022 > Convolutional Neural Networks' 카테고리의 다른 글
4. Special Applications: Face recognition & Neural Style Transfer #2 (0) | 2022.08.02 |
---|---|
4. Special Applications: Face recognition & Neural Style Transfer #1 (0) | 2022.08.02 |
3. Object Detection (0) | 2022.08.02 |
2. Deep Convolutional Models: Case Studies #2 (0) | 2022.08.01 |
1. Foundations of Convolutional Neural Networks (0) | 2022.07.28 |
댓글