728x90
1. CNN(Convolutional Neural Networks)
- 합성곱 인공 신경망
- 전통적인 뉴럴 네트워크에 컨볼루션 레이어를 붙인 형태
- 컨볼루션 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류
1-1. CNN을 사용하는 이유
- 이미지를 분류할 때 DNN(Deep Neural Network)의 문제점
- 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함
- 2차원 이상의 데이터가 입력되는 경우 flatten 시켜서 한 줄로 데이터를 변환 후 넣어야 함
- 이미지(영상)의 공간적/지역적 정보가 손실
- CNN은 이미지를 그대로(Raw Input) 받음으로 공간적/지역적 정보를 유지
1-2. CNN에서의 이미지 데이터
- 컬러 이미지는 3개의 채널로 이루어진 텐서
- 컴퓨터는 이미지를 숫자로 인식하여 연산을 함(0~255)
- 이미지 정보는 0~255까지의 256개의 숫자로 표현
- 빨강 255, 파랑 255, 녹색 255 -> 흰색
- 빨강 0, 파랑 0, 녹색 0 -> 검정
- 빨강 255, 파랑 0, 녹색 0 -> 빨강
2. Convolution 연산
- 컨볼루션 연산을 진행하면 출력 텐서의 크기가 작아짐
- 패딩: 입력값 주위로 0을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지
- 2D 컨볼루션: 컬러 이미지에서는 2D 컨볼루션 연산을 수행
- 풀링: 중요한 특징을 추출하고 차원을 축소하기 우해 풀링 연산을 사용, MaxPool 또는 AvgPool을 사용
- 스트라이드: 필터를 적용하는 간격을 설정
- 드롭아웃(dropout) 레이어
- 오버피팅을 막기 위해 사용하는 레이어
- 학습 중일 때 랜덤하게 값을 발생하여 학습을 방해함으로써 학습용 데이터의 결과가 치우치는 것을 방지함
- FC 레이어
- 이미지를 분류 또는 예측하기 위해 사용하는 레이어
3. CNN을 구성하는 레이어
- Conv2D: 특징 추출
- ReLU: 활성화 함수
- MaxPool2D: 차원 축소
- Conv2D: 특징 추출
- ReLU: 활성화 함수
- MaxPool2D: 차원 축소
- ... (반복)
- Flatten: 다차원에서 1차원으로 변경(펼친다)
- Linear: 선형 회귀
- ReLU: 활성화 함수
- Linear: 선형 회귀
- ReLU: 활성화 함수
- ... (반복)
- Sigmoid / Softmax 함수에 대한 출력
4. 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
728x90