美文网首页大数据 爬虫Python AI Sqlpython入门基础学习爬虫专题
零基础小白学python,大牛三步教你做python神经网络!

零基础小白学python,大牛三步教你做python神经网络!

作者: 编程新视野 | 来源:发表于2018-12-15 11:49 被阅读1次

    零基础,手把手教你第一个神经网络,只需三步!

    这篇文章只是为你扫清障碍

    代码还是要自己打一遍,才会发现各种报错。

    参数要自己调试一遍。才能体会神经网络的神奇。

    注意:需要学习资料视频书籍的;

    添加小编学习交流群943752371即可

    准备工作:

    1、第一个人工神经网络实现目标:

    识别数字,让计算机学会识别如下数字

    2、数据集:

    https://pjreddie.com/projects/mnist-in-csv/

    需要下载train set和test set两个数据集。

    数据分析:每一行代表一个手写数字。每行第一列是这个数字的值,从第二列开始代表像素值。

    3、编程语言python,编程工具:jupyter notebook

    安装免费的anaconda,安装后打开jupyter notebook会跳出网页,在网页对话框里输入语句。

    神经网络原理:

    参见之前的文章。吴恩达教你入门神经网络 - 今宵的文章 - 知乎

    https://zhuanlan.zhihu.com/p/49854976

    正式动手:

    把大象装冰箱需要几步?只需三步!

    一、搭建模型

    1、python编程通用第一步:引入各种需要的库

    这里只需要3个库。Numpy是数值计算必备库,scipy是需要调用里面一个函数,matplotlib是画图库

    import numpy

    import scipy.special

    import matplotlib.pyplot

    %matplotlib inline

    2、模型框架:三个函数写出神经网络框架

    def init(self,inputnodes,hiddennodes,outputnodes,learningrate):设置神经网络参数,包含输入层节点数、隐藏节点数、输出层节点数和学习率

    注意init左右2边是2条下划线,python里叫魔法方法,某些情况下会自动调用这个函数。

    def train(self,inputs_list,targets_list):——训练函数,输入和输出2个参数

    def query(self,inputs_list):——查询函数,输入1个参数

    3、 补全函数:给函数写具体功能。参见具体语句。

    二、 训练模型

    1、 设置神经网络参数

    写出语句只是开始,调参数才是神经网络的重点,通过调整参数,可以让模型结果更好

    可以实验不同的节点数、学习率,看看正确率会怎么改变,感受参数的改变对模型输出结果的影响。

    2、训练数据导入

    第一次导入时可以选取小一点的数据集,比如1000个数据,原始数据导入跑一次要花10多分钟,不方便调试。

    可以用len() 语句查看导入语句是否成功,导入了多少行语句。

    我导入语句比较顺利,导入失败可能是文件名写错(比如没写后缀),或者文件夹放的不对。

    3、 用数据训练神经网络

    耗时较长,还看不到结果,要耐心等待。

    三、测试模型

    1、测试数据导入:

    这里训练数据和测试数据要分开,否则训练出神经网络起不到作用。就像平时做作业都对,但考试时不一定考出高分。考的内容要和平时作业不一样才能验证水平。

    2、 附加:查看神经网络训练结果和实际数据的区别

    这一步是最有成就感的一步。

    看看图片是什么数据,神经网络判断是什么数字。这里神经网络输出10个数字,从0开始算,拿个数字最大表示判断是拿个数。比如这张图,第6个数据最大,表示神经网络判断这个数字是5(因为从0开始算)。

    3、 如何查看神经网络的正确率?

    用循环算出每个值和正确值比较

    我这个模型的正确率是88.8%,1000个数据训练出的正确率还可以。可以用全量30000个数据再训练一次,最高的正确率是95%

    4、 后续玩法

    可以查看哪个数神经网络判断错了:比如这张图是5,神经网络判断为1了,可以看到输出结果比较接近,1的数值比5大了一点点。神经网络判断这个图像1、像2又像5。

    可以尝试改变各种参数,追求最大的正确率,并画出参数和正确率的关系。

    可以尝试自己手写一个数字,把数据像素化,让神经网络判断

    附:完整代码参见https://github.com/makeyourownneuralnetwork/makeyourownneuralnetwork

    参考文献:《python神经网络编程》

    如果觉得有用,请点个赞,让我知道写的对你有帮助。

    相关文章

      网友评论

        本文标题:零基础小白学python,大牛三步教你做python神经网络!

        本文链接:https://www.haomeiwen.com/subject/ibzohqtx.html