비트 자동 인코더를 실험하고 있으며 tensorflow를 사용하여 MNIST 데이터 세트를 재구성하는 모델을 만들었습니다.
내 네트워크는 매우 간단합니다. X, e1, e2, d1, Y. 여기서 e1과 e2는 인코딩 레이어이고 d2와 Y는 디코딩 레이어입니다 (Y는 재구성 된 출력).
X는 784 개, e1은 100, e2는 50, d1은 다시 100, Y 784를 다시 갖습니다.
레이어 e1, e2, d1 및 Y의 활성화 함수로 시그 모이 드를 사용하고 있습니다. 입력은 [0,1]에 있으므로 출력이어야합니다.
글쎄, 나는 크로스 엔트로피를 손실 함수로 사용하려고 시도했지만 출력은 항상 얼룩이었고 X에서 e1까지의 가중치는 항상 0 값 행렬로 수렴한다는 것을 알았습니다.
반면에 평균 제곱 오차를 손실 함수로 사용하면 적절한 결과를 얻을 수 있으며 이제 입력을 재구성 할 수 있습니다.
왜 이렇게이다? 나는 값을 확률로 해석 할 수 있다고 생각했기 때문에 교차 엔트로피를 사용하지만 분명히 뭔가 잘못하고 있습니다.