Octave学习之入门第一天

            出于对机器学习的好奇与……好奇,博主大三学期选了《机器学习及模式识别》的课程。在做实验时要用到Matlab,如此高端大气上档次的软件作为一个苦逼的大学生,博主并没有任何打算要买。于是选择了老师推荐使用的Octave。

估计我又要踏上“浅学了解”一门语言的不归路了(可以这样说:博主两年浅学了4、5门语言,深感迷茫)。但这次我是认真的,要发展机器学习的道路了(博主好方)。

       首先,从度娘下载了一个Octave,尼玛啊、竟然是这样:

       Octave学习之入门第一天_第1张图片

       这科技黑让我想起cmd管理Mysql还有Node.js的骄(ku)傲(bi)感爆棚的日子,没错,它只有这个,度娘的只有这个!偷懒不成,从室友那里拷了一个官网的4.0版本,自带GUI.

       OK,安装成功,

       Octave学习之入门第一天_第2张图片

       。。。

       此处省略做实验一那个熬夜做到一点才逐渐熟悉软件及实验内容的过程

       。。。

       实验二做到了神经网络这块,第一块给出了一个已经训练好的3层神经网络,

       Octave学习之入门第一天_第3张图片

        按照指导书进行了一系列思考推算终于把这个h(x)搞成功,识别数字正确率97.5%。

        然后,突发奇想能不能不识别它的样本?

        然后:

               ①、我用企鹅截图并手写了个6(黑底白字)。

               ②、用Ps简单处理了一下,调成20*20大小。

               ③、下载了一个Image Package.并安装。

                       >>pkg install "路径"

                       >>pkg load image

               ④、读入图像:I = imread('six.jpg');

               ⑤、转化double:J = im2double(I);

               ⑥、矩阵转化为行向量:X = reshap(J,1,400);  %1 表示按列取下1个元素放400个一行

               ⑦、保存为six.mat:save six.mat X;%X是要存的数据,读时load('six.mat')会自动结果记为X

               ⑧、读出来并进行了增加对比度:X = imadjust(X,[0.3 0.5],[]);%这样标识低于0.3改为0,高于0.5改为1。

               然后用神经网络判断:

               

               尼玛啊,这很像5 吗?

               Octave学习之入门第一天_第4张图片

               

       经分析,我觉得是:①我的灰度没有做好。②因为采用截图并用了ps,导致中间的噪声对一个20*20的图像影响还是比较大的。③该神经网络训练时的样本的标准和我的相差很多。

        通过这个过程,可见图像的预处理是机器学习及识别的重要一环,

        还好我选修了数字图像处理课程。

        突然觉得如(ya)释(li)重(shan)负(da).



你可能感兴趣的:(Octave)