现在学NG 的UFLDL的深度学习相关讲义,打算基本每个模块的公式都自己推理明白,然后代码实现一遍,也算是对自己的一点鞭策,另外,在我学习过程当中遇到了很多的问题,非常需要有一份这样的实例代码来给自己一些提示或者学习之用,但是网上也找不到好的东西替代。另外,由于敲公式非常麻烦,所以原理什么的就不在这赘述了,具体的见UFLDLUFLDL连接。
如果您在阅读过程当中发现了什么问题请告知我,就当大家一起学习进步。另外找一个一起学习的小伙伴那是一件多么开心的事。
注:代码我是从头自己编写的并没有在NG的实例代码中添加模块,只是用了那个座位一些参考,收获还是蛮大的。
clc
clear all
data = load('housing.data');
data = data';
data = [ones(1,size(data,2)) ; data];
learnRate = 0.000001;
data = data(:,randperm(size(data,2)));
train.x = data(1:end-1,1:400);
train.y = data(end,1:400);
test.x = data(1:end-1,401:end);
test.y = data(end,401:end);
[test.y,b] = sort(test.y);
test.x = test.x(:,b);
w = zeros(size(train.x,1),1);
w_f = [];
%temp=zeros(size(train.x,1),1);
for j = 1:10000
for i = 1:size(train.x,2)
dis_y = w'*(train.x(:,i))-train.y(i);
temp = learnRate*dis_y*train.x(:,i);
w = w -temp;
end
w_f = w;
end
for j = 1:size(test.y,2)
price_predict = w_f'*test.x(:,j);
hold on
plot(j,price_predict,'*r');
hold on
plot(j,test.y(j),'*b');
end
最后得到的预测曲线如图:
其中蓝色代表实际值,红色代表预测值。