ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS230] C4M2 - Convolutional Neural Networks
    전공 2020. 5. 24. 23:56

    [ Case studies ]

    Why look at case studies?

    - 특정 영역에서 효과적인 신경망 조합을 다른 분야 적용 가능하기에 샘플들 살펴볼 예정.

    - 종류: Classic networks(LeNet - 5 , AlexNet, VGG), ResNet, Inception

     

    Classic Networks

    LeNet - 5 : 손글씨 인식

    - 현재에도 유용한 LaNet - 5 의 특징:

    1) 신경망이 깊어질 수록 가로 세로 너비 감소, 채널의 수 증가

    2) 패턴: conv - pool - conv - pool - fc - fc - output 

    3) 60k parameters

    - 요즘엔 안쓰이는 LaNet - 5 의 특징:

    1) 비선형 함수로 sigmoid, tanh(relu없었던 시절) 사용

    2) 비선형 함수를 pooling 뒤에서 사용 ex. conv - pool - (비선형) - conv - pool - fc - fc - output 

    AlexNet

    - LeNet과 유사하지만 훨씬 더 큰 크기 60m parameters

    - 비선형: relu 사용

    VGG - 16

    - 장점: 풀링층에서는 높이와 너비가 절반으로 줄어들고 합성곱 층에서는 채널의 수가 2배 늘어난다. 

    - 단점: 훈련시킬 변수의 갯수가 많아 네트워크의 크기가 커진다 (138m parameters)

     

    ResNets

    - 이론상으로는 신경망이 깊어질수록 오류가 감소해야 하는데 현실은 층의 갯수가 많을 수록 훈련 오류가 감소하다가 증가

    - ResNets에서는 신경망이 깊어질수록 오류 감소

    - ResNets: 스킵 연결을 여러개 더한 것. 이것으로 깊은 신경망 학습 가능.

    - 스킵 연결: 한 층의 활성값을 가지고 깊은 층에 연결. 잔여블록을 사용하면 깊은 신경망 학습 가능. 

    a^[L] - linear - Relu - linear - (a 전달) - Relu - a^[L+2]

    (main path: a^[L]에서 a^[L+2]까지 과정, short cut: a^[L]의 값을 'a 전달'영역까지 건너띄는 것)

    a^[L+2] = g(z^[L+2]+a^[L])

     

    Why ResNets Work

    - 항등함수는 잔여블록의 훈련을 쉽게 만들어준다. 성능에 손해가 없고 경사하강법으로 더 좋아질 뿐

    a^[L+2] = g(z^[L+2]+a^[L])

    z^[L+2]=w^[L+2]a^[L+1]+b[L+2] (if. w^[L+2]=0, b[L+2]=0)

    a^[L+2]=g(a^[L])=a^[L]

    - 입력과 출력의 차원이 다른 경우에는 W라는 행렬을 곱해줌으로 입력과 출력의 차원을 같게 만든다, 

    - 풀링층에서는 차원 조정 필요

     

    Networks in Networks and 1x1 Convolutions

    - Networks in Networks = 1x1 Convolutions: 채널의 수를 줄이기 위해 사용, 비선형성을 더해주고 하나의 층을 더해줌으로 더 복잡한 함수를 학습할 수 있다. 다음 배울 Inception 에 유용하게 사용됨. 

     

    Inception Network Motivation

    - 인셉션 네트워크: 필터의 크기나 풀링을 결정하는 대신 전부 적용해서 출력을 엮은 후 네트워크가 원하는 변수나 필터의 크기를 만든다

    단점: 계산비용 > 1x1 Convolutions으로 해결. bottle neck(네트워크에서 가장 작은 부분)을 만들어 계산 비용 줄임

     

    Inception Network

    - 인셉션 네트워크(=GoogleNet): 인셉션 블록들이 반복되는 것

    (인셉션 블록 이외: 은닉층이나 중간 층에서 구성된 특성들이라도 이미지의 결과를 예측하는데 나쁘지는 않다. 인셉션 네트워크에 정규화 효과를 주고 네트워크의 과대적합을 방지) 

    [ Practical advices for using ConvNets ]

    Using Open-Source Implementation

    - 네트워크 훈련에 많은 시간이 필요한데 깃허브 오픈소스를 사용하면 누군가 훈련시켜 둔 것을 전이 학습 가능할 수 도 있다. 

     

    Transfer Learning

     

     

     

    Data Augmentation

     

     

     

    State of Computer Vision

     

     

    댓글