반응형

7.5 CNN구현하기

단순한 CNN의 네트워크 구성

 

OrderedDict 순서가 있는 딕셔너리

 

gradient()

순전파

self.loss()

 

역전파

dout = 1

dout = self.last_layer.backward(dout)

 

layers = list(self.layers.values())

layers.reverse()

for layer in layers:

  dout = layer.backward(dout)

 

7.6 cnn 시각화하기

 

 

계층이 깊어질수록 추출되는 정보(정확히는 강하게 반응하는 뉴런)는 더 추상화된다는 것을 알 수 있습니다.

 

AlexNet: 합성곱 계층과 풀링 계층을 여러 겹 쌓고 , 마지막으로 완전연결 계층을 거쳐 결과를 출력하는 구조입니다.

합성공 계층을 여러 개 쌓으면 , 층이 깊어지면서 더 복잡하고 추상화된 정보가 추출 된다는 것입니다.

처음 층은 단순한 에지에 반응하고 , 이어서 텍스처에 반응하고 , 더 복잡한 사물의 일부에 반응하도록 변화합니다.

즉 , 층이 깊어지면서 뉴런이 반응하는 대상이 단순한 모양에서 '고급' 정보로 변화해갑니다. 

다시 말하면 , 사물의 '의미'를 이해하도록 변화하는 것입니다.

 

 

7.7 대표적인 CNN

7.7.1 LeNet

cnn의 원조 LeNet

LeNet 은 손글 씨 숫자를 인식하는 네트워크로 , 1998 년 에 제안되였다.

합성곱 계층과 풀링계층(정확히는 단순히 '원소를 줄이기'만 하는 서버샘플링 계층)을 반복하고 , 마지막으로 완전연결 계층을 거치면서 결과를 출력

 

LeNet과 '현재의 CNN' 차이점:

활성화 함수  LeNet은 시그모이드 함수를 사용하는데 반해 ,현재는 ReLU를 사용

원래의 LeNet은 서브 샘플링을 하여 중간 데이터의 크기를 줄이지만 현재는 최대 풀링이 주류입니다.

 

큰 차이는 아니다. 

'첫 cnn'

 

7.7.1 AlexNet

딥러닝이 주목받도록 이끈 것 

2012년에 발표 

AlexNet 합성곱 계층과 풀링 계층을 거듭하며 마지막으로 완전연결 계층을 거쳐 결과를 출력합니다.

LeNet에서 큰 구조는 바뀌지 않았습니다만 , AlexNet에서는 다음과 같은 변화를 주었습니다.

활성화 함수로 ReLu를 이용

LRN(Local Response Normilization)이라는 국소적 정규화를 실시하는 계층을 이용

드롭아웃을 사용

 

gpu 

딥러닝 발전의 큰 원동력: 빅데이터와 gpu

 

반응형

' > 밀바닥부터 시작하는 딥러닝' 카테고리의 다른 글

08-2. 딥러닝  (0) 2021.01.04
08-1. 딥러닝  (0) 2020.12.28
07-2. 합성곱 신경망(cnn)  (0) 2020.12.09
07-1. 합성곱 신경망(cnn)  (0) 2020.11.19
06. 학습 관련 기술들  (0) 2020.10.20

+ Recent posts