python人工神经网络算法_手把手教你用Python创建简单的神经网络(附代码)!....pdfVIP

python人工神经网络算法_手把手教你用Python创建简单的神经网络(附代码)!....pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
python⼈⼯神经⽹络算法_⼿把⼿教你⽤Python创建简单的神 经⽹络(附代码)!... 了解神经⽹络⼯作⽅式的最佳途径莫过于亲⾃创建⼀个神经⽹络,本⽂将演⽰如何做到这⼀点。 神经⽹络(NN)⼜称⼈⼯神经⽹络(ANN),是机器学习领域中基于⽣物神经⽹络概念的学习算法的⼀个⼦集。 拥有五年以上经验的德国机器学习专家Andrey Bulezyuk声称:“神经⽹络正在彻底改变机器学习,因为它们能够在⼴泛的学科和⾏业中为 抽象对象⾼效建模。” ⼈⼯神经⽹络基本上由以下组件组成: 输⼊层:接收并传递数据 隐藏层 输出层 各层之间的权重 每个隐藏层都有⼀个激活函数。在这个简单的神经⽹络Python教程中,我们将使⽤Sigmoid激活函数。 神经⽹络有多种类型。在本项⽬中,我们将创建前馈或感知神经⽹络。这种类型的ANN直接将数据从前向后传递。 前馈神经元的训练往往需要反向传播,它为⽹络提供了相应的输⼊和输出集。当输⼊数据被传送到神经元时,经过处理后,产⽣⼀个输出。 下⾯的图表显⽰了⼀个简单的神经⽹络的结构 : 了解神经⽹络如何⼯作的最佳⽅法是学习如何从头开始构建神经⽹络(⽽不是采⽤任何库)。 在本⽂中,我们将演⽰如何利⽤Python编程语⾔创建⼀个简单的神经⽹络。 问题 如下是⼀个展⽰问题的表格。 我们将提供⼀个新的数据集,利⽤它训练神经⽹络,从⽽能够预测正确的输出值。 正如上表所⽰,输出值总是等于输⼊部分中的第⼀个值。因此,我们期望输出的值为1。 让我们看看是否可以使⽤Python代码来得出相同的结果(你可以在本⽂末尾仔细阅读这个项⽬的代码,然后再继续阅读本⽂)。 创建⼀个NeuralNetwork类 我们将⽤Python创建⼀个NeuralNetwork类来训练神经元,以期给出准确的预测。这个类还会有其他的帮助函数。 即使我们不会在这个简单的神经⽹络⽰例中使⽤神经⽹络库,我们也将导⼊numpy库来辅助计算。 numpy库提供了以下四种重要⽅法: exp—⽤于⽣成⾃然指数 array—⽤于⽣成矩阵 dot—⽤于矩阵相乘 random—⽤于⽣成随机数。请注意,我们将⽣成随机数,以确保它们的有效分布。 1. 应⽤Sigmoid函数 我们将使⽤Sigmoid函数,来绘制⼀个特征 “S”型曲线,作为神经⽹络的激活函数。 此函数可以将任何值映射到0到1之间的值,它将有助于我们对输⼊的加权和归⼀化。 此后,我们将创建Sigmoid函数的导数,以帮助计算权重的调整参数。 可以利⽤Sigmoid函数的输出来⽣成它的导数。例如,如果输出变量为“x”,则其导数为x*(1-x)。 2. 训练模型 这是我们教神经⽹络做出准确预测的阶段。每个输⼊都有⼀个权重-可为正值或负值。这意味着:有较⼤的正权重或负权重的输⼊会对结果 的输出产⽣更⼤的影响。请记住,我们最初是通过为每个随机数分配⼀个权重后开始的。 下⾯是这个神经⽹络⽰例的训练过程: 第⼀步:从训练数据集中提取输⼊,根据训练数据集的权重进⾏调整,并通过⼀种计算神经⽹络输出的⽅法对其进⾏筛选。 第⼆步:计算反向传播错误率。在这种情况下,它是神经元的预测输出与训练数据集的期望输出之间的差异。 第三步:利⽤误差加权导数公式,根据所得到的误差范围,进⾏了⼀些较⼩的权值调整。 第四步:对这⼀过程进⾏15000次迭代。在每次迭代中,整个训练集被同时处理。 我们使⽤“.T”函数将矩阵从⽔平位置转换为垂直位置。因此,数字将以如下⽅式存储: 最终,神经元的权重将根据所提供的训练数据进⾏优化。随后,如果让神经元考虑⼀个新的状态,与先前的状态相同,它便可以作出⼀个准 确的预测。这就是反向传播的⽅式。 打包运⾏ 最后,NeuralNetwork类初始化成功后,可以运⾏代码了。 下⾯是如何在Python项⽬中创建神经⽹络的完整代码 : import numpy as np class NeuralNetwork(): def __init__(self): # seeding for random number generation np.random.seed(1) #converting weights to a 3 by 1 matrix with values from -1 to 1 and mean of 0 self.synaptic_weights = 2 * np.random.random((3, 1)) - 1 def sigmoid(self, x): #applying the sigmoid function return 1 / (1

文档评论(0)

152****1430 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档