신경 순 중량 감퇴와 학습 속도의 차이


답변:


161

학습 속도는 업데이트 단계가 가중치의 현재 값에 미치는 영향을 결정하는 매개 변수입니다. 가중치 감소는 가중치 업데이트 규칙에서 추가 용어로, 다른 업데이트가 예약되지 않은 경우 가중치가 지수 적으로 0으로 감소합니다.

따라서 우리가 최소화하려는 비용 또는 오류 함수 있다고 가정 해 봅시다. 그라디언트 디센트는 E 에서 가장 가파른 디센트 방향으로 가중치 w 를 수정하라고 알려줍니다 : w iw iη EE(w)wE

wiwiηEwi,
ηwi

과적 합을 피하기 위해 모델의 자유 매개 변수 수를 효과적으로 제한하기 위해 비용 함수를 정규화 할 수 있습니다. 이를 수행하는 쉬운 방법은 가중치보다 0 평균 가우시안을 도입하는 것입니다. 이는 비용 함수를 로 변경하는 것과 같습니다.E~(w)=E(w)+λ2w2λE

wiwiηEwiηλwi.
ηλwi

2
유용한 설명에 감사드립니다. 질문 : "nnet"R 패키지에는 신경망의 훈련에 사용되는 "부패"라는 매개 변수가 있습니다. 부패가 당신의 람다 또는 에타 * 람다에 해당하는지 아십니까?
Andrea Ianni ௫

3
또한 무게 감퇴는 후자를 잘 알고있는 사람들을위한 L2 정규화와 같은 것이라고 덧붙입니다.
Sergei

2
@ 세르게이 제발 아니,이 잘못된 정보 확산을 중지하십시오! 이것은 바닐라 SGD의 특별한 경우에만 해당됩니다. Adam 용지 고정 무게 감소를 참조하십시오 .
LucasB

명확하게 설명하자면, Adam 의 PyTorch 문서는 "가중 감쇄"( "L2 페널티"라고 칭함)라는 용어를 사용하여 필자가 L2 규정이라고 부르는 것으로 생각합니다. 올바르게 이해하면이 답변은 모멘텀이없는 SGD를 나타냅니다.
Dylan F

14

@ mrig 's answer (+1) 외에도 많은 신경망을 실제로 적용하려면 Levenberg-Marquardt (소형 네트워크) 또는 Scaled 켤레 그라데이션 하강 (중형)과 같은 고급 최적화 알고리즘을 사용하는 것이 좋습니다 네트워크가 더 빠르기 때문에 학습 속도를 설정할 필요가 없습니다 (두 알고리즘 모두 기본적으로 곡률과 경사도를 사용하여 학습 속도를 조정합니다). 괜찮은 신경망 패키지 또는 라이브러리는 이러한 메소드 중 하나를 구현할 것입니다. 아마도 사용되지 않는 패키지 일 것입니다. MATLAB 용 NETLAB 라이브러리를 사용하는데, 이는 훌륭한 키트입니다.


Rprop 기반 최적화 알고리즘은 어떻습니까? 그들은 어떻게 쌓입니까?

4
나는 대부분의 사람들이 RMSProp, adagrad, SGD + nesterov momentum과 같은 rprop + momentum의 변종을 사용하고 있다고 생각합니다. cs231 클래스를 참조하십시오 .
facuq

1
물론 그것은 응용 프로그램에 따라 다릅니다. 그러나 현재 유행이되는 대규모 데이터 세트 / 네트워크의 경우 사람들이 내가 더 적합한 알고리즘을 찾고 있다고 생각합니다.
facuq

6
@DikranMarsupial 요즘 (대답 한 후 거의 5 년) 사람들이 대신 Adam을 사용하는 경향이 있기 때문일 수 있습니다.
ComputerScientist

2
실제로이 답변은 매우 구식입니다. 이러한 알고리즘은 오늘날 일반적인 모델 및 데이터 세트의 규모로는 실용적이지 않으며, 가장 많이 사용되지 않는 패키지는 이러한 알고리즘이 부족합니다.
LucasB

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.