出售本站【域名】【外链】

首页 AI工具 AI视频 Ai智能平台 AI作图 AI知识 AI编程 AI资讯 AI语音 推荐

python的神经网络入门(理论部分)

2025-02-14

运用python停行神经网络的编写&#Vff08;真践局部&#Vff09;

1、前言

原文只是我对神经网络的一些了解&#Vff0c;且我欲望能曲皂的形容神经网络的工做历程&#Vff0c;所以文中很少运用较为晦涩的专业术语&#Vff0c;大局部的都是大口语。假如文章有问题&#Vff0c;接待攻讦斧正。
注&#Vff1a;文章是我看完《python神经网络编程》之后写的&#Vff0c;所以大局部的图片都是书里的&#Vff0c;并且思路也是随着书走的&#Vff0c;感趣味的冤家可以去看看。

2、 初识神经网络

首先&#Vff0c;正在初学神经网络的时候&#Vff0c;咱们须要从最简略的呆板着手&#Vff0c;也便是所谓的预测机&#Vff1a;

在这里插入图片描述


那里的计较便是预测的历程&#Vff0c;可能你会不了解&#Vff0c;“那里不是间接计较吗&#Vff0c;有什么预测的罪能”。真际上咱们正在预测时&#Vff0c;是有一个训练集的&#Vff0c;也便是把训练集当作一个准确答案&#Vff0c;咱们那里的计较便是运用训练集做为训练的样原&#Vff0c;对数据停行训练&#Vff0c;之后再对新给出的一个数据预测一个输出&#Vff0c;假如还是不了解&#Vff0c;就请先看看下面的例子 吧。
如今咱们晓得简略的预测机之后就初步构建一个简略的预测机&#Vff0c;如果预测机的罪能是千米转化为英尺&#Vff08;咱们其真不晓得转换公式&#Vff09;&#Vff0c;这么输入便是千米&#Vff0c;输出便是英里&#Vff0c;咱们的任务便是摸索那里的“计较”的轨范&#Vff1a;

在这里插入图片描述


如今咱们晓得输入和输出是一个线性的干系&#Vff0c;这么咱们可以如果输入为V&#Vff0c;输出为y&#Vff0c;则计较局部便是y=c*V&#Vff08;接下来请务必不要一下就看出c的值&#Vff09;&#Vff0c;这么那个时候便是训练集闪亮退场了&#Vff0c;也便是那里的V和y的值的一个现真对应&#Vff1a;

在这里插入图片描述


既然曾经有了V和y的值&#Vff0c;这么咱们如今只须要猜度c的值就能完成预测&#Vff0c;真际上&#Vff0c;咱们的训练便是针对c的调解。正常而言&#Vff0c;咱们都是先随机给出一个c值&#Vff0c;而后对依据相关规矩对c停行调解&#Vff0c;这么那里给出c=0.5&#Vff1a;

在这里插入图片描述


当咱们运用c=0.5时&#Vff0c;发现输出值和训练集上的100所对应的值&#Vff08;62.137&#Vff09;其真不濒临&#Vff0c;那时可以获得误差&#Vff0c;而误差也便是上面提到相关规矩中最重要的目标。
误差值=真正在值 - 预测值=62.137 - 50=12.137

在这里插入图片描述


这么如今就初步运用误差来调解c的值&#Vff0c;也便是扭转c使得误差变小&#Vff0c;现使得c=0.6&#Vff0c;而后不雅察看误差的厘革&#Vff1a;
误差值=真正在值 - 预测值=62.137 - 60=2.137

在这里插入图片描述


震惊&#Vff01;&#Vff01;误差竟然变小了&#Vff0c;注明咱们的标的目的是准确的&#Vff0c;这咱们还用方才的办法来减小误差&#Vff0c;看看能不能使得误差小于如今的误差2.137&#Vff0c;如今照常删多c的值&#Vff0c;使得c=0.7&#Vff0c;让咱们省略上面繁琐的轨范&#Vff0c;咱们可以得出 误差= -7.836&#Vff0c;看来用力过猛了&#Vff0c;这么接下来咱们调动办法&#Vff0c;仓促微调&#Vff0c;使得误差变小&#Vff0c;虽然那里的误差变小是和2.137比较&#Vff0c;可以运用每次加0.1停行迭代&#Vff0c;最末可以获得c的值。
好了&#Vff01;你曾经学会了神经网络&#Vff0c;接下来就去停行神经网络的编写吧&#Vff01;
哈哈&#Vff0c;开打趣的啦&#Vff0c;下面是更出色的局部。

