👩🏻‍💻Standford CS231N Deep Learning -5

박수빈·2021년 6월 1일
0

CS231N

목록 보기
2/6

2020/09/20 깃헙 블로그 기록

5. Convolutional Neural Network

What is CNN

  • Neural Network와 기본적으로 동일
  • Input이 Image
  • 기존의 NN에서 이미지를 학습하면 파라미터의 수가 너무 많기 때문에 빠르게 overfitting 됨
  • width, height, depth 로 3D layer를 이용
  • 역사랑 실제 뉴런 내용은 패스

CNN 원리

image

  • filter를 이용해서 이미지의 부분부분을 하나의 점들(scalar값)으로 만듦
  • 점들을 합쳐서 다시 하나의 activation map 으로 만듦.
  • convolve가 activation map의 픽셀이 된다고 생각하면 쉬울 듯
  • stride-1 이고, 7*7 input, 3*3 filter

imageimage

  • 이렇게 stride만큼 이동하면서 하나의 activation을 뽑아내고, 그것들을 모아서 activation maps를 형성
  • output size = (N - F)/stride +1
  • padding
    - filter를 통해 image의 크기가 작아지니까, 크기 보존이 필요한 경우 이용
    - padding의 크기만큼 테두리에 0을 넣는다고 생각
    image
    - pad with 1
    - output size = (N+P*2-F)/stride +1

image

  • 여러 필터를 이용해 여러 겹의 activation map을 만듦 -> depth 생김
  • 이 필터들은 edge나 색, 또는 전체적인 형태를 도드러져 보이게 함
  • 위 사진의 경우 28*28*6의 image가 생겼다고 볼 수 있음
  • param 갯수: [Filter W * filter H * filter D +1(bias) ]* filter 갯수

image

  • 이 예시처럼 CNN은 CONV, non-linearity, POOL, FC(Fully-Connected)로 이루어짐
  • INPUT - CONV - RELU - POOL - FC 라면
    - CONV는 WH는 유지, D는 늘어남 (hidden layer 갯수만큼)
    - RELU는 CONV의 dimension을 유지
    - POOL은 downsampling. W
    H가 줄고, D는 유지
    - FC는 1*1*(# of class) 가 됨
    - RELU / POOL 는 fixed function
    - CONV / FC 는 trainned params. backpropagation 필요

Pooling

  • downsizing
  • max pooling
    image
    - max, 즉 가장 핵심적인 요인을 뽑아서 다음 layer로 넘기는 것
    - 겹치지 않고 section별로 도출
profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글