1 用Python从头实现一个神经网络来理解神经网络的原理3-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Python从头实现一个神经网络来理解神经网络的原理3

jf_78858299 来源:机器学习杂货店 作者:机器学习杂货店 2023-02-27 15:06 次阅读

***11 ***训练神经网络 第二部分

现在我们有了一个明确的目标:最小化神经网络的损失。通过调整网络的权重和截距项,我们可以改变其预测结果,但如何才能逐步地减少损失?

这一段内容涉及到多元微积分,如果不熟悉微积分的话,可以跳过这些数学内容。

为了简化问题,假设我们的数据集中只有Alice:

假设我们的网络总是输出0,换言之就是认为所有人都是男性。损失如何?

图片

那均方差损失就只是Alice的方差:

图片

也可以把损失看成是权重和截距项的函数。让我们给网络标上权重和截距项:

图片

这样我们就可以把网络的损失表示为:

图片

假设我们要优化图片 ,当我们改变 图片 时,损失图片会怎么变化?可以用图片来回答这个问题,怎么计算?

接下来的数据稍微有点复杂,别担心,准备好纸和笔。

首先,让我们用图片来改写这个偏导数:

图片

因为我们已经知道图片 ,所以我们可以计算图片

图片

现在让我们来搞定图片图片分别是其所表示的神经元的输出,我们有:

图片

由于图片 只会影响图片(不会影响图片),所以:

图片

图片,我们也可以这么做:

图片

在这里,图片是身高,图片是体重。这是我们第二次看到 图片(S型函数的导数)了。求解:

图片

稍后我们会用到这个图片

我们已经把图片分解成了几个我们能计算的部分:

图片

这种计算偏导的方法叫『反向传播算法』(backpropagation)。

好多数学符号,如果你还没搞明白的话,我们来看一个实际例子。

***12 ***例子:计算偏导数

我们还是看数据集中只有Alice的情况:

图片

把所有的权重和截距项都分别初始化为1和0。在网络中做前馈计算:

图片

网络的输出是图片,对于Male(0)或者Female(1)都没有太强的倾向性。算一下图片

图片

提示: 前面已经得到了S型激活函数的导数 图片

搞定!这个结果的意思就是增加图片也会随之轻微上升。

***13 ***训练:随机梯度下降

现在训练神经网络已经万事俱备了!我们会使用名为随机梯度下降法的优化算法来优化网络的权重和截距项,实现损失的最小化。核心就是这个更新等式:

图片

图片是一个常数,被称为学习率,用于调整训练的速度。我们要做的就是用图片减去图片

  • 如果图片是正数,图片变小,图片会下降。
  • 如果图片是负数,图片会变大,图片会上升。

如果我们对网络中的每个权重和截距项都这样进行优化,损失就会不断下降,网络性能会不断上升。

我们的训练过程是这样的:

  1. 从我们的数据集中选择一个样本,用随机梯度下降法进行优化——每次我们都只针对一个样本进行优化;
  2. 计算每个权重或截距项对损失的偏导(例如图片 等);
  3. 用更新等式更新每个权重和截距项;
  4. 重复第一步;
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100704
  • 神经元
    +关注

    关注

    1

    文章

    363

    浏览量

    18449
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84623
收藏 人收藏

    评论

    相关推荐

    人工神经网络原理及下载

    这个网络输入和相应的输出来“训练”这个网络网络根据输入和输出不断地调节自己的各节点之间的权值满足输入和输出。这样,当训练结束后,我们给定
    发表于 06-19 14:40

    labview BP神经网络实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,比如
    发表于 02-22 16:08

    【PYNQ-Z2试用体验】神经网络基础知识

    超过阈值,输出就跃而起。但我们S函数作为激活函数。如下图:图2 该函数相比阶越函数更加接近现实。神经网络原理如图所示是
    发表于 03-03 22:10

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    【案例分享】ART神经网络与SOM神经网络

    今天学习了两神经网络,分别是自适应谐振(ART)神经网络与自组织映射(SOM)神经网络。整体感觉不是很难,只不过些最基础的概念容易
    发表于 07-21 04:30

    人工神经网络实现方法有哪些?

    人工神经网络(Artificial Neural Network,ANN)是种类似生物神经网络的信息处理结构,它的提出是为了解决些非线性,非平稳,复杂的实际问题。那有哪些办法能
    发表于 08-01 08:06

    什么是LSTM神经网络

    简单理解LSTM神经网络
    发表于 01-28 07:16

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反
    发表于 07-12 08:02

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络实现是如何直没有具体实现
    发表于 08-18 07:25

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过对系统性能的学习
    发表于 09-07 07:43

    卷积神经网络维卷积的处理过程

    inference在设备端上做。嵌入式设备的特点是算力不强、memory小。可以通过对神经网络做量化降load和省memory,但有时可能memory还吃紧,就需要对神经网络在memory使用上做进
    发表于 12-23 06:16

    Python从头实现神经网络理解神经网络的原理1

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:05 687次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理1

    Python从头实现神经网络理解神经网络的原理2

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:06 617次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理2

    Python从头实现神经网络理解神经网络的原理4

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:06 678次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理4

    BP神经网络和人工神经网络的区别

    BP神经网络和人工神经网络(Artificial Neural Networks,简称ANNs)之间的关系与区别,是神经网络领域中基础且
    的头像 发表于 07-10 15:20 1014次阅读