일괄 업데이트와 개별 업데이트 간의 MLP 정규화에 차이가 있습니까?


9

과적 합을 제어하는 ​​접근 방식으로 정규화에 대해 배웠으며,이 아이디어를 간단한 백프로 파 게이션 및 MLP ( Multilayer Perceptron) 구현에 통합하고 싶습니다 .

현재 과적 합을 피하기 위해 검증 세트에서 네트워크를 교차 검증하고 최고 점수를 유지했습니다. 이것은 정상적으로 작동하지만 정규화를 추가하면 정규화 알고리즘과 매개 변수를 올바르게 선택하면 네트워크가 비 과적 모델에 더 체계적으로 수렴하게됩니다.

나는 (코 세라 ML 과정에서) 업데이트 용어에 대한이 공식은 에러 전파에서 전체 훈련 세트의 조정에 대해 적용 가능한 모든 델타를 합산 한 후, 각각의 무게 배치 갱신 등으로 적혀있다 lambda * current_weight결합하기 전에뿐만 아니라 추가 배치 끝에서 델타를 뺍니다 lambda. 여기서 정규화 매개 변수입니다.

역 전파 구현은 항목 별 가중치 업데이트를 사용합니다. 배치 접근 방식을 직관적으로 복사해도 괜찮지 만 배치 방식을 복사 할 수 없다는 것이 우려됩니다. 항목 당 더 작은 정규화 용어도 작동합니까?

예를 들어 lambda * current_weight / NN이 훈련 세트의 크기 인 경우-언뜻보기에 이것은 합리적으로 보입니다. 나는 주제에 대해 아무것도 찾을 수 없었으며, 그것이 정규화가 항목 별 업데이트와 함께 잘 작동하지 않거나 다른 이름이나 수식으로 변경 되었기 때문인지 궁금합니다.

답변:


2

정규화는 항목 별 학습과도 관련이 있습니다. 배치 또는 항목 별 학습을 수행하는지 여부에 관계없이 람다를 찾는 기본 유효성 검사 방법으로 시작하는 것이 좋습니다. 가장 쉽고 안전한 방법입니다. 여러 가지 다른 값으로 수동으로 시도하십시오. 예를 들어 0.001. 0.003, 0.01, 0.03, 0.1 등을 확인하고 유효성 검사 세트의 동작을 확인하십시오. 나중에 선형 또는 로컬 검색 방법을 도입하여이 프로세스를 자동화 할 수 있습니다.

참고로, 람다의 값은 훈련 세트 크기가 아닌 매개 변수 벡터의 업데이트와 관련하여 고려해야한다고 생각합니다. 배치 훈련의 경우 데이터 세트 패스 당 하나의 매개 변수 업데이트가 있고 온라인 의 경우 훈련 세트 크기에 관계없이 샘플 당 하나의 업데이트가 있습니다.

나는 최근이 Crossvalidated Question을 우연히 발견했다 . 관련 콘텐츠 가 포함 된 새로운 SGD 알고리즘 에 대한 논문 링크가 있습니다. 살펴 보는 것이 유용 할 수 있습니다 (특히 1742-1743 페이지).


예, 여전히 과적 합을 확인하기 위해 교차 검증하려고합니다. 제 질문은 그보다 더 기본입니다 .MLP에서 품목별 중량 조정으로 정규화를 사용하는 것에 대한 언급을 찾을 수 없으며 좋은 점이 있습니다. 그 이유-예를 들어 학습 모드에서 작동하지 않거나 조정이 필요합니다. 교차 검증 된 질문 매우 유사하지만 더 많은 자신감을 얻습니다 . 감사합니다. SGD 알고리즘 페이지에는 정규화를 도입하기위한 다른 확률 론적 방법이있는 것 같습니다.
Neil Slater

정규화는 항목 별 학습과도 관련이 있습니다. 람다를 찾기위한 기본 유효성 검사 방법으로 시작하는 것이 좋습니다. 가장 쉽고 안전한 방법입니다. 여러 가지 다른 값으로 수동으로 시도하십시오. 예를 들어 0.001. 0.003, 0.01, 0.03, 0.1 등을 확인하고 유효성 검사 세트의 동작을 확인하십시오. 나중에 선형 또는 로컬 검색 방법을 도입하여이 프로세스를 자동화 할 수 있습니다.
insys 2016 년

위의 의견이 수정되어 답변의 첫 번째 문장 / 질문을 대체하면 승인 할 수 있다고 생각합니다.
Neil Slater

지적 해 주셔서 감사합니다. 동의합니다. 그것을 편집했습니다. 더 명확하기를 바랍니다.
insys 2016 년

2

insys가 말한 것을 보완하기 위해 :

정규화는 MLP의 모든 가중치에 대한 역 전파를 계산할 때 사용됩니다. 따라서 훈련 세트 ( batch) 의 모든 입력과 관련하여 그라디언트를 계산하는 대신 일부 / 하나의 항목 만 사용합니다 ( stochastic or semi-stochastic). 하나의 항목과 관련하여 업데이트 결과를 모두 제한하는 것도 올바른 결과입니다.

또한 올바르게 기억하면 Andrew NG가을 사용했습니다 L2-regularization. /N에서는 lambda * current_weight / N그냥 입력을 스케일링하는 데 도움이 필수가 아닙니다. 그러나 사용하지 않으면 (대부분의 경우)에 대해 다른 값을 선택해야 lambda합니다.

당신은 또한 사용할 수 있습니다 그리드 검색 알고리즘을 최고의 가치 선택 lambda합니다 ( hyperparameter을 => 당신이 가지고있는 하나를 선택).

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