딥 러닝에서 하이퍼 파라미터 선택 지침


38

스택 형 자동 인코더 또는 딥 믿기 네트워크와 같은 딥 아키텍처의 하이퍼 파라미터를 선택하는 방법에 대한 지침을 제공하는 데 도움이되는 논문을 찾고 있습니다. 하이퍼 파라미터가 많고 선택하는 방법이 매우 혼란 스럽습니다. 또한 훈련에 많은 시간이 걸리기 때문에 교차 유효성 검사를 사용하는 것도 옵션이 아닙니다!


: 나는 이안 Goodfellow의 깊은 학습 도서 추천 deeplearningbook.org
바딤 Smolyakov

답변:


24

기본적으로 네 가지 방법이 있습니다.

  1. 수동 검색 : 문제 추측 매개 변수에 대한 지식을 사용하여 결과를 관찰하십시오. 그 결과에 따라 매개 변수를 조정하십시오. 제대로 작동하거나 시간이 부족한 매개 변수를 찾을 때까지이 프로세스를 반복하십시오.
  2. 그리드 검색 : 문제에 대한 지식을 사용하여 하이퍼 파라미터의 범위를 식별합니다. 그런 다음 해당 범위에서 일반적으로 균일하게 분포 된 여러 점을 선택하십시오. 모든 매개 변수 조합을 사용하여 네트워크를 훈련시키고 가장 적합한 조합을 선택하십시오. 또는 실적이 가장 좋은 매개 변수를 중심으로보다 좁은 도메인에서 검색을 반복 할 수 있습니다.
  3. 랜덤 검색 : 그리드 검색과 마찬가지로 문제에 대한 지식을 사용하여 하이퍼 파라미터의 범위를 식별합니다. 그러나 체계적인 방식으로 해당 범위에서 값을 선택하는 대신 무작위로 선택합니다. 잘 작동하는 매개 변수를 찾거나 학습 한 내용을 사용하여 검색 범위를 좁힐 때까지이 프로세스를 반복하십시오. 논문 에서 하이퍼-파라미터 최적화를위한 랜덤 검색 Dr. Bengio는 이것이 다른 모든 방법들을 비교해야하는 기준 방법이라고 제안하고 그것이 다른 방법들보다 더 잘 작동하는 경향이 있음을 보여줍니다.
  4. 베이지안 최적화 : 최근 연구는 주어진 실험에서 얻은 정보를 사용하여 다음 실험에 대한 하이퍼 파라미터를 조정하는 방법을 결정함으로써 이러한 다른 접근 방식을 개선하는 데 중점을 두었습니다. 이 작업의 예는 Adams et al. 의 기계 학습 알고리즘의 실용적인 베이지안 최적화입니다 .

14

다양한 방법이 존재합니다. 그것들은 그리드 검색이나 랜덤 검색과 같은 임의 / 무 방향 검색 방법과 직접 방법으로 크게 분할 될 수 있습니다. 그러나 운이 나지 않는 한 (최소한 수백 개, 매개 변수 수에 따라 다름) 하이퍼 파라미터 설정을 모두 테스트해야합니다.

직접적인 방법의 클래스에서 몇 가지 뚜렷한 접근법이 식별 될 수 있습니다.

  • 파생되지 않은 방법 (예 : Nelder-Mead simplex 또는 DIRECT)
  • CMA-ES 및 입자 떼와 같은 진화 방법
  • EGO 및 순차적 Kriging과 같은 모델 기반 접근법

하이퍼 파라미터 튜닝을위한 다양한 솔버를 제공하는 Python 패키지 인 Optunity 를 살펴볼 수 있습니다 (지금은 EGO 및 Kriging을 제외하고 언급 한 모든 것). MATLAB 및 R에 대한 기회가 곧 제공 될 예정입니다. 면책 조항 : 나는이 패키지의 주요 개발자입니다.

내 개인적인 경험을 바탕으로 진화 적 방법은 이러한 유형의 문제에 매우 강력합니다.


10

더 이상 보지 마십시오! Yoshua Bengio는 내가 좋아하는 응용 논문 중 하나를 발간했습니다. 모든 새로운 기계 학습 엔지니어가 신경망 훈련을 시작할 때 추천합니다. 학습 속도, 학습 속도 일정, 조기 정지, 미니 배치 크기, 숨겨진 레이어 수 등 하이퍼 파라미터 터닝에 대한 그의 관점을 얻으려면 섹션 3을 참조하십시오.

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