Main Content

decode

클래스: Autoencoder

인코딩된 데이터 디코딩

설명

예제

Y = decode(autoenc,Z)는 오토인코더 autoenc를 사용하여 디코딩된 데이터 Y를 반환합니다.

입력 인수

모두 확장

훈련된 오토인코더로, trainAutoencoder 함수에 의해 Autoencoder 클래스의 객체로 반환됩니다.

autoenc로 인코딩된 데이터로, 행렬로 지정됩니다. Z의 각 열은 인코딩된 샘플(관측값)을 나타냅니다.

데이터형: single | double

출력 인수

모두 확장

디코딩된 데이터로, 영상 데이터로 구성된 행렬 또는 셀형 배열로 반환됩니다.

오토인코더 autoenc가 영상 데이터로 구성된 셀형 배열에 대해 훈련된 경우, Y도 영상으로 구성된 셀형 배열이 됩니다.

오토인코더 autoenc가 행렬에 대해 훈련된 경우, Y도 행렬이 됩니다. 여기서 Y의 각 열은 하나의 샘플 또는 관측값에 대응됩니다.

예제

모두 확장

훈련 데이터를 불러옵니다.

X = digitTrainCellArrayData;

X는 각 셀에 손으로 쓴 숫자를 표현한 합성 영상을 나타내는 28×28 행렬이 있는 1×5,000 셀형 배열입니다.

훈련 데이터를 사용하여 은닉 크기 15로 오토인코더를 훈련시킵니다.

hiddenSize = 15;
autoenc = trainAutoencoder(X,hiddenSize);

새로운 영상을 생성하기 위해, 인코딩된 데이터를 오토인코더를 사용하여 추출합니다.

Xnew = digitTestCellArrayData;
features = encode(autoenc,Xnew);

오토인코더에서 인코딩된 데이터를 디코딩합니다.

Y = decode(autoenc,features);

Y는 각 셀에 손으로 쓴 숫자를 표현한 합성 영상을 나타내는 28×28 행렬이 있는 1×5,000 셀형 배열입니다.

알고리즘

오토인코더에 대한 입력값이 벡터 xDx이면, 인코더는 다음과 같이 벡터 x를 또 다른 벡터 zD(1)로 매핑합니다.

z=h(1)(W(1)x+b(1)),

여기서 위 첨자 (1)은 첫 번째 계층을 나타냅니다. h(1):D(1)D(1)은 인코더에 대한 전달 함수이고, W(1)D(1)×Dx는 가중치 행렬이고, b(1)D(1)은 편향 벡터입니다. 그런 다음 디코더가 다음과 같이 인코딩된 표현 z를 원래 입력 벡터 x에 대한 추정값으로 다시 매핑합니다.

x^=h(2)(W(2)z+b(2)),

여기서 위 첨자 (2)는 두 번째 계층을 나타냅니다. h(2):DxDx는 디코더에 대한 전달 함수이고,W(1)Dx×D(1)은 가중치 행렬이고, b(2)Dx는 편향 벡터입니다.

버전 내역

R2015b에 개발됨

참고 항목

|