导航:首页 > 编程语言 > python神经网络

python神经网络

发布时间:2022-02-10 07:40:36

① 怎么用python训练神经网络

Python 可以用scikit-learn、Theano、pybrain等库来做神经网络,详细的内容可以搜索相关的例子和官方文档。

② 如何用9行Python代码编写一个简易神经网络

学习人工智能时,我给自己定了一个目标--用Python写一个简单的神经网络。为了确保真得理解它,我要求自己不使用任何神经网络库,从头写起。多亏了Andrew Trask写得一篇精彩的博客,我做到了!下面贴出那九行代码:在这篇文章中,我将解释我是如何做得,以便你可以写出你自己的。我将会提供一个长点的但是更完美的源代码。

首先,神经网络是什么?人脑由几千亿由突触相互连接的细胞(神经元)组成。突触传入足够的兴奋就会引起神经元的兴奋。这个过程被称为“思考”。我们可以在计算机上写一个神经网络来模拟这个过程。不需要在生物分子水平模拟人脑,只需模拟更高层级的规则。我们使用矩阵(二维数据表格)这一数学工具,并且为了简单明了,只模拟一个有3个输入和一个输出的神经元。

我们将训练神经元解决下面的问题。前四个例子被称作训练集。你发现规律了吗?‘?’是0还是1?你可能发现了,输出总是等于输入中最左列的值。所以‘?’应该是1。

训练过程

但是如何使我们的神经元回答正确呢?赋予每个输入一个权重,可以是一个正的或负的数字。拥有较大正(或负)权重的输入将决定神经元的输出。首先设置每个权重的初始值为一个随机数字,然后开始训练过程:

取一个训练样本的输入,使用权重调整它们,通过一个特殊的公式计算神经元的输出。

计算误差,即神经元的输出与训练样本中的期待输出之间的差值。

根据误差略微地调整权重。

重复这个过程1万次。最终权重将会变为符合训练集的一个最优解。如果使用神经元考虑这种规律的一个新情形,它将会给出一个很棒的预测。

这个过程就是back propagation。

计算神经元输出的公式

你可能会想,计算神经元输出的公式是什么?首先,计算神经元输入的加权和,即接着使之规范化,结果在0,1之间。为此使用一个数学函数--Sigmoid函数:Sigmoid函数的图形是一条“S”状的曲线。把第一个方程代入第二个,计算神经元输出的最终公式为:你可能注意到了,为了简单,我们没有引入最低兴奋阈值。

调整权重的公式

我们在训练时不断调整权重。但是怎么调整呢?可以使用“Error Weighted Derivative”公式:为什么使用这个公式?首先,我们想使调整和误差的大小成比例。其次,乘以输入(0或1),如果输入是0,权重就不会调整。最后,乘以Sigmoid曲线的斜率(图4)。为了理解最后一条,考虑这些:

我们使用Sigmoid曲线计算神经元的输出

如果输出是一个大的正(或负)数,这意味着神经元采用这种(或另一种)方式

从图四可以看出,在较大数值处,Sigmoid曲线斜率小

如果神经元认为当前权重是正确的,就不会对它进行很大调整。乘以Sigmoid曲线斜率便可以实现这一点

Sigmoid曲线的斜率可以通过求导得到:把第二个等式代入第一个等式里,得到调整权重的最终公式:当然有其他公式,它们可以使神经元学习得更快,但是这个公式的优点是非常简单。

构造Python代码

虽然我们没有使用神经网络库,但是将导入Python数学库numpy里的4个方法。分别是:

exp--自然指数

array--创建矩阵

dot--进行矩阵乘法

random--产生随机数

比如, 我们可以使用array()方法表示前面展示的训练集:“.T”方法用于矩阵转置(行变列)。所以,计算机这样存储数字:我觉得我们可以开始构建更优美的源代码了。给出这个源代码后,我会做一个总结。

我对每一行源代码都添加了注释来解释所有内容。注意在每次迭代时,我们同时处理所有训练集数据。所以变量都是矩阵(二维数据表格)。下面是一个用Python写地完整的示例代码。

我们做到了!我们用Python构建了一个简单的神经网络!

首先神经网络对自己赋予随机权重,然后使用训练集训练自己。接着,它考虑一种新的情形[1, 0, 0]并且预测了0.99993704。正确答案是1。非常接近!

传统计算机程序通常不会学习。而神经网络却能自己学习,适应并对新情形做出反应,这是多么神奇,就像人类一样。

③ 机器学习、Python哪个以人类神经网络为目的的学习

最近接了一个大数据项目,需要进行到数据分析,作为一个从程序员往数据挖掘工程师转行的人来说,R语言在灵活性上不如Python,并且在深度神经网络等机器学习开源模块上,python也比R语言有更好的支持。本文主要利用Ubuntu来搭建虚拟机来进行数据分析工作,主要利用了sklearn和keras开源模块。Google开发的深度神经网络python开源模块tensorflow目前不支持windows系统,因此强烈建议使用linux操作系统,而redhat虽然是Linux系统中比较成熟的一种,但是其yum是付费服务,并且没有预装apt-get等大量的插件,因此选择ubuntu系统,对于刚入门的新手来说更友好。

