본문 바로가기

cnn6

[CNN] ResNet50 Implementation(Keras) ResNet 구조 구현 import tensorflow as tf from tensorflow.keras.models import Model, Sequential from tensorflow.keras.layers import ( Activation, BatchNormalization, Dense, Flatten, Add, Input, Conv2D, MaxPool2D, GlobalAvgPool2D, Concatenate ) from tensorflow.keras.regularizers import l2 사용할 구조 정의 def _bn_relu(inputs): x = BatchNormalization()(inputs) x = Activation('relu')(x) return x def _conv(inpu.. 2021. 8. 9.
[CNN] GoogLeNet Implementation (Keras) GoogLeNet https://arxiv.org/pdf/1409.4842.pdf 위 논문에 따라 Keras로 구현해보았다. 논문의 unit과 num_class는 각각 1024, 1000 이다. Auxiliary Classifier def AuxiliaryClassifier(inputs, name=None): x = AveragePooling2D((5,5), strides=3, padding='valid')(inputs) x = Conv2D(128, (1,1), strides=1, padding='same', activation='relu', kernel_initializer=kernel_initializer, bias_initializer=bias_initializer)(x) x = Flatten()(.. 2021. 8. 6.
[CNN] DenseNet 요약 DenseNet DenseNet은 ResNet의 아이디어(Skip-Connection)를 계승한 Dense-Connectivity를 사용해 좋은 성능을 냈다. Dense Block을 제안하고 있으며, 내부적으로는 ResNet과 같은 Pre-activation 구조를 사용한다. 1. Dense-Connectivity ResNet의 Skip-Connection과 DenseNet의 Dense-Connectivity의 수식을 보면 다음과 같다. Skip-Connection | $x_{l} = f(x_{l-1}) + x_{l-1}$ Dense-Connectivity | $x_{l} = f([x_{0}, x_{1}, ..., x_{l-1}])$ Skip-Connection은 이전의 feature들을 계속해서 Add.. 2021. 8. 4.
[CNN] ResNet 요약 Problems of Deep CNN 일반적으로 네트워크가 깊고 넓을수록 성능이 더 나을 것이라는 사실이 널리 알려져 있었는데, 이에 반하는 결과들이 나타나기 시작했다. 더 Depp한 네트워크가 적어도 Train Set에서는(Overfitting이 발생하더라도) 더 나은 성능이 나타나야 하는데 트레이닝과 테스트 모두에서 더 낮은 성능을 기록한 것이다. 이는 네트워크가 깊어질수록 각 weight들을 최적화 하는것이 어렵고, Gradient Vanishing 문제가 발생할 수 있기 때문이다. ResNet은 이를 해결하고 더 깊은 레이어의 학습에도 성공했다. ResNet Residual 구조에서 추가된 Skip-Connection 이 주요한 역할을 함 Skip-connection 처음 제안되었던 Skip Co.. 2021. 8. 3.