일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 딥러닝
- 데이터분석
- 머신러닝
- Deeplearning
- resnet
- 통계
- mnist
- 빅분기
- 데이터EDA
- machinelearning
- 인공지능
- 데이터전처리
- 데이터모델링
- AI
- 의학통계
- CNN
- Keras
- 빅데이터분석기사
- Python
- ComputerVision
- 파이썬
- 텐서플로우
- TensorFlow
- 케라스
- 코딩테스트
- 컴퓨터비전
- 데이터분석가
- 의학논문
- 데이터사이언스
- 빅분기실기
- Today
- Total
Be Brave, Be Humble
00_Introduction_to_CNN 본문
https://github.com/FulISun/Computer_Vision/blob/main/CNN/Introduction_to_CNN.ipynb

등장배경: 기존 신경망(NN)은 input을 받을 때, 이미지의 픽셀을 vector로 바꾸어 숫자로 받음. 그런데 이미지는 'feature', 'position'이라는 중요한 두 가지 특징을 가짐.
자동차를 예로 들면, 자동차는 동그란 바퀴(feature)가 네모난 몸체 밑(position)에 있음.
즉, 중요 특징과 그 위치를 파악해야 하는데 vector로는 알 수가 없음. 신경망 입장에선 얘가 이미지 데이터인지 텍스트 데이터인지 알 길이 없단 의미.
=> 이미지 자체로 넣자! => "CNN 등장"
+) 반면, '언어'는 '순서'가 중요함
I work at google.
I google at work.
두 문장은 같은 단어로 구성되어 있지만 의미가 전혀 다름. => 순서를 고려하자! => "RNN, LSTM"
CNN의 아키텍처를 큰 틀로 보면
Input -> integral(f(x)g(x-t)) -> Y-t 로 볼 수 있음
중간에 적분 연산이 Convolution이라 불리는 연산이며, CNN의 C임.
이전에 Introduction에서 딥러닝과 머신러닝은 Y를 예측하기 위해 weights와 bias를 업데이트 하는 과정이라고 했음. CNN에서는 weight의 집합체인 g(x)를 업데이트 하는 것임. 이 g(x)는 '필터' 혹은 '커널'이라고 불림.
식에서 알 수 있듯이 input인 f(x)와 g(x)는 1:1대응이므로 f(x) 채널의 수만큼 g(x)가 필요하며,
t가 먼저 정해져야 연산이 가능하고,
입력인 f(x)는 변하지 않으니, g(x)만큼 쪼개서 변화시켜 Y를 예측하는 것임
- 필터 하나 당 bias는 1개
- 필터 사이즈 = 가중치 수
즉, 이미지의 크기가 (3,3,1)이라면 필요한 파라미터는 w:9 + b:1 => 총 10개
자료를 찾아보면 알겠지만, 필터가 이미지를 이동하며 행렬연산을 하기 때문에 이 행렬연산에는 feature의 위치정보가 담김. 그렇기 때문에 Conv 연산된 행렬에 bias를 더한 값을 흔히들 알고있는 "Feature map"이라고 부르는 것임. 이미지의 feature를 알 수 있는 map이기 때문에!
입력은 3차원 tensor인 이미지를 받으며,
Convolution층은
conv (공간의 중요한 특징을 뽑아냄) => relu (비선형성 추가) => pooling (결과 압축)으로 이루어져 있음.
- conv: 입력데이터와 가중치의 집합체인 필터와의 컨볼루션 연산을 통해 입력 데이터의 feature 추출.
- pooling: 입력 정보를 최대값, 최소값, 평균 등으로 압축하여 데이터의 연산량을 줄여줌. 흔히 max pooling이라 하는 최대값을 사용함.
'AI > Computer Vision' 카테고리의 다른 글
02_NN_MNIST_sparse_dropout_batchnormalization (0) | 2022.08.01 |
---|---|
01_NN_MNIST_example_onehot (0) | 2022.08.01 |
04_kaggle_diabetes_data (0) | 2022.08.01 |
03_pandas quick review (0) | 2022.08.01 |
02_TF_2_x_2_LogisticRegression_MultiClassification_Example (0) | 2022.08.01 |