1. CNN이란?
- Convolutional Neural Networks의 약자이다.
- 합성곱 인공 신경망
- 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 부팅ㄴ 형태
- 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류

- CNN의 특징을 알려주는 부분 : Feature Maps
- 딥러닝 부분을 알려주는 부분 : Fully connected layer
2. CNN을 사용하는 이유
- 이미지를 분류할 때 DNN(Deep Neural Network)의 문제점이 있었음
- 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함.
- 2차원 이상의 데이터가 입력되는 경우 flatten 시켜서 한 줄로 데이터를 변환 후 넣어야 함.
- 이미지의 공간적/지역적 정보가 손실
- DNN의 문제점을 해결하기 위해 이미지를 그대로(Row Input) 받음으로 공간적/지역적 정보를 유지 함.
3. 이미지 데이터
- 컬러 이미지는 3개의 채널로 이루어진 텐서를 말함
- 컴퓨터는 이미지를 숫자로 인식하여 연산을 진행 함.


- 이미지의 정보는 0 ~ 255까지 256개의 숫자로 표현
- 예) 빨강 255, 파랑 255, 초록 255 = 흰색
- 예) 빨강 0, 파랑 0, 초록 0 = 검정
- 예) 빨강 255, 파랑 0, 초록 0 = 빨강
4. Convolution 연산

- 컨볼루션 연산을 진행하면 출력 텐서의 크기가 작아짐
- 전방행렬 : 가로, 세로 길이가 같은 행렬을 뜻함.
5. 패딩
- 입력값 주위로 0을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지함.

6. 2D 컨볼루션
- 컬러이미지에서는 2D 컨볼루션 연산을 수행함.(입력을 3개의 채널로 들어갔지만 출력은 1개로 나온다)

7. 폴링
- 중요한 특징을 추출하고 차원을 축소하기 위해 풀링 연산을 사용함
- MaxPool(MaxPool2D), AvgPool(AvgPool2D)

- 스트라이드(stride)
- 필터를 적용하는 간격을 설정함
- 필터를 적용해서 얻어낸 결과를 Feature map 또는 Activation map이라고 부름
8. 드롭아웃(Dropout) 레이어
- 오버피팅을 막기 위해 사용하는 레이어를 뜻함.
- 학습중일 때 랜덤하게 값을 발생하여 학습을 방해함으로 학습용 데이터에 결과가 치우치는 것을 방지함
9. FC Layer(Fully Connected Layer)
- 이미지를 분류 또는 설명하기 위해 예측하는 레이어를 뜻함.
CNN 체험하기
▷ 아래의 링크에 접속하여 어떤 방식으로 해당 숫자가 인식되었는지 확인이 가능합니다.
https://adamharley.com/nn_vis/
An Interactive Node-Link Visualization of Convolutional Neural Networks
An Interactive Node-Link Visualization of Convolutional Neural Networks Adam W. Harley Abstract Convolutional neural networks are at the core of state-of-the-art approaches to a variety of computer vision tasks. Visualizations of neural networks typically
adamharley.com
CNN을 구성하는 레이어
- Conv2D : 특징 추출
- ReLU : 활성화 함수
- MaxPool2D : 차원 축소
- Conv2D : 특징 추출
- ReLU : 활성화 함수
- MaxPool2D : 차원 축소
- ...
- Flatten : 다차원에서 1차원으로 변경
- Linear : 선형 회귀
- ReLU : 활성화 함수
- ...
- Sigmoid 또는 Softmax로 출력
'Study > 머신러닝과 딥러닝' 카테고리의 다른 글
| [머신러닝과 딥러닝] 21. 전이 학습(에일리언 VS 프레데터 데이터셋 활용) (1) | 2024.01.11 |
|---|---|
| [머신러닝과 딥러닝] 20. 간단한 CNN 모델 만들기 + MNIST 분류하기 (1) | 2024.01.10 |
| [머신러닝과 딥러닝] 18. 비선형 활성화 함수 (0) | 2024.01.10 |
| [머신러닝과 딥러닝] 17. 딥러닝(AND, OR, XOR 게이트) (1) | 2024.01.10 |
| [머신러닝과 딥러닝] 16. 데이터 로더(손글씨 인식 모델) (0) | 2024.01.10 |