본문 바로가기
AI/딥러닝

07. CNN 기초

by 사라리24 2024. 6. 20.
SMALL



1. CNN(Convolutional Neural Networks)

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

 

 


1. CNN을 사용하는 이유

 * 이미지 분류할 때 DNN(Deep Neural Network)의 문제점
    - 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함
    - 2차원 이상의 데이터가 입력되는 경우는 flatten 시켜서 한줄로 데이터를 변환 후 넣어야 함
    - 이미지의 공간적/지역적 정보가 손실됨
 * DNN의 문제점을 해결하기 위해 이미지를 그대로(Raw Input) 발음으로 공간적/ 지역적 정보를 유지

 

 


2. CNN에서의 이미지 데이터

 * 컬러 이미지는 3개의 채널에서 이루어진 텐서
* 컴퓨터는 이미지를 숫자로 인식하여 연산을 함

 

* 이미지의 정보는 0~255까지 256개의 숫자로 표현
- 빨강 255, 파랑 255, 초록 255은 흰색
- 빨강 0, 파랑 0, 초록 0은 검정
- 빨강 255, 파랑 0, 초록 0은 빨강

 

 

 

2. Convolution 연산

 

 







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




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


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




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

* 스트라이드 : 필터를 적용하는 간격의 설정

드롭아웃(dropout)레이어

    * 오버피팅을 막기 위해 사용하는 레이어
    * 학습중일 때 랜덤하게 값을 발생하여 학습을 방해함으로 학습용 데이터의 결과가 치우지는 것을 방지함


* FC 레이어

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

 

@. CNN을 구성하는 레이어

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

 

@. CNN 체험해보기

* 사이트: https://adamharley.com/nn_vis/

 

 

'AI > 딥러닝' 카테고리의 다른 글

09. 전이학습  (0) 2024.06.21
08. 간단한 CNN 모델 만들기  (0) 2024.06.20
06. 비선형 활성화 함수  (0) 2024.06.20
05. 딥러닝  (0) 2024.06.20
04. 데이터로더(Data Loader)  (0) 2024.06.20