Lec-11 ConvNet의 Conv 레이어 만들기

leban·2021년 11월 14일
0

딥러닝

목록 보기
15/18

# ConvNet의 Conv 레이어 만들기

: Convolutional Neural Network의 기본적인 아이디어는 고양이 실험에서 시작
: 뉴런이 모두 반응하는 것이 아닌 어떤 부분에서만 반응

Start with an image (width x height x depth)
: image - 32x32x3 - color

Let's focus on a small area only (5x5x3)
: filter - 5x5x3 - color

Get one number using the filter
: filter는 궁극적으로 한 값을 만들어냄
: 5x5x3개의 숫자가 들어있음
: Wx+b를 사용해서 한 개의 값을 만들어냄

Let's look at other areas with the same filtr(W)
: 똑같은 filter를 가지고 옆으로 넘기면서 전체 값들을 훑은 다음 하나의 값을 가져옴

How many numbers can we get?
: 7x7 input image
: 3x3 filter
: 5x5 output
: stride = 1 -> 한 칸씩 이동
: stride = 2 -> 3x3 output
: Output size -> (N-F)/stride+1
: image가 작아지면서 정보를 잃어버리는 문제가 생김

Common to zero pad the border
: padding 개념 사용 - 테두리에 0의 값을 두른다
: image가 작아지는 것을 방지
: 모서리를 network에 알려줌
: 같은 사이즈의 image가 output

Swiping the entire image
: 하나의 Convolution Layer를 만드는 방법
: 6개의 filter 적용 - 각각의 filter는 weight이 다르기 때문에 나오는 값이 조금씩 다름
: 6개의 filter를 Convolution Layer에 적용시키게 되면 깊이는 6이 된다.

Convolution layers

How many weight variables? How to set them?
: weight - 5x5x3x6
: weight - 5x5x6x10

# ConvNet Max pooling과 Full Network

Pooling layer (sampling)
: image에서 filter 처리 후 conv layer 만듬.
: 하나의 layer만 뽑아낸 후 사이즈를 작게 만들어줌 - Sampling
: Sampling한 값들을 다시 모아 다음 단계로 넘겨줌 - Pooling

MAX POOLING
: 가장 큰 값을 고르는 방법

Full Connected Layer (FC layer)
: 보통 마지막 단계에 POOLING 해줌 -> 원하는 만큼 깊이의 일반적인 NN(Nerual Network) 또는 fully connected layer에 넣어서 softmax classifier가 되어 하나의 레이블을 고르게 되는 형태로 CNN(Convolutional Neural Network) 구성

# ConvNet의 활용예

Case Study: LeNet-5
: 32x32 손으로 쓴 글씨 input이 주어지면 각각에 convolution을 함
: 5x5 filter를 사용하고 stride = 1을 사용
: 총 6개를 사용하게 되면 28x28, 6개의 depth가 있는 하나의 map이 나오게 될 것
: Subsampling 후 14x14, 6개의 depth가 나옴

Case Study: AlexNet

  • First layer (CONV1): 96 11x11x3 filters appplied at stride 4

  • First use of ReLU
  • dropout 0.5
  • 7 CNN ensemble: 18.2% -> 15.4%

Case Study: GoogleNet
: 다른 형태의 convolution을 사용하고 합치는 구조

Case Study: ResNet
: 152개의 깊은 layer 사용

Convolutional Neural Networks for Sentence Classification
: 이미지만 처리하는 것이 아니라 CNN(Convolutional Neural Network)을 가지고 여러 가지를 할 수 있음
: 텍스트를 CNN으로 처리하는데 성공

모두를 위한 딥러닝 시즌2 - Tensorflow

0개의 댓글