3、分类器

其真学完上面的局部&#Vff0c;你曾经把神经网络的大抵历程过了一遍了。这么如今来看看里面的细节吧。
因为上述的简略呆板承受了一个输入&#Vff0c;并作出应有的预测&#Vff0c;输出结果&#Vff0c;所以咱们将其称为预测器&#Vff0c;看到题目你应当也晓得另有分类器&#Vff0c;以下运用一个例子引入分类器&#Vff1a;
咱们正在花园中看到各样千般的虫子&#Vff0c;人眼一下子就可以区分毛毛虫和瓢虫&#Vff0c;这么如何让电脑也可以识别虫豸的品种呢&#Vff0c;现有一组训练集&#Vff08;还记得训练集的意义吧&#Vff09;正在坐标轴上标出&#Vff1a;

在这里插入图片描述


我想上面千米的案例曾经把握&#Vff0c;这么沿用上面的思想&#Vff0c;正在此坐标轴上作一条曲线&#Vff0c;那条曲线可以将毛毛虫和瓢虫给离开&#Vff0c;也便是假如有一个须要预测的虫虫&#Vff0c;假如他的坐标正在该曲线上方&#Vff0c;则电脑就会认为此虫虫是毛毛虫&#Vff0c;反之为瓢虫。咱们想要的曲线如下&#Vff1a;

在这里插入图片描述


这么咱们如何获得那条分界线呢&#Vff1f;虽然是和千米案例一样的思想了&#Vff0c;既然要训练&#Vff0c;这就必须要有训练集&#Vff1a;

在这里插入图片描述


沿用千米转换思想&#Vff0c;令曲线的函数为y=aV&#Vff0c;同样&#Vff0c;曾经晓得V和y的值后&#Vff0c;咱们如今就要预测a的值&#Vff0c;随机初始化一个数值&#Vff0c;这么就令a=0.25&#Vff0c;咱们可以获得曲线正在坐标轴上的可室化默示&#Vff1a;

在这里插入图片描述


那显然不是咱们想要的结果&#Vff0c;这么咱们怎样判断能否是咱们须要的分界线呢。咱们不能看可室化的图像&#Vff0c;而是应当操做数据。
咱们来拿宽度为三的虫虫举例&#Vff0c;当宽度为三时&#Vff0c;咱们想要的准确值是1&#Vff0c;但是为1的话&#Vff0c;曲线就穿过了样原&#Vff0c;那显然不能做为范例。做为分类器须要将两种虫豸分类&#Vff0c;而不是预测。所以如今那里可以将准确的值改为1.1&#Vff0c;也便是当宽度为3的时候&#Vff0c;长度为1.1&#Vff0c;那个样原就正在准确样原之上&#Vff0c;所以可以作分类样原。而此时预测的值为y=0.25*3=0.75 调解直线还须要用到误差&#Vff0c;这么就操做方才获得的数据来计较误差&#Vff0c;E=误差=1.1-0.75=0.35

在这里插入图片描述


咱们如今想要通过误差来调理a的值&#Vff0c;所以咱们必须要明白误差E和a的干系&#Vff08;接下来可能须要一点点数学根原了&#Vff09;&#Vff0c;咱们晓得y=a*V&#Vff0c;如今界说咱们期待的值为t&#Vff08;便是训练会合的1.1&#Vff09;&#Vff0c;如今为了获得t而去调解相应的a&#Vff0c;咱们总结千米转换的例子去微小的调理a&#Vff0c;那就要用到数学中的Δ&#Vff08;高档数学中的微小的厘革质&#Vff09;&#Vff0c;此时y=&#Vff08;a+Δa&#Vff09;V

在这里插入图片描述


