CNN in NCIA

Introducing CNN !!

CNN is space to learn 딥러닝 영상처리(CNN) with TensorFlow.

Contents

Table of Contents

NoTitleRemarks
0강사소개강사소개
1환경설정환경설정
2Note강의노트

Teacher


Data & Source

Table of Data & Source

NoTitleEducational InstitutionSourceRemarks
1Softmax차세대융합콘텐츠산업협회softmax.ipynbSoftmax
2Iris차세대융합콘텐츠산업협회softmax_IRIS.ipynbIris 분류
3MNIST차세대융합콘텐츠산업협회MNIST.ipynbMNIST
4MNIST CNN차세대융합콘텐츠산업협회MNIST-CNN.ipynbMNIST CNN
5Lenet5차세대융합콘텐츠산업협회Lenet5.ipynbLenet5
6tfLayer차세대융합콘텐츠산업협회tfLayer.ipynbtfLayer
7scope차세대융합콘텐츠산업협회scope.ipynbscope
8slim차세대융합콘텐츠산업협회slim.ipynbslim
9AutoEncoder차세대융합콘텐츠산업협회AutoEncoder.ipynb오토인코더
10GAN차세대융합콘텐츠산업협회GAN.ipynbGAN
11Augmentor차세대융합콘텐츠산업협회Augmentor.ipynbAugmentor
12tflite차세대융합콘텐츠산업협회tflite.ipynb텐서플로우 라이트
13Flask차세대융합콘텐츠산업협회Flask.ipynbFlask

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

  • Flask를 쓰다가 장고로 써야 한다

Reference