신경망을 디버깅하려면 일반적으로 하이퍼 파라미터를 조정하고 학습 된 필터를 시각화하며 중요한 메트릭을 플로팅해야합니다. 사용중인 하이퍼 파라미터를 공유 할 수 있습니까?
- 배치 크기는 얼마입니까?
- 학습률은 얼마입니까?
- 어떤 종류 의 오토 인코더를 사용하고 있습니까?
- Denoising Autoencoder를 사용해 보셨습니까? (어떤 부패 가치를 시도 했습니까?)
- 숨겨진 레이어는 몇 개이고 어떤 크기입니까?
- 입력 이미지의 크기는 얼마입니까?
훈련 로그를 분석하는 것도 유용합니다. 에포크 (X 축)의 함수로서 재구성 손실 (Y 축)의 그래프를 플로팅합니다. 재건 손실이 수렴 또는 분기되고 있습니까?
다음은 인간 성별 분류를위한 오토 인코더의 예입니다. 분기는 1500 epoch 이후 중지되었으며 하이퍼 파라미터가 조정되었으며 (이 경우 학습률 감소), 분기되고 결국 수렴 된 동일한 가중치로 다시 시작되었습니다.
수렴하는 것이 있습니다 : (우리는 이것을 원합니다)
바닐라는 "제한되지 않은"것은 단순히 신원 매핑을 배우는 문제를 일으킬 수 있습니다. 이것이 커뮤니티가 Denoising, Sparse 및 Contractive 맛을 만든 이유 중 하나입니다.
여기에 작은 데이터 하위 집합을 게시 할 수 있습니까? 내 자동 엔코더 중 하나의 결과를 기꺼이 보여줄 것입니다.
참고 로, 그래프가 데이터의 벡터로 쉽게 표현 될 수있을 때 왜 그래프 이미지를 사용하는지 먼저 물어볼 수 있습니다. 즉,
[0, 13, 15, 11, 2, 9, 6, 5]
위와 같은 문제를 재구성 할 수 있다면 본질적으로 자동 엔코더 수명을 단축시키는 것입니다. 먼저 생성 분포를 배우기 전에 이미지를 보는 방법을 배울 필요가 없습니다.
후속 답변 (데이터 제공)
다음은 1000 개의 숨겨진 단위, 단일 레이어 Denoising Autoencoder의 필터입니다. 일부 필터는 무작위로 보입니다. 교육을 너무 일찍 중단하고 네트워크에서 이러한 필터를 배울 시간이 없었기 때문입니다.
내가 훈련 한 초 매개 변수는 다음과 같습니다.
batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2
필터가 여기에 게시하기에 충분했기 때문에 58 번째 시대 이후 프리 트레이닝을 중단했습니다. 내가 당신이라면 시작하기 위해 1000x1000x1000 아키텍처로 풀 3 층 스택 디노 이징 오토 인코더를 훈련시킬 것입니다.
미세 조정 단계의 결과는 다음과 같습니다.
validation error 24.15 percent
test error 24.15 percent
처음에 보면 우연보다 더 나은 것처럼 보이지만 두 레이블 사이의 데이터 분석을 보면 정확히 같은 백분율 (75.85 % 수익성 및 24.15 % 비영리)을가집니다. 즉, 네트워크가 신호에 관계없이 단순히 "수익성있는"응답을하는 법을 배웠습니다. 나는 아마도 더 큰 그물로 이것을 오랫동안 훈련 시켜서 무슨 일이 일어나는지 볼 것입니다. 또한이 데이터는 일종의 기본 재무 데이터 세트에서 생성 된 것으로 보입니다. 위에서 설명한대로 문제를 벡터로 재구성 한 후 Recurrent Neural Networks를 살펴 보는 것이 좋습니다. RNN은 이와 같은 시계열 데이터에서 발견되는 일부 시간적 종속성을 캡처하는 데 도움이 될 수 있습니다. 이것이 도움이되기를 바랍니다.