답변:
가장 먼저:
입력 및 출력 수만으로도 양호한 네트워크 토폴로지를 결정할 수있는 방법이 없습니다. 학습 예제의 수와 배우려는 분류의 복잡성에 크게 좌우됩니다. [1]
Yoshua Bengio는 매우 간단한 규칙을 제안했습니다.
테스트 오류가 더 이상 개선되지 않을 때까지 레이어를 계속 추가하십시오. [2]
게다가:
ConvNet의 이전 기능에는 많은 작업에 유용해야하는보다 일반적인 기능 (예 : 에지 감지기 또는 색상 얼룩 감지기)이 포함되어 있지만 ConvNet의 이후 계층은 원래 데이터 세트에 포함 된 클래스의 세부 사항에 따라 점차 더 구체적이됩니다. [ 삼]
예를 들어, 특징 검출기를 학습하는 방법에서 :
첫 번째 레이어는 에지 검출기를 배우고 후속 레이어는 더 복잡한 기능을 배우고 높은 수준의 레이어는 더 추상적 인 기능을 인코딩합니다. [4]
따라서 하나의 레이어보다 두 개의 밀도 레이어를 사용하는 것이 좋습니다.
드디어:
Dropout의 원본 논문은 실제로 Dropout을 사용할 때 고려해야 할 유용한 휴리스틱을 제공합니다. 그 중 하나는 다음과 같습니다. 들어오는 (표시) 및 숨겨진 장치에 드롭 아웃을 사용하십시오. 네트워크의 각 계층에서 드롭 아웃을 적용하면 좋은 결과를 얻었습니다. [5]
CNN에서 일반적으로 드롭 아웃 레이어는 각 풀링 레이어 이후와 밀도 레이어 뒤에 적용됩니다. 좋은 튜토리얼이 있습니다. [6]
참고 문헌 :
[1] https://www.cs.cmu.edu/Groups/AI/util/html/faqs/ai/neural/faq.html
[2] 요슈아 벤 지오. "심층 아키텍처의 그라디언트 기반 교육을위한 실용적인 권장 사항" 신경망 : 무역의 비결. Springer Berlin Heidelberg, 2012. 437-478.
[3] http://cs231n.github.io/transfer-learning/
[4] http://learning.eng.cam.ac.uk/pub/Public/Turner/Teaching/ml-lecture-3-slides.pdf
[5] https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/
[6] https://cambridgespark.com/content/tutorials/convolutional-neural-networks-with-keras/index.html