autoencoders을 조사해야합니다. 효과적으로 저수준 신경망에 데이터를 전달하고 PCA와 유사한 분석을 적용한 다음 계속해서 더 많은 데이터를 생성 할 수 있습니다.
Matlab에는 autoencoder 클래스와 function 클래스가 있으며이 모든 작업을 수행합니다. MATLAB 도움말 파일에서
훈련 데이터를 생성하십시오.
훈련 데이터를 사용하여
rng(0,'twister'); % For reproducibility
n = 1000;
r = linspace(-10,10,n)';
x = 1 + r*5e-2 + sin(r)./r + 0.2*randn(n,1);
기차 autoencoder.
hiddenSize = 25;
autoenc = trainAutoencoder(x',hiddenSize,...
'EncoderTransferFunction','satlin',...
'DecoderTransferFunction','purelin',...
'L2WeightRegularization',0.01,...
'SparsityRegularization',4,...
'SparsityProportion',0.10);
는 테스트 데이터를 생성합니다.
n = 1000;
r = sort(-10 + 20*rand(n,1));
xtest = 1 + r*5e-2 + sin(r)./r + 0.4*randn(n,1);
테스트 데이터가 autoenc을 훈련 autoencoder을 사용하여 예측한다.
xReconstructed = predict(autoenc,xtest');
플롯 실제 테스트 데이터 및 예측
.
figure;
plot(xtest,'r.');
hold on
plot(xReconstructed,'go');
당신은 자동 인코더로 생성 된 추가 데이터를 나타내는 녹색 cicrles을 볼 수 있습니다.
나는이 기사를 읽었습니다. 하나의 쿼리, 자동 엔코더는 감독되지 않습니다. 그러나 나는 훈련 단계에서 레이블에 액세스 할 수 있습니다. 5 개의 클래스가 있다고 가정합니다. 다섯 개의 다른 클래스에 대한 예제를 생성하기 위해 5 개의 별도 오토 인코더를 교육해야합니까 아니면 충분합니까? 친절하게 회신 해주십시오. – roni
또한 자동 인코더에 단 하나의 레이어 만 사용하면 재구성이 얼마나 좋을까요? 이 http://in.mathworks.com/help/nnet/ref/autoencoder.predict.html을 다시 확인하십시오. 재구성 된 이미지는 꽤 가난합니다. 더 많은 수의 레이어를 사용했다면 재구성이 더 좋을 것입니다. . – roni