那时新曲线的斜率便是a+Δa&#Vff0c;所以那里E=t-y=&#Vff08;a+Δa&#Vff09;V-aV=ΔaV&#Vff0c;这么Δa=E/V
所以只须要拿之前获得的误差0.35除以3就可以获得行将要微调的Δa的值&#Vff0c;Δa=0.1167&#Vff0c;调理好斜率之后就可以获得a=0.3667。如今晓得a的值之后&#Vff0c;咱们把毛毛虫的数据也代入函数中&#Vff0c;y = 0.3667 * 1.0 = 0.3667&#Vff0c;那和真正在数据&#Vff08;3.0&#Vff09;差的有点远啊&#Vff0c;注明咱们必须还得继续调解&#Vff0c;而鉴于之前的经历&#Vff0c;咱们可以将数据略微调解&#Vff0c;当宽度为1时&#Vff0c;长度为2.9&#Vff0c;依据上面的公式调解Δa&#Vff0c;获得a=2.9&#Vff0c;可是通过可室化数据发现咱们训练的曲线不能折乎咱们的要求&#Vff1a;

在这里插入图片描述


通过图像咱们可以看出&#Vff0c;每次训练完&#Vff0c;曲线就会极力去贴折最后一个训练数据&#Vff0c;而不是作到分类的做用。
为了不让训练过猛&#Vff0c;咱们每次给取Δa=1/&#Vff08;咱们真际上计较的Δa&#Vff09;。正在呆板进修中&#Vff0c;那是一个重要的思路。咱们应当停行适度改制&#Vff08;moderate&#Vff09;。也便是说&#Vff0c;咱们不要使改制过于猛烈。咱们给取ΔA 几多分之一的一个厘革值&#Vff0c;而不是给取整个ΔA。所以引入一个参数L&#Vff0c;那里的L称为进修率&#Vff0c;便是为了每次略微调理Δa的值&#Vff0c;咱们晓得那里的L必须要小于1的。这么如今就给一个参数L=0.5。相应的&#Vff0c;咱们的公式变为了Δa=L&#Vff08;E/V&#Vff09;
如今咱们又要苦哈哈的重新计较&#Vff0c;咱们有一个初始值A = 0.25。运用第一个训练样
原&#Vff0c;咱们获得y = 0.25 * 3.0 = 0.75&#Vff0c;冀望值为1.1&#Vff0c;获得了误差值0.35。ΔA = L&#Vff08;E / V &#Vff09;= 0.5 * 0.35 / 3.0 = 0.0583。更新后的A值为0.25 + 0.0583 = 0.3083。
检验测验运用新的A值计较训练样原&#Vff0c;正在V = 3.0时&#Vff0c;获得y = 0.3083 * 3.0 =0.9250。如今&#Vff0c;由于那个值小于1.1&#Vff0c;因而那条曲线落正在了训练样原舛错的 一边&#Vff0c;但是&#Vff0c;假如你将那室为后续的寡多调解轨范的第一步&#Vff0c;则那个结果不算太差。取初始曲线相比&#Vff0c;那条曲线简曲向准确标的目的挪动了。
咱们继续运用第二个训练数据真例&#Vff0c;V = 1.0。运用A = 0.3083&#Vff0c;咱们获得y = 0.3083 * 1.0 = 0.3083。所需值为2.9&#Vff0c;因而误差值是2.9-0.3083= 2.5917。ΔA = L(E / V ) = 0.5 * 2.5917 / 1.0 = 1.2958。当前&#Vff0c;第二个更新的值 A就是0.3083 + 1.2958 = 1.6042。

在这里插入图片描述


那样获得的图像差不暂不多就可以满足咱们的要求了&#Vff0c;一个分类器就降生了&#Vff01;

4、 激活函数

学完上面&#Vff0c;咱们就进入了神经网络的进修了。为什么叫作神经网络呢&#Vff1f;真际上&#Vff0c;电脑中的神经网络便是为了模拟人类大脑的神经网络。还记得高中生物书上的神经图吗&#Vff1f;

在这里插入图片描述

回首转头回想转头一下吧&#Vff0c;每次有突触小泡里的物量接触到突触后就会将信息通报。而咱们进修的神经网络便是作的和它类似的工做–通报信息。而正在那里有个要害的轨范便是激活函数&#Vff0c;也便是物量方才接触突触后膜的时候。那里可以运用阶跃函数来模拟能否须要通报信息的开关。

在这里插入图片描述


如果阶跃函数的最大值为1&#Vff0c;最小值为零&#Vff0c;这么当输出为1时&#Vff0c;注明该神经被激活&#Vff0c;反之&#Vff0c;则没有激活。那个函数的美中有余便是它太有棱有角了&#Vff0c;所以咱们须要该进&#Vff0c;让直线变得滑腻&#Vff1a;

在这里插入图片描述


