Introducing CNN !!
CNN is space to learn 딥러닝 영상처리(CNN) with TensorFlow.
Contents
Table of Contents
Teacher
- 강사님 블로그
- 이메일 : applekoong@naver.com
- 성함 : 김정훈
Data & Source
Table of Data & Source
Get Started
1. Python
2. Pycharm
- pycharm 다운로드
- commnunity 다운로드
- Alt + 1 : 프로젝트 창
- Alt + 4 : 결과 창
- Ctrl + Shift + F10 : 실행
- Setting > Editor > Font Consolas Size : 20
3. 라이브러리
- tensorflow, matplotlib 설치
- Augmentor 설치
- Flask 설치
Note
1. Logistic Regression
- 데스모드
- x는 sigmoid를 통확한 값
- y는 cost function
- y가 1값일때 우하향 0일때 우상향
- cost function이 작아야 한다
2. Softmax Cross-Entropy
- W : 분류 class의 갯수
- x : Feature의 갯수
- activation 함수는 0, 1사이
- sotfmax는 전체 1로 만들어서 확률
- 실제로 단순하게 더하면, -가 있어서, 오일러함수를 통해 지수로 해서 더한다.
- one-hot encoding ( )
- 0.7 → 1.0의 거리, 0.2 → 0, 0.1 → 0의 거리
- ∵ log가 한번, Li는 0을 곱해서 1.0을 가기위한 계산이다 (연산량을 늘릴필요 없다.)
3. CNN
- Convolution은 두꺼워지고, Pooling은 축소된다
- Convolution의 Filter는 weight가 있음
- Pooling의 Filter는 2*2 filter는 weight가 없음
- Weight가 있고 없고가 중요한 점은 overfit가 되느냐 않느냐
- CNN의 Local Invariance는 약간의 rotation을 구별하고 있다.
4. VGG
- PRE-TRAINED MODEL
- 전이 학습부터 시작하는 것이 좋다
- 맨 밑바닥부터 시작하는 것은 scratch
- 캐라스는 Pre-Trained 모델은 지원
- 케라스 사용 목적이 Pre-Trained 모델을 사용하기 위해서라고 해도 과언이 아니다.
- 패스트캠퍼스 강의
5. GoogleNet
- 분기에서 각 분기의 선을 모두 갔다가 merge 한다.
- Inception : Branch를 가지고 있는 모델
- 중간의 분기 그룹을 Inception이라고 부른다.
- One by one convolution을 사용 : weight의 갯수를 줄이면서 성능저하가 거의 발생하지 않는다.
- Filter의 개수 = Channel의 갯수 = Feature map이라고 한다.
- 대부분의 영상처리는 끝에 값이 의미가 없어서 버리기도 한다 149 → 147
- 7 * 7 Filter를 써서 크게 특징을 잡기도 한다.
- 1 * 1 Convolution을 사용하여 연산량을 많이 줄였다.
6. ResNet
- 앞의 모델들은 분류만 잘한다.
- 그러나 ResNet 이미지 Detection등 모든 분야에서 잘한다.(범용적)
- Degradation : Layer를 많이 쌓아도 결과가 좋아 지지 않는 현상
- Degradation문제를 완화시켰다.
- Residual learning building block
- F(x) → F(x) + x: x를 제외한 나머지를 학습하게 했다.
7. AutoEncoder
- Data augmentation 보다 더 많은 original 가까운 이미지를 얻을수 있을것 같다.
- 정량적으로 잘되었다 안되었다 판단하기 어렵다.
- 입력과 출력이 같아야 한다. 원본과 같은 크기로만 가능하다 → 즉 축소와 확대는 자체적으로 할수는 없다.
- VAE(Vari)
8. GAN
- Generator : 위조지페범
- cost의 개념은 의미가 없다, 한쪽이 좋아지면 다른쪽이 안좋아진다.
9. Augmentation
- Augmentor는 다른 라이브러리보다 pipeline기능이 있다.
- 이미지를 증강하는 방법 : 1. Memory (매번 새롭게 만든다) 2. File (예: Augmentor)
- Keras는 memory에서 증강
10. TensorFlow lite
Reference