[AI부트캠프]신경망 프레임워크와 학습규제(regularization) 전략 - Weight Decay, Constraint, Learning Rate
가중치 제어 방법
early stopping 과적합까지 안가게 중간에 멈추는거
작은 가중치들은
dropout = 팀플
모든 노드들이 열일 하진 않음. 랜덤하게 몇개 꺼버림.
그러면 노드 몇개가 일을 열심히하고 학습이 잘되게 할 수 있음
학습할때 일시적으로 끄고 예측할땐 다시 킴 영구적 아님
weight decay
첫번째 절댓값, 두번째 제곱값
가중치의 합을 더해줌으로써 가중치가 너무 크게 업데이트 되는 것을 방지함.
손실함수가 나왔을 때 에러값에다가 가중치의 합을 더해서 학습을 시키면 에러값이 전체적으로 더 크니까 가중치를 더 줄여줌. 그래서 과적합을 방지함.
constraint max값을 정해서 3보다 커지면 무조건 3으로 치환
가중치가 커지는 것을 막게 함
-
모델을 젖아하기 위해 체크포인트를 둔다고 했는데 학습시킨 데이터를 어디에 어떻게 저장하는 걸까요?
-
왜 저장할까요?
a. 다음에 쉽게 사용가능.
b. 일종의 백업!
c. 오류 났을 때 처음으로 안돌아가려고 -
norm을
weight dacay를 왜 할까?
가중치가 너무 커져서 해당 노드의 영향력이 너무 크게 잡힐 때 일어나는 과적합을 피하기 위해
수식이 어떻게 가중치를 규제하는 걸까?
-ridge regression 왜 했나여?
과적합 방지를 하려고 > 크기가 커지는 가중치를 줄여줌
가중치의 합을 코스트 펑션안에 넣어줌 만약 가중치의 합이 커지면 cost가 커지는 거라고 인지하도록함.
가중치의 합이 커지는 것을 인지할 수 있당?
릿지는 각각의 변수를 임의로 하는 것은 아닌 것처럼
라쏘는 절댓값을 활용해서 안중요한 것들 아주 작은 가중치들은 0이 됨
릿지는 제곱값을 활용해서 아주 작은 값이라도 0에 도달하진 않고 큰값들도 줄어드는 역할
cost function = target - output 차이를 줄여줌 이 값이 줄어들여야 이 모델이 학습을 잘한거임
줄이는 방법 MSE, RSS쓸수도 잇음
(target- outut) + 가중치의 합
10 + 5
15만큼 모르고 있네
실제 에러보다 더 크다고 생각해서 가중치 업데이트가 덜 크게 된다.
가중치의 합도 줄어들게 해야함.
가중치의 합이 커지는 것을 막아야 한다.
L1 , L2의 차이
(-, +) - > 상쇄되므로 절댓값쓰거나 제곱해줘야함
L1은 절댓값, L2는 제곱값
L1 작은 가중치들이 -> 0
코스트 펑션 미분하면 원형으로 형성
절댓값 은 마름모, 제곱해주는건 원형
- layer.Dropout(0.5)의 Layer.Dropout(0.2)등 지정해주는 수는 어떻게 정해지는 걸까?
튜닝을 해줘야할 하이퍼파라미터
a. o x o x o
b. 0.1, 0.5 -> cv
-
히든레이어의 수를 직접 수정하지 않고 드롭아웃을 사용하는 이유
테스트에서는 드롭아웃을 하지 않음
앙상블 기법 -
flatten 사용할 때 input_shape를 꼭 사용해야하나요?
인서플로우가 똑똑해서 그냥 해주는데 확실하게 하려면 해야됨.
인풋shape을 써주는 경우
첫번째로 데이터를 받아서 처리하는 경우에는 써줌 중간에있다면 안써줘도 작동함. -
earlystop에서는 'callback=[early_stop, save_best]'을 써줬는데 weight decay
-
input shape input_dim은 같은건가?
shape는 문제고 dim은 차원. 입력되는 값의 형태는 다르지만 역할은 같다. -
weigth decay에서 kernel_regularizer = regularizers.l2(0.01)에서 0.01은 어떻게 정하는 걸까요?
내가 알아서 정해야함.. 공식문서 확인해보셈
오후 QnA
- loss의 정의
a. target, ouput(error)
b. metric
i. 평가지표 - drop out의 비율은 어느정도 해야할까요?
a. 0.3~0.5
b. 0.5~0.8
c. cross validation
d. param = []
tf.keras.regularizers.L2(0.1)
(0.1) => lamda
-
람다가 0이면 릿지가 리니어와 유사해지는가?
람다가 0이면 통제하지 않는 거라서 -
딥러닝의 하이퍼 파라미터가 머신러닝보다 다이나믹하게 accuracy값이 변하지 않는데, 잘못해서 그런건지 아니면 전반적으로 머신러닝이 튜닝의 영향을 더 많이 받나요?
딥러닝이 지금 상태에선
- 어떤 프로세스로 오차값과 가중치를 줄일 수 있는가?
경사하강법
a. 산 꼭대기-> 평지
b. 밑으로 -> 기울기를 감소
wt+1-wt(가중치가 업데이트 된 양) = -aL(Wt)
역전파 과정에서 loss함수의 Gradiant가 기존 가중치에서 빠져서 업데이트 됩니다.
만약 loss함수에 가중치를 더해준다면 그 가중치의 Gradiant가 업데이트 과정에서 추가로 빠지게 됩니다.
질문타임
- decay
- dropout
- constraint max
과제설명!
개념을 익히는 것 중요
코드는 어떻게 개념을 구현한 건지 봐야함
pr해줘야함...
퀴즈도 최종제출해야함
seed값 주의
귀찮아도 seed를 계속 실행해줘야함
문제에 대한 조건들은 설명이 되어 있으니까 잘 이해해봅시다
도전과제도 하자..
Author And Source
이 문제에 관하여([AI부트캠프]신경망 프레임워크와 학습규제(regularization) 전략 - Weight Decay, Constraint, Learning Rate), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@superahxd/신경망-프레임워크와-학습규제regularization-전략-Weight-Decay-Constraint-Learning-Rate저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)