본문 바로가기

딥러닝과 머신러닝

CNN(Convolutional Neural Networks) (2024-06-20)

 1. CNN(Convolutional Neural Networks)

* 합성곱 인공 신경망
* 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 붙인 형태
* 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류
 

 

 

 2. Convolution 연산

* 컨볼루션 연산을 진행하면 출력 텐서의 크기가 작아짐


 
 
 
* 패딩 : 입력값 주위로 0을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지
 

 


 
* 2D 컨볼루션 : 컬러이미지에서는 2D 컨볼루션 연산을 수행
 

 
*  풀링 : 중요한 특징을 추출하고 차원을 축소하기 위해 풀링 연산을 사용. MaxPool 또는 AvgPool사용

 

* 스트라이드 : 필터를 적용하는 간격을 설정
 
* 드롭 아웃(dropout) 레이어
  * 오버피팅을 막기 위해 사용하는 레이어
  * 학습중일 때 랜덤하게 값을 발생하여 학습을 방해함으로 학습용 데이터의 결과가 치우치는 것을 방지함

* FC레이어
  * 이미지를 분류 또는 예측하기 위해 사용되는 레이어
 
 

 

 

 3. CNN을 구성하는 레이어

* Conv2D : 특징 추출
* ReLU : 활성화 함수
* MaxPool2D: 차원 축소
* Conv2D : 특징 추출
* ReLU : 활성화 함수
* MaxPool2D: 차원 축소
* ...
* Flatten : 다차원에서 1차원으로 변경
* Linear : 선형회귀
* ReLU : 활성화 함수
* ...
* Sigmoid / Softmax 함수에 대한 출력
 

 4. CNN 체험하기