신경망 조정

3176 단어
신경망을 모델링할 때 즉시 만족스러운 결과를 얻지 못할 가능성이 큽니다. 과소적합이든 과적합이든 초기 모델을 개선하기 위해 만들 수 있는 작은 조정 변경이 항상 있습니다. 대부분의 경우 과적합 모델의 경우 정규화, 정규화, 최적화와 같은 주요 기술을 사용할 수 있습니다.

과적합 처리



과적합 모델의 예는 다음과 같습니다.


여기에서 학습 정확도가 증가함에 따라 특정 지점에서 유효성 검사 정확도가 정체되는 것을 볼 수 있습니다. 이것은 모델이 일반적인 패턴을 인식하지 못하는 훈련 데이터만을 순수하게 인식하는 데 너무 능숙해지고 있음을 의미합니다.

정규화
정규화는 초기 모델이 과적합될 때 자주 사용됩니다. 일반적으로 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) 뉴런 수를 늘려 모델에 복잡성을 추가하는 것입니다.

훈련 시간
모델이 적합하지 않은 또 다른 이유는 교육 시간입니다. 모델에 학습 시간과 반복을 더 많이 제공함으로써 더 이상적인 솔루션으로 수렴할 수 있는 더 많은 기회를 제공합니다.

요약



요약하면 과적합 모델에는 정규화, 정규화 및 최적화가 필요하고 과소적합 모델에는 더 많은 복잡성과 교육 시간이 필요합니다. 신경망은 좋은 균형에 도달할 때까지 작고 점진적인 변경에 관한 것입니다. 이러한 팁은 모델을 조정해야 할 필요성을 필연적으로 발견할 때 올바른 방향으로 이동하고 있는지 확인합니다.

좋은 웹페이지 즐겨찾기