인공지능에 대한 개념과 준비

movinggirl·2020년 1월 14일
1

인공지능에 대한 개념과 준비

  • CNN을 이해하기 위한 전제적인 큰 그림
    • CNN을 이해하기 위해하기 위해 알아야 할 것
  • 개발 준비
    • 구글 코랩 사용 이유
      • 난이도가 쉬우면서도 현업에서도 프로토타입 사용되는 환경
      • Markdown 지원
    • Numpy부터 Matplotlib 기초
      • Tensorflow, Pytorch 프레임워크 사용 전 기초가 되는 라이브러리

딥러닝 전체 구조 및 학습과정

  1. Data
    • 학습시키기 위한 데이터. 모델에 삽입되기 전 전처리과정이 필요함.
    • 모델에 삽입 시 Batch로 만들어서 Model로 넣어줌
  2. Model
    • LeNet, AlexNet, Vgg나 ResNet 등 다양하게 설계된 모델
    • Convolution Layer, Pooling 등 다양한 Layer 층들로 구성
    • 이 모델 안에 학습 파라미터가 있고, 이 모델이 학습의 대상이 된다.
    • 프로젝트에 따라 어떤 모델을 사용할 것인지 결정됨..
  3. Prediction / Logit
    • 각 Class별로 예측한 값.
    • 가장 높은 값이 모델이 예상하는 class 또는 정답
  4. Loss / Cost
    • 예측한 값과 정답과 비교해서 얼마나 틀렸는지를 확인
    • Cross Entropy등 다양한 Loss(Cost) Function들이 있음
    • 이 Loss는 "얼마나 틀렸는 지"를 말하며 이 값을 최대한 줄이는 것이 학습의 과정
  5. Optimization
    • Loss 값을 최소화하기 위해 기울기를 받아 최적화된 Variable 값들로 반환
    • 이 반환된 값이 적용된 모델은 바로 전에 돌렸을 떄의 결과보다 더 나아지게 됨
    • 최적화된 값만큼 바로 움직이는 것이 아니라 Learning Rate 만큼 움직인 값이 적용
  6. Result
    • 평가할 때 또는 예측된 결과를 확인 할 때는 예측된 값에서 argmax를 통해 가장 높은 값을 예측한 class라고 둠

딥러닝 용어

  • Model

    • 학습 및 최적화 시키는 대상. 여러 Layer로 구성되어있음. AI 의 본체라고 볼 수 있음.
  • Layer

    • Input layer , hidden layer, output layer.
    • 깊게 쌓으면 feature을 디테일하게 뽑을 수 있기 때문에 정확할 수 있지만, 무거운 프로그램이 되어 성능상의 문제가 발생할 수 있음.
  • Convolution

    • CNN ( Convolution Neural Network )
    • 합성곱
    • 특정이미지가 있다고 하면 Convolution Kernel 이라고 하는 필터를 거쳐서 Feature Map이 도출됨.
    • 어떤 필터를 사용하냐에 따라서 Input에 대해 도출하는 특징이 달라짐.
  • Weight / Filter / Kernel / Variable

    • Weight : 학습하려고 하는 대상.
      y= ax + b ⇒ y: output / x : input / a : weight / b : bias
    • Filter : 고정된 값이 아님. 필터의 값을 바꿔가면서 Feature를 더 디테일하게 뽑아낼 수 있는 것.
  • Pooling Layer

    • Feature를 뽑았으면 Pooling Layer가 그것을 줄여준다.
    • Convolved feature(특징을 뽑는 레이어층) ⇒ Pooled feature(압축을 하는 레이어층)
  • Activation Function

    • 앞에서 특징을 뽑았으면, 음수값이나 불필요한 값들을 제거하는 작업...
    • ReLU 를 많이 사용
  • Softmax

    • 앞에서 받은 어떤 집합을 확률로 나타나게 해주는 것이 Softmax라고 생각하면됨.. 일단..
  • Hyper Parameter (하이퍼 파라미터 )

    • Learning Rate
  • Batch Size

    • 모델에 모든 데이터를 한번에 넣어줄 수 없다. 데이터들을 나눠서 넣어줘야 함. 32, 64, 128, ...
  • Epoch

    • 반복해서 데이터를 봐야함. 전체데이터를 한번봤을 때가 1Epoch, 두번 2Epoch...
    • 전체 데이터를 Epoch 수만큼 본다고 생각하면 됨.
  • Train, Validation, Test

    • 인공지능을 훈련시킬 땐 Train Set, 평가할 때는 Test Set을 사용
  • Label / Ground Truth

    • 데이터 셋이 군별로 나눠진 기준, 데이터셋의 정답을 Label이라고 함.

모델 구조

  • CNN은 Convolution Layer ,LeRU, Max Pooling이라는 레이어로 층층히 쌓여있음

CNN 의 2가지 영역

  • Feature Extraction (특징 추출)

    특징(패턴)을 뽑는 곳

    • Convolution Layer

    • Pooling Layer (Max Pooling)

      • 앞에서 특징을 뽑았다면 그 큰 특징들, 중요한 것들만 뽑아내는 과정. 압축단계

Activation Function (LeRU)

  • 앞에서 추출한 특징 중 불필요한 것들을 제거해주는 것, ( 0미만... )

  • Classification
    결정(예측)을 내리는 곳
    - Fully Connected
    y = ax + b
    :: y가 9라고 할 때 앞에서 받은 feature들을 이용하여, x를 넣었을 때 9가 나올 수 있도록 layer 하나하나에서 weight와 bias가 유도 하는 것.
  • 모델들을 보면 전부 위와 같은 과정을 걸쳐 구성되어 있음을 확인할 수 있다.

0개의 댓글