재형이의 성장통 일지
  • Univeral Approximation Theorem, Vanishing Gradient 방지
    2024년 02월 28일 23시 01분 42초에 업로드 된 글입니다.
    작성자: 재형이
    반응형
     
     
    • 어제 좀 달렸더니 아침에 못 일어났다...ㅎ
    • 휴우... 겨우 시간 안에 작성했다;;

     

     

     


     

     

     

     

     

     

    1. Univeral Approximation Theorem

    • 지금까지 여러가지 액티베이션을 보면서 AI가 어떻게 학습하는지에 대해서 공부를 해보았다
    • 근데 이렇게 만든 모델이 우리가 원하는 답을 잘 알려줄 수 있을까?
    • 뭘 믿고? 무슨 근거로?
    • 실컷 학습시켰더니 완전 이상하게 되어버릴 수도 있지 않은가
    • Univeral Approximation Theorem 이라는 증명이 이런 의심을 잠재워 줄 것이다
    • Univeral Approximation Theorem은 히든 레이어가 딱 한층만 있더라도 어떤 데이터든 Loss가 0인 연속 함수로 나타낼 수 있다라는 것을 보여준다

    • 이렇게 히든 레이어 한 층만으로도 순차적으로 Loss 0인 연속 함수를 표현해줄 수 있다

    • 입력값이 두개라면? 즉, 3차원이라면?
    • 머 이런식으로 기둥을 세워서 가능하다고 한다

    http://neuralnetworksanddeeplearning.com/chap4.html

    • 이 증명 덕에 “모델만 잘 만들면 (overfitting 안 일어나게) 되겠구나” 확신을 가질 수 있게 된다
    • 단, 이런 방식으로 훈련이 된다는 것을 보여주는게 아니라 이런 식으로 하면 뭐든 표현이 가능하니 걱정하지 말고 모델이나 잘 만들어라라는 것이다
    • 그리고 히든 레이어 층을 늘리게 되면 필요한 노드의 수가 줄어든다

    2. 무턱대고 깊은 인공 신경망을 가진 DNN

    • 히든 레이어 층을 늘리면 필요한 노드의 수가 줄어들고 어떤 연속함수이든 다 표현이 가능하니 엄청 깊게 인공 신경망을 만들어버리면 최고의 성능을 보여주지 않을까?
    • 그랬으면 좋았겠지만 인공 신경망이 깊어질수록 발생하는 문제들이 있다
      1. Vanishing Gradient
        • 그라디언트 값의 크기가 0에 수렴해버려서 의미를 상실해버림 → 그렇게 되면 그라디언트 반대 방향으로 나아가야 하는데 나아가질 못함;;
      2. Overfitting
        • 제공한 데이터에만 너무 과하게 학습이 되어서 미확인 데이터에 대해서는 모델이 제대로 수행을 하지 못하게 되는 것을 말한다
      3. Loss Landscape
        • 인공 신경망이 깊어질수록 그래프가 너무 꼬불꼬불해짐;;
        • Skip-Connections로 해결이 가능하다
        • 기초의 범위를 벗어나는 개념이기 때문에 강의에서도 깊게 알려주진 않았다
        • 나중에 공부 좀 한뒤에 다시 찾아봐야겠다

    3. Vanishing Gradient 방지

    • 이 현상은 Sigmoid 때문에 발생한다
    • 시그모이드는 기울기가 최대일 때의 값이 $\frac{1}{4}$ 이다

    0에서 기울기가 최대, 값은 4분의 1

    • 근데 우리가 깊은 인공 신경망에서 그라디언트로 W를 구할 때 어떻게 했는가?
    • back propagation을 통해서 체인룰을 적용해서 구했었다

    • 근데 최대 기울기가 4분의 1인데 근데 이거를 계속 곱한다? $\frac{1}{4^{3}}$만 해도 0에 가까워지는데? 심지어 보통은 4분의 1보다 훨씬 작은값이 나온다. 근데 그걸 곱해? 0에 가까워지면서 그라디언트 값이 0이 되어버린다

    • 그래서 가중치를 그라디언트 반대 방향으로 옮겨줘야하는데 그라디언트가 0이니까 제자리 걸음을 하는 것이고 W가 업데이트가 되질 않으니 깊은 구조의 효과를 전혀 보지 못하게 되는 것이다

    3-1. ReLU (Rectified Linear Unit)

    • 그러면 시그모이드를 안쓰면 되는거 아니야?
    • 근데 non-linear한 액티베이션을 써야 한다며?
    • unit step function은 미분이 불가능하고...
    • 그래서 나온 새로운 액티베이션이 ReLU(렐루~)이다

    • 여기서 또 재밌는게 저기 왼쪽에 저 부분의 기울기 값을 최적화하기 위해서 기울기 a를 파라미터로 삼아서 학습을 시켜서 구한다ㅋㅋㅋㅋ 무한 고통 받는 우리 AI ㅜㅜ
    • 여튼 이게 어떻게 가능하냐면 어차피 미분만 가능하면 파라미터 값을 구할 수 있기 때문에 저 액티베이션의 들어오고 나가는 값을 그라디언트와 역전파를 사용해서 똑같이 구하면 된다
    • 굉장히 다양한 렐루가 있다

    Zhang, Guoqiang, and Haopeng Li. "Effectiveness of scaled exponentially-regularized linear units (SERLUs)." arXiv preprint arXiv:1807.10117 (2018)

    3-2. Batch Normalization

    • 배치를 어떻게 할것인가에 대한 질문에서부터 시작한다
    • 만약에 렐루에서 데이터 값들의 배치 상태가 다음과 같다면 데이터 입장에서 이 액티베이션은 리니어 액티베이션과 똑같지 않을까? 근데 리니어 액티베이션은 히든 레이어에서 의미가 없으므로 아무런 가치가 없어진다

    • 그래서 데이터들의 배치를 잘 해주자~ 인 것이다

    • 그리고 어디에 배치할지 뿐만 아니라 얼마나 데이터들이 떨어져있는가도 생각해볼 수 있겠다

    • 결국에 정규분포와 같지 않은가? 평균에서 얼마나 떨어져있는지...
    • 즉, 평균과 표준편차를 파라미터로 두고 AI한테 학습을 시켜서 최적의 배치 상태를 구하면 된다
    • 어떻게 가능하냐고? 미분이 가능하니까!
    • 이렇게 ReLU와 BN을 동시에 사용하면 효율적으로 Vanishing 문제를 해결할 수 있다

     

     

     

     

     

     


     

     

     

     

     

     

     

    반응형
    댓글