방명록
- 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차원이라면?
- 머 이런식으로 기둥을 세워서 가능하다고 한다
- 이 증명 덕에 “모델만 잘 만들면 (overfitting 안 일어나게) 되겠구나” 확신을 가질 수 있게 된다
- 단, 이런 방식으로 훈련이 된다는 것을 보여주는게 아니라 이런 식으로 하면 뭐든 표현이 가능하니 걱정하지 말고 모델이나 잘 만들어라라는 것이다
- 그리고 히든 레이어 층을 늘리게 되면 필요한 노드의 수가 줄어든다
2. 무턱대고 깊은 인공 신경망을 가진 DNN
- 히든 레이어 층을 늘리면 필요한 노드의 수가 줄어들고 어떤 연속함수이든 다 표현이 가능하니 엄청 깊게 인공 신경망을 만들어버리면 최고의 성능을 보여주지 않을까?
- 그랬으면 좋았겠지만 인공 신경망이 깊어질수록 발생하는 문제들이 있다
- Vanishing Gradient
- 그라디언트 값의 크기가 0에 수렴해버려서 의미를 상실해버림 → 그렇게 되면 그라디언트 반대 방향으로 나아가야 하는데 나아가질 못함;;
- Overfitting
- 제공한 데이터에만 너무 과하게 학습이 되어서 미확인 데이터에 대해서는 모델이 제대로 수행을 하지 못하게 되는 것을 말한다
- Loss Landscape
- 인공 신경망이 깊어질수록 그래프가 너무 꼬불꼬불해짐;;
- Skip-Connections로 해결이 가능하다
- 기초의 범위를 벗어나는 개념이기 때문에 강의에서도 깊게 알려주진 않았다
- 나중에 공부 좀 한뒤에 다시 찾아봐야겠다
- Vanishing Gradient
3. Vanishing Gradient 방지
- 이 현상은 Sigmoid 때문에 발생한다
- 시그모이드는 기울기가 최대일 때의 값이 $\frac{1}{4}$ 이다
- 근데 우리가 깊은 인공 신경망에서 그라디언트로 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 ㅜㅜ
- 여튼 이게 어떻게 가능하냐면 어차피 미분만 가능하면 파라미터 값을 구할 수 있기 때문에 저 액티베이션의 들어오고 나가는 값을 그라디언트와 역전파를 사용해서 똑같이 구하면 된다
- 굉장히 다양한 렐루가 있다
3-2. Batch Normalization
- 배치를 어떻게 할것인가에 대한 질문에서부터 시작한다
- 만약에 렐루에서 데이터 값들의 배치 상태가 다음과 같다면 데이터 입장에서 이 액티베이션은 리니어 액티베이션과 똑같지 않을까? 근데 리니어 액티베이션은 히든 레이어에서 의미가 없으므로 아무런 가치가 없어진다
- 그래서 데이터들의 배치를 잘 해주자~ 인 것이다
- 그리고 어디에 배치할지 뿐만 아니라 얼마나 데이터들이 떨어져있는가도 생각해볼 수 있겠다
- 결국에 정규분포와 같지 않은가? 평균에서 얼마나 떨어져있는지...
- 즉, 평균과 표준편차를 파라미터로 두고 AI한테 학습을 시켜서 최적의 배치 상태를 구하면 된다
- 어떻게 가능하냐고? 미분이 가능하니까!
- 이렇게 ReLU와 BN을 동시에 사용하면 효율적으로 Vanishing 문제를 해결할 수 있다
반응형'인공지능 > 인공지능 기초' 카테고리의 다른 글
컨볼루션, Padding, Stride, Pooling, CNN (0) 2024.03.01 Overfitting 방지, CNN과 이미지의 상관 관계 (2) 2024.02.29 MSE, log-likelihood, MLE, 다중 분류 (2) 2024.02.27 비선형 액티베이션, 역전파, 이진분류 (6) 2024.02.26 Momentum, Adam, Validation, DNN (2) 2024.02.25 다음글이 없습니다.이전글이 없습니다.댓글