인공지능에 대한 개념과 준비
- CNN을 이해하기 위한 전제적인 큰 그림
- CNN을 이해하기 위해하기 위해 알아야 할 것
- 개발 준비
- 구글 코랩 사용 이유
- 난이도가 쉬우면서도 현업에서도 프로토타입 사용되는 환경
- Markdown 지원
- Numpy부터 Matplotlib 기초
- Tensorflow, Pytorch 프레임워크 사용 전 기초가 되는 라이브러리
딥러닝 전체 구조 및 학습과정
- Data
- 학습시키기 위한 데이터. 모델에 삽입되기 전 전처리과정이 필요함.
- 모델에 삽입 시 Batch로 만들어서 Model로 넣어줌
- Model
- LeNet, AlexNet, Vgg나 ResNet 등 다양하게 설계된 모델
- Convolution Layer, Pooling 등 다양한 Layer 층들로 구성
- 이 모델 안에 학습 파라미터가 있고, 이 모델이 학습의 대상이 된다.
- 프로젝트에 따라 어떤 모델을 사용할 것인지 결정됨..
- Prediction / Logit
- 각 Class별로 예측한 값.
- 가장 높은 값이 모델이 예상하는 class 또는 정답
- Loss / Cost
- 예측한 값과 정답과 비교해서 얼마나 틀렸는지를 확인
- Cross Entropy등 다양한 Loss(Cost) Function들이 있음
- 이 Loss는 "얼마나 틀렸는 지"를 말하며 이 값을 최대한 줄이는 것이 학습의 과정
- Optimization
- Loss 값을 최소화하기 위해 기울기를 받아 최적화된 Variable 값들로 반환
- 이 반환된 값이 적용된 모델은 바로 전에 돌렸을 떄의 결과보다 더 나아지게 됨
- 최적화된 값만큼 바로 움직이는 것이 아니라 Learning Rate 만큼 움직인 값이 적용
- Result
- 평가할 때 또는 예측된 결과를 확인 할 때는 예측된 값에서 argmax를 통해 가장 높은 값을 예측한 class라고 둠
딥러닝 용어
모델 구조
- CNN은 Convolution Layer ,LeRU, Max Pooling이라는 레이어로 층층히 쌓여있음
CNN 의 2가지 영역
Activation Function (LeRU)
- 앞에서 추출한 특징 중 불필요한 것들을 제거해주는 것, ( 0미만... )
- Classification
⇒ 결정(예측)을 내리는 곳
- Fully Connected
y = ax + b
:: y가 9라고 할 때 앞에서 받은 feature들을 이용하여, x를 넣었을 때 9가 나올 수 있도록 layer 하나하나에서 weight와 bias가 유도 하는 것.
- 모델들을 보면 전부 위와 같은 과정을 걸쳐 구성되어 있음을 확인할 수 있다.