신경망 아키텍처를 구축 할 때 숨겨진 레이어의 노드 수와 숨겨진 레이어 수를 어떻게 결정해야하는지 궁금했습니다.
입력 및 출력 레이어는 우리가 보유한 교육 세트에 달려 있지만 숨겨진 레이어와 전반적인 아키텍처를 어떻게 결정합니까?
신경망 아키텍처를 구축 할 때 숨겨진 레이어의 노드 수와 숨겨진 레이어 수를 어떻게 결정해야하는지 궁금했습니다.
입력 및 출력 레이어는 우리가 보유한 교육 세트에 달려 있지만 숨겨진 레이어와 전반적인 아키텍처를 어떻게 결정합니까?
답변:
안타깝게도 문제 설명만으로 신경망에 대해 가장 많은 수의 뉴런과 레이어 수 를 결정 하는 일반적인 방법은 없습니다 . 출발점으로 시도 할 좋은 가치를 결정해야 할 지침은 많지 않습니다.
가장 일반적인 방법은 비슷한 문제에 사용 된 네트워크에 대한 이전 경험을 바탕으로 대략적인 추측으로 시작하는 것 같습니다. 이것은 당신 자신의 경험 일 수도 있고, 교육 과정, 블로그 또는 연구 논문에서 얻은 간접적 / 경험적 경험 일 수도 있습니다. 그런 다음 몇 가지 변형을 시도하고 최상의 것을 선택하기 전에 성능을 신중하게 확인하십시오.
신경망의 크기와 깊이는 다른 하이퍼 파라미터 와도 상호 작용하므로 다른 것을 변경하면 최상의 값이있는 위치에 영향을 줄 수 있습니다. 따라서 네트워크에 대해 "최상의"크기와 깊이를 격리 한 다음 다른 매개 변수를 계속해서 튜닝 할 수 없습니다. 예를 들어 네트워크가 매우 깊으면 ReLU 활성화 기능으로는 효율적으로 작동하지만 sigmoid에서는 잘 작동하지 않을 수 있습니다. 최상의 네트워크 크기 / 모양을 찾은 다음 다양한 활성화 기능으로 실험 해 본다면 무엇이 가장 효과적인 지에 대한 잘못된 결론.
때때로 신경망 설계를 처음 시작할 때 연구원들이 사용하는 "엄지 규칙"에 대해 읽을 수 있습니다. 이러한 것들이 문제에 도움이 될 수도 있고 아닐 수도 있지만 적어도 문제를 시작한다는 이점이 있습니다. 내가 본 변형은 다음과 같습니다.
크기를 변경해야 할 특별한 이유가 없다는 이유로 (아마도 자동 인코더를 생성하지 않는 한) 입력과 크기가 비슷한 숨겨진 레이어와 모두 동일한 크기의 네트워크를 만듭니다.
간단한 네트워크를 개선하는 것을 확인하기 위해 간단하게 시작하고 복잡성을 구축하십시오.
입력 데이터에 의해 출력이 잘 설명되지만 복잡한 관계 (내재적으로 잡음이있는 것과는 대조적으로) 인 것으로 예상되는 경우 다양한 네트워크 심도를 시도하십시오.
드롭 아웃을 추가해보십시오. 신경망이 모든 것을 더 좋게 만드는 요정 가루에 가장 가까운 것입니다.
이 글이나 그와 비슷한 글을 텍스트로 읽으면 꼬집음으로 가져 가십시오. 그러나 최악의 경우 빈 페이지 효과를 극복하고 일종의 네트워크를 작성하고 테스트 및 세분화 프로세스를 시작할 수 있습니다.
다른 접근법이 더 좋을 때 신경망을 튜닝 할 때 너무 길을 잃지 말고 많은 시간을 절약하십시오. 다른 머신 러닝 및 데이터 과학 접근법을 고려하고 사용하십시오. 데이터를 탐색하고 플롯을 작성하십시오. 간단한 선형 접근법을 먼저 시도하여 문제에 따라 벤치 마크를 이길 수있는 선형 회귀, 로지스틱 회귀 또는 소프트 맥스 회귀를 얻으십시오. NN에 다른 ML 알고리즘을 사용하는 것을 고려하십시오. XGBoost와 같은 의사 결정 트리 기반 접근 방식은 많은 문제에 대한 딥 러닝보다 더 빠르고 효과적 일 수 있습니다.