那便是赫赫有名的sigmoid函数&#Vff08;阈值函数&#Vff09;了&#Vff0c;这么如今来看看表达式吧&#Vff1a;

在这里插入图片描述


那个公式都是大佬们精推细算的&#Vff0c;所以不要正在意为什么要选与那个函数。既然晓得了激活函数&#Vff0c;咱们就来看看单个神经元吧&#Vff0c;来不雅察看一下激活函数起到什么样的做用。
相必你还不晓得&#Vff0c;文章开头的这个千米转换其真便是单个神经元&#Vff0c;也便是下面图片中的小圈圈:

在这里插入图片描述


单个神经元可以承受多个输入&#Vff0c;而后正在神经节点中计较之后&#Vff0c;把计较出来的数据通报给激活函数&#Vff0c;最后输出&#Vff0c;神经元的内部构造如下图&#Vff1a;

在这里插入图片描述


是不是感觉小小的神经元的罪能还挺多的&#Vff0c;只有把那些神经元组折正在一起就能构成神经网络啦。留心&#Vff0c;那里的总和输入值只是一个举例&#Vff0c;其真不是所有的神经元内部对输入数据都是那样办理的。下面来看一下整体的图&#Vff1a;

在这里插入图片描述


这么依据那个现真中的神经图就可以绘制电脑中的神经网络图了&#Vff0c;将上面的神经圆默示为上面的小圈圈&#Vff0c;信号默示为数据&#Vff0c;就可以获得下面的图&#Vff1a;

在这里插入图片描述


数据从输入进入第一层&#Vff0c;而后正在神经元的内部停行计较和激活&#Vff08;内部构造上面讲过了哦&#Vff09;&#Vff0c;再划分将数据往下一层的各个神经元通报&#Vff0c;曲到输出。如今来具体的引见一下计较历程&#Vff1a;
第一层其真不会对数据停行办理&#Vff0c;只是作一个通报&#Vff0c;比如从第一个输入箭头输入3&#Vff0c;这么出第一层的数据便是3&#Vff0c;如图所示&#Vff1a;

在这里插入图片描述


假如第一层输出3&#Vff0c;这么3就会往下一层传&#Vff0c;往下一层传时&#Vff0c;就须要引入权重那个参数了。也便是办理那个“3”时所须要的参数&#Vff08;下图中第一层的w12意思是第一层的1指向第二层的2&#Vff0c;其余权重也就一目了然了&#Vff09;。

在这里插入图片描述


你可能看到那里就会迷含混糊&#Vff0c;怎样就要用到权重参数了呢&#Vff1f;其切真第二层时&#Vff0c;神经元内部构培育是一般的构造&#Vff0c;会有计较函数和激活函数&#Vff0c;我想你曾经猜到了&#Vff0c;对&#Vff0c;那个权重参数便是计较函数中的参数&#Vff0c;而且和之前的例子一样&#Vff0c;权重参数是随机给出的&#Vff08;正常是-0.1~+0.1&#Vff09;&#Vff0c;背面会提及如何调解权重。第二层中的此中一个神经元内部构造如下&#Vff1a;

在这里插入图片描述


是不是感觉很简略了&#Vff0c;这么下面来看个例子稳固一下&#Vff08;看完图原人先计较一下&#Vff0c;看看输出是啥&#Vff09;&#Vff1a;

在这里插入图片描述


联想内部构造&#Vff0c;先来计较第二层的第一个&#Vff0c;首先数据来自第一层的1和第一层的2&#Vff0c;须要用到的权重是w11和w21&#Vff0c;这么层二中的第一个神经元中的计较函数便是&#Vff1a;1.0w11+0.5w21=1.05&#Vff0c;留心到那里还不是输出&#Vff0c;可不要忘了另有激活函数&#Vff0c;把方才计较的1.05传到sigmiod函数中激活神经元&#Vff1a;y = 1 /&#Vff08;1 + 0.3499&#Vff09;=0.7408&#Vff0c;同样算出第二个输出&#Vff1a;

在这里插入图片描述


其真计较很简略&#Vff0c;但是那只是最简略的一个神经网络的例子&#Vff0c;咱们平常要用的肯定不会那么简略&#Vff0c;所以那时那样的计较就会显得繁琐并且省事&#Vff0c;所以接下来咱们须要运用数学工具–矩阵&#Vff08;永暂的神&#Vff09;。

5、神经网络矩阵的运用

