2017-09-14 5 views
4

이것은 깊은 학습 개념상의 문제이며, 이것이 올바른 플랫폼이 아니라면 다른 곳으로 가져 가겠습니다.파이썬 Keras LSTM 학습이 고 손실로 너무 빠르게 수렴합니다.

저는 Keras LSTM 순차 모델을 사용하여 텍스트 시퀀스를 학습하고 숫자 값 (회귀 문제)에 매핑하려고합니다.

문제는 학습이 항상 높은 손실 (교육과 테스트 모두)에 너무 빠르게 수렴한다는 것입니다. 가능한 모든 하이퍼 매개 변수를 시도했는데 모델의 높은 바이어스를 유발하는 로컬 미니 마 문제라고 느낍니다.

내 질문은 기본적으로 다음과 같습니다

  1. 방법이 문제 주어진 무게와 편견을 초기화?
  2. 사용할 최적화 도구는 무엇입니까?
  3. 네트워크를 얼마나 깊이 확장해야합니까? (매우 깊은 네트워크를 사용하면 교육 시간이 길어지고 모델 차이가 커질 수 있습니다)
  4. 교육 데이터를 더 추가해야합니까?

입력 및 출력은 minmax로 정규화됩니다.

내가 모멘텀 SGD를 사용하고, 현재 3 개 LSTM 층 (126,256,128) 및 2 개 조밀 한 층 (200 및 1 출력 뉴런)

나는 몇 신 (新) 시대 이후에 가중치를 인쇄 많은 무게 이 나타났습니다 제로 나머지는 기본적으로 1 (또는 매우 근접한 값)입니다. 여기

는 tensorboard에서 약간의 플롯이다 : 매우 높은 손실 enter image description here

+0

"adam"최적화 도구를 사용하는 것이 좋으며 종종 자동으로 해당 방법을 찾습니다. 그러나 많은 시험과 세부 사항없이 답을 줄 수는 없습니다. 학습률이 너무 높을 수는 있지만 가능한 유일한 원인은 아닐 수도 있습니다. –

+0

정품 인증 기능은 무엇입니까? –

답변

5

빠른 수렴이 가능하게 당신이 폭발 그라데이션 문제에 직면하고 의미 할 수있다. 1e-5 나 1e-6보다 훨씬 낮은 학습 속도를 사용하십시오. 높은 학습 속도의 경우 그래디언트 클리핑과 같은 기법을 사용하여 그라디언트를 제한 할 수도 있습니다. 이 논문 https://arxiv.org/abs/1502.01852

  • 자비에르 초기화
  • 임의의 초기화
  • 설명

    1. 방법 : 무게의

      대답 한

      는 또 다른 이유가 될 수 초기화, 다음의 3 개 가지 방법을 시도

    많은 경우 첫 번째 초기화 방법이 가장 효과적입니다.

    당신은

    1. 모멘텀 최적화
    2. SGD 또는 그라데이션 하강
    3. 아담 최적화

    하여 최적화 프로그램의 선택과 같은 다른 최적화를 시도 할 수 있습니다 2

    대답해야 y의 선택에 기초한다. 우리의 손실 함수. 예를 들어, MSE를 손실 함수로 사용하는 로지스틱 회귀 문제의 경우 그래디언트 기반 옵티 마이저가 수렴하지 않습니다.

    대답 3 다시 사용하고 어떤 문제가되는 네트워크의 유형에 완전히 의존의 깊이 나 폭 넓은 네트워크가 있어야한다

    .

    LSTM을 사용하는 순차적 모델을 사용 중이라고 말했듯이 텍스트의 순서를 배우려면. 의심의 여지가 모델의 선택은 4-5 LSTM 시도해 볼 수도 있습니다이 문제에 좋습니다.

    대답 4

    당신의 기울기가 0 또는 무한 중 하나를가는 경우는, 그것은 그라디언트 사라지는 호출되거나 단순히 초기 컨버전스, 적절한 학습 속도와 최초의 무게 초기화 기법 그라데이션 클리핑 시도를 의미한다.

    본인의 문제가 확실히 해결 될 것이라고 확신합니다.