본문 바로가기
딥러닝(Deep Learning)/D&A Deep Session

[D&A Deep Session] 4차시 - 7. CNN

by rahites 2022. 4. 2.

 

# CNN ( Convolutional Neural Nework, 합성곱 신경망 )

: 지역 정보를 학습시키기 위한 신경망 모형으로 완전연결 신경망과 달리 새롭게 Convolution Layer와 Pooling Layer를 사용한다. 또한 이미지의 Region Feature를 Convolution Layer와 Pooling Layer를 이용해 추출해 나온 Feature를 MLP의 input으로 사용하기 때문에 이미지 처리와 관련된 Vision분야에서 좋은 성능을 보인다.

 

* 완전연결 계층의 단점

: 데이터의 형상이 무시된다!! ( 몇차원의 데이터이든 1차원으로 변환해 입력해주기 때문 )

 

* 기본 구조

Convolution Layer : 지역 정보를 뽑아내기 위한 층

Pooling Layer : Feature의 차원을 줄이기 위한 층, CNN의 학습속도를 향상

- Max Pooling ( 해당 크기의 영역에서 가장 큰 원소를 선택, 이미지 인식 분야에서 주로 사용 ) 

- AveragePooling ( 해당 크기의 영역에서 평균 값으로 선택 )

- Cross Channel Pooling ( 여러개의 채널 中 해당 영역의 가장 큰 값으로 선택, 피처맵의 크기는 유지하고 채널 수만 줄임 )

특징 : 학습해야 하는 매개변수 X, 채널 수의 유지, 입력의 변화에 영향을 적게 받는다

 

Fully Connected Layer : 최종적으로 분류를 실행하는 층 ( 일반적인 MLP 구조 )

Pooling Layer에서 나온 Feature를 Flatten시켜 MLP의 Input값으로 학습을 진행한다. 

 

 

* 합성곱 연산

: 필터의 윈도우를 일정 간격으로 이동해가며 입력 데이터에 적용하는 것으로 입력과 필터에서 각각 대응하는 원소끼리 곱한 후 총합을 구해 출력 데이터의 원소로 저장한다.

 

- Channel : 이미지 픽셀 하나하나의 실수, 컬러 사진은 각 픽셀을 RGB 3개의 실수로 표현한 3차원 데이터

 

- Filter ( Kernel ) : 이미지의 특징을 찾아내기 위한 공용 파라미터로 일반적으로 (3,3), (4,4)와 같은 정사각 행렬로 정의한다. CNN의 학습은 필터 파라미터를 대상으로 이루어지고, 필터는 입력데이터를 순회하며 채널별로 합성곱을 진행한다.

 

- 편향 : CNN에서도 편향이 존재하는데 입력데이터에 대해 필터를 적용해 원하는 크기로 출력한뒤 해당 편향값을 모든 원소에 더해준다. ( 편향은 항상 1*1 )

 

- 패딩 : 합성곱 연산을 수행하기 전에 입력 데이터 주변을 특정값으로 채우는 기법 ( 출력 크기를 조정 )

Full padding(모든 요소들을 같은 비율로)

Same Padding(output크기를 input크기와 동일하게)

Valid Padding(패딩을 하지 않음)

Zero Padding(패딩에 들어가는 값을 0으로)

 

- 스트라이드 : 필터를 적용하는 위치의 간격, 스트라이드를 키우면 출력 크기는 작아진다. ( Weight sharing을 하게될 경우 중복된 값이 계속 나오는 것을 방지 ) 

 

출력 크기의 계산

cf. ) 3차원 데이터의 합성곱 연산

: 입력 데이터와 필터의 합성곱 연산을 채널마다 수행하고 결과를 더해서 하나의 출력 값으로 만듦

( 입력 데이터의 채널 수와 필터의 채널 수가 같아야한다!! & 모든 채널의 필터 크기는 같아야 한다!! )

 

* CNN 예시

1. LeNet

: 손글씨 숫자를 인식하는 네트워크, Sigmoid 활성화 함수를 사용

 

2. AlexNet

: 2012년에 발표, 합성곱 계층과 풀링 계층을 반복하며 완전연결 계층을 통과해 출력한다. ReLU 활성화 함수를 사용, 드롭아웃을 사용

 

---- 참고 : CNN이 필터를 이동시키면서 weight를 sharing하며 파라미터를 최대한 줄일 수 있다는 장점 ----

https://89douner.tistory.com/58

 

 

4. CNN은 왜 이미지영역에서 두각을 나타나게 된건가요?

안녕하세요~ 이번 시간에는 DNN의 단점을 바탕으로 CNN이 왜 이미지 영역에서 더 좋은 성과를 보여주는지 말씀드릴거에요~ 1) Weight(가중치) parameter 감소 (가중치 parameter가 많으면 안되는 이유를 참

89douner.tistory.com

 

댓글