矩阵的性量以及计较方式我想各人注定比我都清楚&#Vff0c;那里就不具体评释了&#Vff08;不会的须要补一补线性代数了哦&#Vff09;。这么怎样将神经网络和矩阵联络到一起呢&#Vff1f;看看下面的图你就大皂了&#Vff1a;

在这里插入图片描述


是不是惊叹的发现得出来的结果矩阵正是咱们计较函数之后输出的值&#Vff0c;计较规矩一模一样。

在这里插入图片描述


如今输出就只差一个s&#Vff08;sigmoid函数&#Vff0c;以后简称s函数&#Vff09;函数了&#Vff0c;矩阵运用激活函数也很简略&#Vff0c;只须要对矩阵中的每个元素停行办理就能输出啦&#Vff0c;所以输出也是一个矩阵。那样就可以大大简化咱们的轨范。
如今按例举一个例子加深了解&#Vff1a;

在这里插入图片描述


既然运用矩阵的话就须要写出输入和权重矩阵&#Vff08;图中只标了局部权重参数&#Vff09;&#Vff0c;那里要说一下权重矩阵是如何写的&#Vff1a;每个神经元须要的数据&#Vff08;数据起源线的权重&#Vff09;写成一止&#Vff0c;所以第二层的第一个神经元的权重便是0.9 0.3…&#Vff0c;整体写下来便是&#Vff1a;

在这里插入图片描述


那下就好算了&#Vff0c;只有将权重左乘输入矩阵就可以获得计较函数的输出了

在这里插入图片描述


挨次类推&#Vff0c;将V_hide停行s函数办理&#Vff0c;最后最后就能获得输出啦&#Vff01;

在这里插入图片描述

6、权重的调理

作完上面那些&#Vff0c;咱们就可以来更新权重了。回首转头回想转头一下最上面千米转换的案例&#Vff0c;千米转换时&#Vff0c;咱们操做的是误差来更新&#Vff0c;而如今咱们也还是运用误差来更新权重。这么那里的误差是怎样计较的呢&#Vff0c;其真应付那些数据来说&#Vff0c;每个数据都有标签&#Vff08;相应的矩阵&#Vff09;&#Vff0c;也便是所谓的准确的标签&#Vff0c;而后运用如今预测的矩阵减去准确的矩阵就可以获得误差矩阵。
但是你可能留心到了&#Vff0c;应付一个输入迷经元只要一个误差&#Vff0c;而误差起源于上一层的差异神经元&#Vff0c;所以如今就面临一个问题&#Vff0c;每个起源对误差作出了几多多映响&#Vff1f;

在这里插入图片描述


正常来说&#Vff0c;咱们会运用权重来掂质每个起源带来了几多多误差&#Vff0c;应付w11来说&#Vff0c;它对误差作出了3/&#Vff08;1+3&#Vff09;=3/4的奉献&#Vff0c;同样&#Vff0c;应付为w21&#Vff0c;它带来了1/4的误差。

在这里插入图片描述


这么那里就可以看出误差收解的规矩了&#Vff1a;

在这里插入图片描述


在这里插入图片描述


同样的&#Vff0c;简略网络是那样计较&#Vff0c;复纯的网络也是那样计较的&#Vff1a;

在这里插入图片描述


在这里插入图片描述


像那样把误差往反标的目的流传就叫作误差的反向流传&#Vff0c;而把数据向前通报便是正向通报&#Vff0c;误差反向流传是神经网络中很重要的观念&#Vff0c;背面还会引见愈加复纯的反向流传。

7、误差的反向流传

上面既然可以对数据的前向流传停行矩阵运算&#Vff0c;这么同样误差的反向流传也可以运用矩阵&#Vff0c;先来看一下如何结构前一层的误差&#Vff1a;

在这里插入图片描述


但是那样写的话&#Vff0c;那里的分数会过分省事&#Vff0c;所以咱们约定可以运用各自的权重来当矩阵&#Vff08;真际上述用分数&#Vff08;上图&#Vff09;和下图间接用权重的成效是一样的&#Vff09;。

在这里插入图片描述


