신경망 아키텍처를 결정하는 방법은 무엇입니까?


20

신경망 아키텍처를 구축 할 때 숨겨진 레이어의 노드 수와 숨겨진 레이어 수를 어떻게 결정해야하는지 궁금했습니다.

입력 및 출력 레이어는 우리가 보유한 교육 세트에 달려 있지만 숨겨진 레이어와 전반적인 아키텍처를 어떻게 결정합니까?


일반적으로 직감을 사용하여 실험합니다. 하이퍼 파라미터 라고 생각하십시오 . 아키텍처를 학습하는 방법이 있지만 실제로 얼마나 실용적인지 잘 모르겠습니다. blog.acolyer.org/2017/05/10/…
Emre

2
나는이 사이트에서 전에 여러 번 자른 것이 확실하기 때문에 이것에 대한 복제본을 찾았습니다. 그러나 일부 데이터 세트 또는 문제에 첨부되지 않은 순수한 버전을 찾을 수 없습니다. 아마도 이것이 다른 사람들에게 일반적인 질문 일 수 있습니까? 안타깝게도 일반적인 "대답 방법"은 없지만 많은 선택에 직면 할 때 일반적인 질문입니다.
Neil Slater


이것은 매우 흥미로운 답변입니다 (연구자가 귀하의 질문에 대한 작업을 시작했습니다). 데이터 세트 A와 데이터 세트 B에 가장 적합한 아키텍처는 무엇입니까? 질문에 대한 답변을 구한 아래의 논문을 읽으십시오. 신경 건축 검색 (NAS)의 세계를 환영합니다. arxiv.org/abs/1611.01578
iDeepVision

답변:


17

안타깝게도 문제 설명만으로 신경망에 대해 가장 많은 수의 뉴런과 레이어 수 를 결정 하는 일반적인 방법은 없습니다 . 출발점으로 시도 할 좋은 가치를 결정해야 할 지침은 많지 않습니다.

가장 일반적인 방법은 비슷한 문제에 사용 된 네트워크에 대한 이전 경험을 바탕으로 대략적인 추측으로 시작하는 것 같습니다. 이것은 당신 자신의 경험 일 수도 있고, 교육 과정, 블로그 또는 연구 논문에서 얻은 간접적 / 경험적 경험 일 수도 있습니다. 그런 다음 몇 가지 변형을 시도하고 최상의 것을 선택하기 전에 성능을 신중하게 확인하십시오.

신경망의 크기와 깊이는 다른 하이퍼 파라미터 와도 상호 작용하므로 다른 것을 변경하면 최상의 값이있는 위치에 영향을 줄 수 있습니다. 따라서 네트워크에 대해 "최상의"크기와 깊이를 격리 한 다음 다른 매개 변수를 계속해서 튜닝 할 수 없습니다. 예를 들어 네트워크가 매우 깊으면 ReLU 활성화 기능으로는 효율적으로 작동하지만 sigmoid에서는 잘 작동하지 않을 수 있습니다. 최상의 네트워크 크기 / 모양을 찾은 다음 다양한 활성화 기능으로 실험 해 본다면 무엇이 가장 효과적인 지에 대한 잘못된 결론.

때때로 신경망 설계를 처음 시작할 때 연구원들이 사용하는 "엄지 규칙"에 대해 읽을 수 있습니다. 이러한 것들이 문제에 도움이 될 수도 있고 아닐 수도 있지만 적어도 문제를 시작한다는 이점이 있습니다. 내가 본 변형은 다음과 같습니다.

  • 크기를 변경해야 할 특별한 이유가 없다는 이유로 (아마도 자동 인코더를 생성하지 않는 한) 입력과 크기가 비슷한 숨겨진 레이어와 모두 동일한 크기의 네트워크를 만듭니다.

  • 간단한 네트워크를 개선하는 것을 확인하기 위해 간단하게 시작하고 복잡성을 구축하십시오.

  • 입력 데이터에 의해 출력이 잘 설명되지만 복잡한 관계 (내재적으로 잡음이있는 것과는 대조적으로) 인 것으로 예상되는 경우 다양한 네트워크 심도를 시도하십시오.

  • 드롭 아웃을 추가해보십시오. 신경망이 모든 것을 더 좋게 만드는 요정 가루에 가장 가까운 것입니다.

이 글이나 그와 비슷한 글을 텍스트로 읽으면 꼬집음으로 가져 가십시오. 그러나 최악의 경우 빈 페이지 효과를 극복하고 일종의 네트워크를 작성하고 테스트 및 세분화 프로세스를 시작할 수 있습니다.


다른 접근법이 더 좋을 때 신경망을 튜닝 할 때 너무 길을 잃지 말고 많은 시간을 절약하십시오. 다른 머신 러닝 및 데이터 과학 접근법을 고려하고 사용하십시오. 데이터를 탐색하고 플롯을 작성하십시오. 간단한 선형 접근법을 먼저 시도하여 문제에 따라 벤치 마크를 이길 수있는 선형 회귀, 로지스틱 회귀 또는 소프트 맥스 회귀를 얻으십시오. NN에 다른 ML 알고리즘을 사용하는 것을 고려하십시오. XGBoost와 같은 의사 결정 트리 기반 접근 방식은 많은 문제에 대한 딥 러닝보다 더 빠르고 효과적 일 수 있습니다.


좋은 설명입니다. 감사. 사용할 ML 접근 방식을 결정하는 좋은 방법이 있는지 궁금합니다. 신경망보다 더 나은 방법이 있다고 언급했지만 어떻게 쉽게 결정할 수 있습니까?
user7677413

@ user7677413 : 같은 것이 적용됩니다. 경험을 통해 익숙한 문제에 대한 지침을 제공 할 수 있지만 시도하고 확인해야합니다.
Neil Slater

1
신경망은 언제 필요한가요?
user7677413

1
신경망은 거의 필요 하지 않습니다 . 그러나 일부 문제가 더 낫습니다. 오디오 및 이미지 인식과 같은 신호 처리 작업에 탁월하며 간단한 알고리즘이 한계에 도달 할 수있는 대량의 데이터와 미묘한 차이를 학습 할 수 있습니다. 그러나 NN이 자신에게 적합한 도구인지, 특정 날짜에 겪고있는 문제는 아무도 예측할 수 없습니다.
Neil Slater

1
@ user7677413 40 년 동안 깊이 있고 통찰력있는 머신 러닝 연구가 없다고 가정합니다. 표면을 긁는 것처럼 들립니다. 교과서를 찾아서 서로 어떻게 연결되는지 살펴보면 많은 머신 러닝 알고리즘에 대한 직관을 구축하는 데 도움이됩니다.
Alex L
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.