자동 엔코더에 아핀 변환 포함
2191 단어 DeepLearningChainer기계 학습
소개
지난번 의 계속입니다.
이전 기사에서는 이미지의 임의 점의 좌표 $(u, v)$를 입력으로 받아 이미지 값을 출력하는 신경망 모델을 구현했습니다.
이것을 오토엔코더의 디코더부로서 사용하는 것으로, 해상도에 의존하지 않는 화상 표현을 실시할 수 있습니다.
이번에는 이 디코더에 입력하는 좌표치에 아핀 변환을 적용하는 것을 생각합니다.
각 입력 이미지에 대해 적절한 아핀 변환 매개 변수를 사용할 수 있으면 이미지의 잠재 표현이 개선될 것으로 기대할 수 있습니다.
구현(github)
구현
이번에도 VAE를 베이스로 해, 인코더/디코더 모두 전 결합으로서 실장했습니다.
됩니다.
아핀 변환의 파라미터는
scale
theta
(tx, ty)
했다.
디코더에 입력하는 좌표치 $(u, v) $에 이 아핀 변환을 적용해 두는 것으로, 확대/축소/회전/평행 이동된 화상이 디코더로부터 출력되는 것입니다.
출력
잠재 차원 수를 8로 하여 MNIST를 학습합니다.
다음 단위 수로 실험합니다.
python3 train.py --gpu 0 --epoch 100 --batchsize 128 --model affine3x
그리고 100 에포크 학습시킨 출력 결과가 아래와 같습니다.
원본 데이터
출력
아핀 변환을 억제 한 원시 디코더 출력
미묘한 차이입니다만, 잘 비교하면 원시 데이터에서는 크기나 각도가 갖추어져 있는 것을 알 수 있습니다.
이 확대/축소, 회전 각도, 평행 이동량의 정보를 잠재 변수로부터 분리할 수 있었다는 것입니다.
잠재 변수 손실 (gaussian_kl_divergence)의 최종 값을 보면,
아핀 변환 있음
"main/z_loss": 1.8669424057006836,
아핀 변환 없음"main/z_loss": 2.214595079421997,
되어 있어 잠재 표현이 향상되고 있는 것을 확인할 수 있습니다.
Reference
이 문제에 관하여(자동 엔코더에 아핀 변환 포함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tmagara/items/06c96090fb4769c3c0db텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)