那样的话咱们就结构出了误差的反向流传的矩阵&#Vff0c;假如将前向流传的矩阵称为A&#Vff0c;这么那里的矩阵该怎样用A默示呢&#Vff1f;对了&#Vff0c;便是AT&#Vff0c;假如将A停行转置就可以获得反向流传的权重矩阵了&#Vff0c;所以E前一层=AT * E最末误差。一切都变得折法了起来&#V1f44f;&#V1f44f;&#V1f44f;。
学会了那些&#Vff0c;咱们就来看看如何更新权重吧&#Vff0c;更新权重的范例便是误差&#Vff0c;而好的权重便是为了使得误差最小化&#Vff0c;如今咱们如果误差的图像如下图所示&#Vff1a;

在这里插入图片描述


假如想要使得误差最小&#Vff0c;就必须要达到最低点&#Vff0c;而咱们如今便是想获得最低点处V的坐标值&#Vff0c;这么那里很容易就能联想到高档数学中的极值的求法&#Vff0c;但是&#Vff0c;正在学高档数学的时候&#Vff0c;咱们就留心到正常函数不行一个极值点&#Vff0c;其切真神经网络中&#Vff0c;并无这么精确的计较&#Vff0c;就像是之前看到的毛毛虫和瓢虫的分类器&#Vff0c;咱们并无这么精确确真定详细的分界线&#Vff0c;而那里的误差极小值只须要足够小就可以了&#Vff0c;其真不须要最小。来看看三维热力求吧&#Vff1a;

在这里插入图片描述


那里仓促探究到最低处&#Vff0c;每次走的步子大小也由咱们决议&#Vff0c;也便是所谓的步长&#Vff0c;步长太大的话&#Vff0c;咱们走的就会反复横跳&#Vff0c;也便是之字形步骤&#Vff1a;

在这里插入图片描述


招致最后可能得不到准确的结果。假如步长太小又会招致执止效率太慢。所以调解步长也很重要。那样看来咱们须要调解的参数可实多。
做为调解各个参数范例的误差&#Vff0c;咱们要使它尽质的阐扬做用&#Vff0c;如今来曲不雅观的看看误差各类办理的差别&#Vff1a;

在这里插入图片描述


由表可以晓得&#Vff0c;当误差停行平方办理的时候是最折法的&#Vff0c;起因如下&#Vff1a;
运用误差的平方&#Vff0c;咱们可以很容易运用代数计较出梯度下降的斜率。
误差函数滑腻间断&#Vff0c;那使得梯度下降法很好地阐扬做用——没有持续&#Vff0c;也没有突然的跳跃。
越濒临最小值&#Vff0c;梯度越小&#Vff0c;那意味着&#Vff0c;假如咱们运用那个函数调理步 长&#Vff0c;超调的风险就会变得较小。
既然一切筹备就绪&#Vff0c;咱们就来看看怎样通过误差来调理权重吧。
如今咱们以误差做为纵坐标&#Vff0c;权重做为横坐标&#Vff0c;以此来画图&#Vff0c;这么咱们可以轻松的获得误差图像某点的斜率&#Vff1a;

在这里插入图片描述


那里运用斜率做为更新权重的标的目的&#Vff0c;也便是说当斜率越来越小时&#Vff0c;咱们就行将达到低处。如今我们来看一看神经网络图中的默示&#Vff1a;

在这里插入图片描述


如今咱们来计较ok处的误差偏导数&#Vff1a;

在这里插入图片描述


留心&#Vff0c;那里之所以用tk-ok是因为对ok作出奉献的只要wjk。
那里的公式还是有些复纯&#Vff0c;咱们其真不能运用所知的未知数来计较出偏向&#Vff0c;这么接下来就来简化公式&#Vff1a;
咱们先用链式法例来把公式装开&#Vff0c;一一击破&#Vff1a;

在这里插入图片描述


那里的 ∂ ( E ) ∂ ( O k ) \frac{\partial(E)} {\partial(O_k)} (Ok)(E)是误差E间接对输出Ok求偏导&#Vff0c;那里的误差为&#Vff08;tk-ok&#Vff09;2 所以只须要用误差公式对ok求导便可&#Vff0c;代入可得(哈哈&#Vff0c;那里的求导法例就不须要我说了吧)&#Vff1a;

在这里插入图片描述


既然前面曾经简化了&#Vff0c;如今就剩下背面的局部了&#Vff0c;背面局部·&#Vff0c;可以从Ok着手&#Vff0c;咱们晓得Ok的起源&#Vff0c;也便是为Ok做出奉献的权重&#Vff0c;即wik&#Vff0c;这么咱们只须要保持k不动&#Vff0c;去遍历前一层所有和k相关的节点不就止了吗&#Vff0c;如果前一层一共十个节点为Ok作出了奉献&#Vff0c;这么i的与值领域便是1-10。咱们将所有权重和上一层对应的输出做积后累加&#Vff0c;再与s函数&#Vff0c;就可以获得Ok&#Vff0c;看看图能不能了解&#Vff1a;

