神经网络实现手写识别

这个项目基于coursera上的ML课程,学过神经网络之后,就利用octave做了一个神经网络识别手写数字的程序。 hidden layer有2层,theta都是给好的,所以完整的代码就是

function p = predict(Theta1, Theta2, X)
m = size(X, 1);
num_labels = size(Theta2, 1);
p = zeros(size(X, 1), 1);


% Second layer
X = [ones(m, 1) X];
z_two = Theta1 * X';
a_two = sigmoid(z_two);
second_m = size(a_two, 2);
a_two = [ones(1, second_m); a_two];

% Third layer
z_three = a_two' * Theta2';
a_three = sigmoid(z_three);

[max_value max_index] = max(a_three');
p = max_index';
end

准确率可以达到97%,相比罗辑回归跟高。 下面是识别的效果

1.png

识别手写1的图片

5.png

识别手写5的图片

6.png

识别手写6的图片

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容