2016-09-01 17 views
12

Tôi đang làm việc trong một vấn đề học máy và muốn xây dựng các bộ phân loại dựa trên mạng nơron trên nó trong MATLAB. Một vấn đề là dữ liệu được đưa ra dưới dạng các tính năng và số lượng mẫu thấp hơn đáng kể. Tôi biết về kỹ thuật tăng cường dữ liệu cho hình ảnh, bằng cách xoay, dịch, dịch affine, v.v.Kỹ thuật tăng cường dữ liệu cho các tập dữ liệu chung?

Tôi muốn biết liệu có các kỹ thuật tăng cường dữ liệu có sẵn cho các tập dữ liệu chung không? Giống như là nó có thể sử dụng ngẫu nhiên để tạo ra nhiều dữ liệu hơn? Tôi đọc câu trả lời here nhưng tôi không hiểu nó.

Vui lòng cung cấp câu trả lời cùng với chi tiết làm việc nếu có thể.

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

4

Bạn cần xem xét autoencoders. Hiệu quả bạn chuyển dữ liệu của bạn vào một mạng nơron cấp thấp, nó áp dụng một phân tích giống như PCA, và sau đó bạn có thể sử dụng nó để tạo ra nhiều dữ liệu hơn.

Matlab có lớp autoencoder cũng như function, sẽ thực hiện tất cả điều này cho bạn. Từ tệp trợ giúp của MATLAB

Tạo dữ liệu đào tạo.

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); 

Train autoencoder sử dụng dữ liệu huấn luyện.

hiddenSize = 25; 
autoenc = trainAutoencoder(x',hiddenSize,... 
     'EncoderTransferFunction','satlin',... 
     'DecoderTransferFunction','purelin',... 
     'L2WeightRegularization',0.01,... 
     'SparsityRegularization',4,... 
     'SparsityProportion',0.10); 

Tạo dữ liệu thử nghiệm.

n = 1000; 
r = sort(-10 + 20*rand(n,1)); 
xtest = 1 + r*5e-2 + sin(r)./r + 0.4*randn(n,1); 

Dự đoán dữ liệu thử nghiệm bằng cách sử dụng autoencoder đào tạo, autoenc.

xReconstructed = predict(autoenc,xtest'); 

Lô dữ liệu thử nghiệm thực tế và những dự đoán.

figure; 
plot(xtest,'r.'); 
hold on 
plot(xReconstructed,'go'); 

Plot results

Bạn có thể xem cicrles xanh đại diện cho dữ liệu bổ sung được tạo ra với các tính năng tự động mã hóa.

+0

Tôi đã đọc bài viết. Một truy vấn, bộ mã hóa tự động không được giám sát. Tuy nhiên tôi có quyền truy cập vào nhãn trong giai đoạn đào tạo. Giả sử tôi có 5 lớp. Tôi có cần đào tạo 5 bộ mã hóa tự động riêng biệt để tạo ra các ví dụ cho năm lớp khác nhau hay một lớp đủ? Vui lòng trả lời. – roni

+0

Ngoài ra, việc xây dựng lại tốt như thế nào nếu chúng ta chỉ sử dụng một lớp duy nhất cho bộ mã hóa tự động? Vui lòng kiểm tra http://in.mathworks.com/help/nnet/ref/autoencoder.predict.html Các hình ảnh được xây dựng lại này khá kém - điều này đặt ra câu hỏi rằng nếu chúng tôi đã sử dụng nhiều lớp hơn, việc xây dựng lại sẽ tốt hơn . – roni

Các vấn đề liên quan