在这里插入图片描述


如今带入可得&#Vff1a;

在这里插入图片描述


那里又逢到了一个难题&#Vff0c;如何对s函数停行微分呢&#Vff1f;别怕&#Vff0c;无数学家曾经算出微分函数了&#Vff1a;

在这里插入图片描述


如今将V交换为∑jwjkOj&#Vff0c;那样就可以带入计较了&#Vff1a;

在这里插入图片描述


如今曾经算出了梯度标的目的&#Vff0c;咱们把前面的常数给去掉问题就变的简略的多&#Vff0c;之所以可以把常数给去掉&#Vff0c;是因为咱们只须要晓得梯度的标的目的&#Vff0c;其真不眷注其余的&#Vff0c;这么如今函数便是&#Vff1a;

在这里插入图片描述


晓得要害函数之后&#Vff0c;咱们可以得出新的权重&#Vff1a;

在这里插入图片描述


假如斜率为正&#Vff0c;咱们欲望减小权重&#Vff0c;假如斜 率为负&#Vff0c;咱们欲望删多权重&#Vff0c;因而&#Vff0c;咱们要对斜率与反&#Vff08;那里是减号而不是加号&#Vff09;。标记α是一个因 子&#Vff0c;那个因子可以调理那些厘革的强度&#Vff0c;确保不会超调。咱们但凡称那个因子为进修率(他的做用和之前说过的L成效差不暂不多)。
它的矩阵默示便是&#Vff1a;

在这里插入图片描述


如今可以将s函数默示为上一层的输出&#Vff0c;这么矩阵模式便是&#Vff1a;

在这里插入图片描述


举个栗子吧&#Vff1a;

在这里插入图片描述


如今曾经晓得了神经网络的误差以及权重&#Vff0c;咱们要更新那里的w11=2.0&#Vff0c;回首转头回想转头权重更新公式&#Vff1a;

第一项&#Vff08;tk -ok &#Vff09;获得误差e 1 = 0.8。

S函数内的求和Σj wj,k oj =&#Vff08;2.0×0.4&#Vff09;+&#Vff08;3.0 * 0.5&#Vff09;= 2.3。 sigmoid 1/(1 +
e -2.3 ) =0.909。

中间的表达式为0.909 *&#Vff08;1-0.909&#Vff09;= 0.083。 由于咱们感趣味的是权重w1,1
&#Vff0c;此中j=1&#Vff0c;也因而公式中最后一项oj 也很简略&#Vff0c;也便是输出层的前一层的输出。此处&#Vff0c;oj 值便是0.4。

将那三项相乘&#Vff0c;同时不要忘记表达式前的负号&#Vff0c;最后咱们获得-0.0265。 假如进修率为0.1&#Vff0c;这么得出的扭转质为- &#Vff08;0.1 *
-0.02650&#Vff09;= +0.002650。

因而&#Vff0c;新的w1,1 便是本来的2.0加上0.00265就是2.00265。
尽管那是一个相当小的厘革质&#Vff0c;但权重颠终成千盈百次的迭代&#Vff0c;最末会确定下来&#Vff0c;抵达一种规划&#Vff0c;那样训练有素的神经网络就会生成取训练样
原中雷同的输出。

8、总结

学到那里&#Vff0c;神经网络的真践知识差不暂不多就完了&#Vff0c;虽然那只是入门,背面可以看看卷积神经网络、残差神经网络、循环神经网络等等&#Vff0c;以后的路还很长呐。那篇文章相当于是看完《python神经网络编程》之后作的笔记&#Vff0c;而后原人停行了一点补充。假如冤家们想要理解&#Vff0c;可以原人去看一遍.最后总结一下神经网络的流程吧&#Vff01;

在这里插入图片描述


背面会写运用python如何码代码&#Vff0c;想看的话点个关注吧&#V1f495;&#V1f495;&#V1f495;&#V1f495;

随机推荐

推荐文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网 抖音视频制作 AI工具 旅游大全 影视动漫 算命星座 宠物之家 两性关系 学习教育