신경망 조정
과적합 처리
과적합 모델의 예는 다음과 같습니다.
여기에서 학습 정확도가 증가함에 따라 특정 지점에서 유효성 검사 정확도가 정체되는 것을 볼 수 있습니다. 이것은 모델이 일반적인 패턴을 인식하지 못하는 훈련 데이터만을 순수하게 인식하는 데 너무 능숙해지고 있음을 의미합니다.
정규화
정규화는 초기 모델이 과적합될 때 자주 사용됩니다. 일반적으로 l1, l2 및 드롭아웃의 세 가지 유형 중에서 선택할 수 있습니다.
L1 및 l2 정규화는 기본적으로 너무 크고 역전파 단계에 있는 가중치 행렬에 페널티를 줍니다. 사용 예:
model.add(Dense(128, activation='relu',
kernel_regularizer=regularizers.l2(0.005)))
반면 드롭아웃은 네트워크의 임의 노드를 주어진 속도에서 0으로 설정합니다. 이는 과적합에 대한 효과적인 대책이기도 합니다. 드롭아웃 함수 내의 숫자는 드롭아웃이 발생하는 비율을 나타냅니다. 예:
model.add(Dropout(.2))
표준화
모델 과적합에 대한 또 다른 대책은 입력 데이터를 정규화하는 것입니다. 가장 쉬운 방법은 데이터를 0과 1 사이로 스케일링하도록 정규화하는 것입니다. 이렇게 하면 잠재적으로 훈련 시간을 줄이고 수렴을 안정화할 수 있습니다. 랜덤 노멀과 같은 레이어 내에서 정규화할 수도 있습니다.
model.add(Dense(64, activation='relu',
kernel_initializer=initializers.RandomNormal())
최적화
마지막으로 다른 최적화 기능을 사용해 볼 수 있습니다. 가장 많이 사용되는 세 가지는 아마도 Adam, SGD 및 RMSprop입니다.
Adam("Adaptive Moment Estimation")은 가장 인기 있고 매우 잘 작동하는 것 중 하나입니다.
언더피팅 다루기
과소적합 모델은 훈련 정확도/손실이 개선되지 않는 위 그래프의 반대처럼 보입니다. 이를 처리하는 몇 가지 방법이 있습니다.
복잡성 추가
모델이 적합하지 않은 이유는 모델이 충분히 복잡하지 않기 때문일 수 있습니다. 즉, 추상 패턴을 식별할 수 없습니다. 이 문제를 해결하는 방법은 1) 더 많은 레이어를 추가하거나 2) 뉴런 수를 늘려 모델에 복잡성을 추가하는 것입니다.
훈련 시간
모델이 적합하지 않은 또 다른 이유는 교육 시간입니다. 모델에 학습 시간과 반복을 더 많이 제공함으로써 더 이상적인 솔루션으로 수렴할 수 있는 더 많은 기회를 제공합니다.
요약
요약하면 과적합 모델에는 정규화, 정규화 및 최적화가 필요하고 과소적합 모델에는 더 많은 복잡성과 교육 시간이 필요합니다. 신경망은 좋은 균형에 도달할 때까지 작고 점진적인 변경에 관한 것입니다. 이러한 팁은 모델을 조정해야 할 필요성을 필연적으로 발견할 때 올바른 방향으로 이동하고 있는지 확인합니다.
Reference
이 문제에 관하여(신경망 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hoganbyun/tuning-neural-networks-33l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)