环境配置:

VM Ware 12.0(在不同主机之间的文件复制粘贴比Visual Box要好一点)

Anaconda2 (python2.7以及相关的科学计算集成,安装完成后就可以直接使用科学计算所有的模块,包括最流行的numpy,pandas)

JetBrain Pycharm (Python开发最火的IDE集成开发工具,方便使用git和github进行代码的管理)

Ubuntu16.01 amd64位

1、Ubuntu虚拟机安装

选择Ubuntu的ISO镜像文件,这时VM Ware将自动选择为简易安装,不用考虑分区问题


4、机器学习相关开源模块安装

安装Anaconda后,可以使用pip或conda工具进行下载开源Python模块,但是必须保持网络连接状态。由于深度神经网络和一些机器学习的模块很新,所以必须两个命令都用到。

输入:

conda install theano

conda install keras

pip install tensorflow

pip install sklearn

安装提示信息安装,完成后,输入python进入python命令行工具,分别输入import keras和import sklearn,如果没有错误信息,则模块安装完成。

5、使用pycharm

打开命令行输入cd /home/bigdata/Downloads/pycharm-community-2016.2.2/bin

输入 bash pycharm.sh运行pycharm

点击左上角的FIle-->settings--->version control----->github,输入自己的github账号和密码,点击测试

点击Test后,第一次会让你设置本地github的登录密码,这个密码必须记住,因为是不是系统在你提交代码或者从github上clone时需要填写这个密码来验证。如果你的github账号密码都正确,则出现下图。

在选择git这个选项,设置你已经安装好的git工具的路径,一般为/usr/bin/git.

点击Test,出现下图则github和git都配置成功,可以使用了。

5、从github中导入项目

从菜单栏中点击VCS,选择checkout from version control,再选择github。

然后就可以选择你想要的项目导入到本地了

有兴趣的同学可以在URL那栏复制粘贴veld/PythonProgram.git,这是我分享的我找的一些机器学习的代码,以及sklearn和keras的用法,比较容易入手。机器学习的训练集和测试集留言并留下你的邮箱,我会尽快发给你。

④ 神经网络研究与应用这块用python好还是matlab

一般的讲,如果只是做做仿真,matlab更好,无他,现成的模块,大量的参考代码,以及简单爆了的语法规则,面向过程的程序设计。尽管python也有大量模块代码,但毕竟是OO,要用好还是有学习梯度的。
但是一旦有研究需要,包含大量自设计的模型,就会明白python是多么方便省事了。语言自身的灵活性给自行设计模型提供了极大的方便,这一点matlab能做到,但是很费事。而且做大工程,多人协作等,python比matlab有更多优势。

⑤ 关于Python的BP神经网络的一个代码

这个神经网络只能处理分两类的的情况,这是由这个神经网络的结构决定了的。

如果想应付分多类的情况,必须对输出层作softmax处理。

具体代码可参看这里:
http://www.cnblogs.com/hhh5460/p/5434531.html

⑥ 用python编写的神经网络结果怎么可视化

学习人工智能时,我给自己定了一个目标--用Python写一个简单的神经网络。为了确保真得理解它,我要求自己不使用任何神经网络库,从头写起。多亏了Andrew Trask写得一篇精彩的博客,我做到了!下面贴出那九行代码:

在这篇文章中,我将解释我是如何做得,以便你可以写出你自己的。我将会提供一个长点的但是更完美的源代码。

⑦ 关于神经网络 需要学习python的哪些知识

多读文档 应该是库 库也是python基础编写的 多读多看

⑧ 如何用神经网络做线性回归预测python

1:神经网络算法简介
2:Backpropagation算法详细介绍
3:非线性转化方程举例
4:自己实现神经网络算法NeuralNetwork
5:基于NeuralNetwork的XOR实例
6:基于NeuralNetwork的手写数字识别实例
7:scikit-learn中BernoulliRBM使用实例
8:scikit-learn中的手写数字识别实例

⑨ python 有哪些神经网络的包

1. Scikit-learn Scikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosting,聚类算法和DBSCAN。

⑩ 神经网络,python报错:AttributeError: 'DataFrame' object has no attribute 'ravel'

y_train.values.ravel()
这样试试,因为你的y不是一维向量。
我建议你先看看数据

阅读全文

与python神经网络相关的资料

热点内容
linux打包命令targz 浏览:996
抖音app是哪个 浏览:407
苹果app怎么上架 浏览:255
NA服务器地址 浏览:427
我的世界如何初始化服务器 浏览:97
哪个手机app天气预报最准 浏览:752
怎样把视频压缩至25m 浏览:570
vivox27文件夹怎么改变 浏览:727
新手玩狼人杀用什么app 浏览:615
pdf在线查看 浏览:954
安卓tv90如何关闭后台 浏览:683
php读取word乱码 浏览:755
minicom源码 浏览:1001
海尔冷柜压缩机 浏览:416
联通服务器如何调试信号 浏览:136
stata新命令 浏览:941
单调栈算法python 浏览:606
微信解压游戏怎么下载 浏览:962
忍三服务器不同如何登上账号 浏览:822
php求积 浏览:297