autoencoder 예제

Compartir

2/08/2019

Por

Categoría: Sin categoría

Comentarios: 0

이 자습서에서는 이미지를 재구성하기 위해 누적된 자동 엔코더를 빌드하는 방법을 배웁니다. 자동 엔코더의 대상은 입력과 동일합니다. 이것이 바로 교육 데이터를 대상으로 제공하는 이유입니다. 학습 중에 컨볼루션 자동 엔코더에서 이전에 정의한 근평균 제곱 오차와 유사한 손실 함수를 정의합니다. 교육의 모든 반복에서, 네트워크는 디코더에 의해 출력 된 시끄러운 이미지와 지상 진실 (denoisy 이미지) 사이의 손실을 계산하고 또한 재구성 된 이미지와 원래의 노이즈없는 사이의 손실 이나 차이를 최소화하기 위해 노력할 것입니다 이미지. 즉, 네트워크는 네트워크를 학습 할 데이터의 노이즈없는 인코딩이 될 7 x 7 x 128 공간을 배우게됩니다! 자동 엔코더는 역전도를 통해 AN과 동일한 방식으로 학습됩니다. 신경망이 학습되는 방법에 대한 자세한 내용은 1부 의 도입을 확인하십시오. 이것이 우리가 «샌드위치» 아키텍처를 선호하고 의도적으로 코드 크기를 작게 유지하는 이유입니다. 코딩 계층은 입력 데이터보다 치수성이 낮기 때문에 자동 엔코더는 불완전하다고 합니다. 출력에 입력을 직접 복사할 수 없으며 지능형 기능을 학습하도록 강요됩니다.

입력 데이터에 패턴(예: 숫자 «1»)에 일반적으로 다소 직선이 있고 숫자 «0»이 원형인 경우 이 사실을 학습하고 보다 컴팩트한 형태로 인코딩합니다. 입력 데이터가 내부 상관 관계 나 종속성없이 완전히 임의인 경우 불완전한 자동 엔코더는 완벽하게 복구 할 수 없습니다. 그러나 다행히도 현실 세계에는 많은 의존성이 있습니다. 그들은 LSTM 자동 엔코더를 훈련하고 마지막 인코더 계층의 마지막 셀 상태를 다른 모델에 공급했습니다. 나는 그것을 오해했는가? 눈을 가늘게 뜨면 여전히 인식할 수 있지만 거의 인식할 수 없습니다. 우리의 자동 엔코더는 원래의 숫자를 복구하는 방법을 배울 수 있습니까? 알아 봅시다. 이 튜토리얼은 이론적으로나 실질적으로 자동 엔코더를 이해하는 것이 좋습니다. 당신은 쉽게 또는 심지어 조금 더 많은 노력으로 따라 할 수 있다면, 잘! 노이즈를 해제하는 자동 엔코더는 노이즈에 강한 표현(잠재 공간 또는 병목 현상)을 배우려고 합니다. 이미지에 노이즈를 추가한 다음 시끄러운 이미지를 네트워크의 enooder 부분에 대한 입력으로 공급합니다.

자동 엔코더의 인코더 부분은 이미지를 알파벳을 보존하려고 하지만 노이즈를 제거하는 다른 공간으로 변환합니다. 간단히 하기 위해 변수 train_X의 모양이 48000 x 28 x 28 x 1인 예를 들어 이해해 보겠습니다. 따라서 임의의 법선 배열은 train_X와 유사한 모양을 가지며 이후 두 개의 배열을 추가할 수 있습니다. 안녕하세요 제이슨, 나는 full_model을 구축 할 수있는 또 다른 방법을 발견했다. autoencoder.predict(train_x)를 사용하여 full_model에 입력하지 않습니다. 나는 자동 엔코더 모델에서 인코더 부품의 원래 입력을 저장한 다음 해당 가중치를 인코더 모델로 설정했습니다.