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

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

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

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

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

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

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

准备工作:

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

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

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

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、 补全函数:给函数写具体功能。参见具体语句。

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

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

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

二、 训练模型

1、 设置神经网络参数

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

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

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

2、训练数据导入

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

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

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

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

3、 用数据训练神经网络

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

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

三、测试模型

1、测试数据导入:

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

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

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

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

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

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

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

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

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

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

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

4、 后续玩法

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_42209553/article/details/85012894