DATA 증가 & 딥러닝 모델 한계
데이터 차원 증가, 구조 복잡 -> 기술력의 부족으로 한계 맞이
문제점 :
- 학습 속도 문제
데이터 개수가 폭발적으로 증가함에 따라 딥러닝 모델 학습시 소요되는 시간의 폭발적 증가.
발생 원인 - 전체 데이터를 사용해서 손실 함수 계산하기에 계산량 폭발적이다.
해결 방법 - 부분 데이터만 활용해서 손실 함수를 계산하자! SGD.
SGD란, 데이터 그룹인 mini-batch에 대해 손실함수 계산하는 것.
GD에 비해 다소 부정확할 수는 있지만, 계산 속도가 훨씬 빠르다.
mini-batch를 설정함에 따라 gradient 방향의 변화가 크다.
SGD를 쓰려면 learning rate를 설정해야 하는데, 너무 크면 발산할 가능성이 있고, 너무 작으면 수렴하지 못할 가능성이 있다.
이에 대해 다양한 최적화 알고리즘이 생겨났는데, gradient측면에서 발전하여 momentum이 생겼고, learning rate 측면에서 발전하여 Adagrad, RMSProp이 생겼고, RMSProp과 Momentum을 합쳐 Adam이 생겼다.
여기서 Momentum은, 과거에 내가 어떻게 이동했는가를 기억하면서 그 방향으로 일정 정도를 추가적으로 이동하는 방식이다.
AdaGrad는 변화가 적은 변수의 lr은 크게, 변화가 큰 변수의 lr은 작게 하는 방법이다. 과거 기울기를 제곱해서 누적합하기에 학습이 진행될수록 갱신 강도가 약해진다.
RMSProp은, AdaGrad가 학습하다 보면 갱신량이 0에 가까워져서 학습이 안 되기 때문에, 이를 해결해 과거의 기울기는 잊고 새로운 기울기 정보를 크게 반영하는 방법이다.
즉, 이 최적화 알고리즘의 발전방향은
- GD : 모든 데이터 검토해서 방향 찾음
- SGD : mini-batch로 검토해서 자주 방향 찾음
- momentum(이전 gradient 참고해 업뎃), adagrad(가중치 변화량에 따라 lr 조절)-rmsprop(줄어드는 lr문제 해결)
- Adam : Momentum + RMSProp
- 기울기 소실 문제
데이터가 복잡하기에 layer가 깊어지면서, 앞쪽, 즉 출력값과 먼 곳의 데이터는 학습이 잘 안 됨.
전달과정에서 기울기가 0인 값을 전달하며 중간 전달값이 사라지는 경우를 말함.
원랜 sigmoid를 사용하였는데, 이는 기울기의 max값이 0.25밖에 되지 않기에 활성화함수를 relu로 바꿈.
그리고 hidden layer에서 relu를 적용하고, output layer에서만 tanh 사용.
- 초기값 설정 문제
초기값을 어디로 설정하느냐에 따라 성능 차이가 매우 크다.
따라서 처음에 초기화를 하는 것이 중요함. 표준정규분포 이용해 초기화하거나, 표준편차 0.01로 하는 정규분포로 초기화.
활성화함수의 입력값이 너무 커지거나 작아지지 않게 만들어주는 것이 핵심.
Xavier 초기화 방법
- sigmoid 함수 : 표준정규분포를 입력 개수의 제곱근으로 나눔. 출력값들이 정규분포 형태를 가져야 안정적.
- Relu 함수 : Xavier 초기화 부적합함. layer 거쳐갈수록 값이 0됨.
He 초기화 방법
표준정규분포/(입력개수의 절반의 제곱근). layer가 커도 평균/표준편차가 0으로 수렴하지 않음
--> sigmoid, tanh의 경우 Xavier 초기화, ReLU의 경우 He 초기화.
- 과적합 문제
모델이 train data에 과하게 최적화 돼서 test data에 대한 성능이 그리 높지 않게 되는 문제
과적합 방지 기법 : 정규화, 드롭아웃, 배치정규화
- 정규화
기존 손실함수 + 규제항(벌칙항)
L1 정규화(Lasso) : 규제항이 가중치의 절댓값의 합. 가중치가 작으면 0으로 수렴하기에 중요 가중치만 남음
L2 정규화(Ridge) : 규제항이 가중치의 제곱의 합. 0으로 수렴하는 가중치는 적지만, 가중치 개수가 줄어들진 X. 큰 가중치 더욱 제약
- 드롭아웃
각 layer마다 일정비율 뉴련을 임의로 잘라냄. 학습 노드와 가중치가 매번 달라짐.
- 배치 정규화
처음 입력데이터 뿐만 아니라 hidden layer의 입력에도 정규화 적용.
매 layer마다 정규화 진행하기에 가중치의 초기값에 크게 의존하지 않아 그 중요도가 감소된다.
또한, 과적합이 억제되고 학습 속도가 향상된다.
참고 : LG Aimers
'AI > 기계학습' 카테고리의 다른 글
이미지 데이터 - CNN/RNN (0) | 2024.05.31 |
---|---|
Tensorflow 선형회귀/비선형회귀 (0) | 2024.05.27 |
텐서플로우(Tensorflow)와 딥러닝 학습 (1) | 2024.05.20 |
AND, OR, NAND, NOR gate in python (0) | 2024.05.20 |
퍼셉트론 (0) | 2024.05.20 |