[CS231n] 5강 정리

Dunno·2022년 7월 15일
0

CS231n 정리

목록 보기
2/5

CS231n Lec5. Convolutional Neural Network

1. Fully Connected Neural Network vs CNN

  • 기존 NN모델은 모든 노드가 서로 연결되어 있다.
  • 하지만 CNN의 특징은 모든 노드를 결합하지 않음으로써 연산량을 줄이고 효율성을 높이는 방식을 사용한다. → 기존의 ‘공간적 구조’를 보존시킨다.
  • CNN 모델의 목적 : 입력된 이미지 분류
    • 최종 분류를 위해서는 ‘주어진 목록에서 어떤 Label을 선택해야 하는가’ 가 핵심이다.
    • 최종 결과를 분류하기 위한 기반 정보를 모두 가지고 있어야 분류를 위한 Softmax 함수를 사용할 수 있다.
    • 지금까지 처리된 결과 데이터를 가진 모든 노드를 연결시켜 1차원 배열로 풀어서 표시한다.
    • 이 정보들을 이용해 분류를 수행한다.

2. Convolution Layer

  • Convolution Layer는 기존의 ‘공간적 구조’를 보존시킨다.

1) Convolution? 합성곱?

Conv2D(32, (5,5), padding='same', input_shape=(28,28,3), activation='relu')

2) Filter(Kernel)

  • 첫 번째 인자 : Convolution filter의 수
  • 두 번째 인자 : Convolution filter의 (행, 열)
    • 이미지의 특징을 찾아내기 위한 파라미터
    • 앞서 살펴 본 F(x) = WX + b 형태에서 W에 해당한다고 볼 수 있다.
    • 즉, Filter는 W와 같이 학습해야 할 대상이다.
    • 보통 Convolution Layer에서는 여러 개의 필터를 사용한다. → 필터마다 다른 특징을 추출하고 싶기 때문
    • 한 Layer에서 원하는 만큼 여러 개의 필터를 사용할 수 있다.

3) Feature map(Activation map)

  • 필터가 이미지를 순회하며 계산한 특징값들을 각 위치에 맞게 표현한 하나의 행렬

  • 예를 들면 이미지의 edges나 corner 등을 추출해 하나의 행렬을 만드는 것

4) stride

  • 필터가 이미지를 순회하는 간격을 설정해주는 파라미터
  • stride 값에 따라 feature map의 크기가 달라지고, 그만큼 특성을 추출하는 정도가 달라진다.
  • 주의
    • 만약 필터 크기, stride값, 입력 데이터 크기가 알맞지 않다면 에러가 발생할 수 있다.

5) padding

  • padding이란? Conv Layer에서는 Filter와 Stride로 인해 Feature Map의 크기가 입력데이터보다 작다. Conv Layer의 출력 데이터가 작아지는 것을 방지하는 방법이 Padding 또한 외곽의 특징을 추출하기 위해서도 많이 사용된다.

3. Pooling Layer

  • Conv Layer의 Output을 입력으로 받아서 Feature map의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용된다.
  • Pooling Layer를 통해 Downsampling을 하지 않는다면..
    • 더 많은 수의 파라미터를 사용하게 된다 → 학습 시간이 길어진다 → Overfitting이 발생할 가능성이 높아진다.

4. Fully-Connected Layer

  • Fully-Connected?
    1. Flatten() 함수를 통해 2차원 배열 형태의 이미지를 1차원 배열로 평탄화
    2. 활성화 함수를 통해 최종적으로 추출된 모든 특징들을 학습
    3. 학습된 결과를 Softmax 함수나 Sigmoid 함수와 같은 activation function을 통해 분류

0개의 댓글