您的位置:首页 > 教育 > 锐评 > 【pytorch14】感知机

【pytorch14】感知机

2024/10/5 14:29:06 来源:https://blog.csdn.net/qq_45291280/article/details/140190132  浏览:    关键词:【pytorch14】感知机

单层感知机模型

在这里插入图片描述
在这里插入图片描述
对于单层的感知机,它的激活函数是一个sigmoid

对于符号的定义做一个规范化,输入层每一层进行一个编号

输入是第0层,上标0表示属于输入层,下标0到n表示一共有n个节点(这里严格来说应该是0~n-1,为了书写方便,不区分),下标为i的意思就是第i个元素

中间层,包含权值、累加、激活函数的输出,权值上标还是表示第1层,有2个下标,第一个下标表示连接上一层 x i x_{i} xi的节点,第二个下标表示连接的是这一层的节点,由于此时这一层只有一个节点,所以总是为0

x 0 1 x_{0}^{1} x01,上标表示属于第一层,下标表示第一层上面的第几个元素,这里讨论的是单层感知机,所以第一层只有一个节点

x 1 0 x_{1}^{0} x10经过激活函数以后会得到一个输出值,把这个激活函数的输出值叫做 o 0 1 o_{0}^{1} o01

最后 o 0 1 o_{0}^{1} o01与目标值做均方差,即loss

推导一下单层感知机的推导公式
在这里插入图片描述

此处的σ(x)特指sigmoid函数,对x求导之后为σ(1-σ)

求导之前需要先向右计算一次所有的变量值,这就是前向传播

可以看出对哪一号节点求导, x j 0 x_{j}^{0} xj0就代表了哪一号节点的数值

对于单层的感知机可以很好的总结一下loss对某一号权值求导,最终仅仅跟这个神经元的输出节点 O 0 1 O_{0}^{1} O01以及跟他对应输入节点的数值有关系,可以通过这个公式非常简单的直接更新,也就是可以通过公式推导的过程计算出来每一条连接上面的梯度的大小然后直接更新
在这里插入图片描述

用pytorch计算,这里输入x的特征有10个
在这里插入图片描述

对loss做backward可以得到loss对w中的所有参数分别求偏导在这里插入图片描述

多层感知机模型MLP以及梯度

在这里插入图片描述
输出节点变多了,均方差不是跟一个节点作比较,而是所有的输出跟所有的label做比较
在这里插入图片描述

一共有N×M个连接数量,因此有N×M个偏微分的计算

对i号节点的输出对t第i号节点的label做均方差, w j k w_{jk} wjk O k 1 O_{k}^{1} Ok1的影响只有当O的i等于k的时候 w j k w_{jk} wjk才会有连接,O的i为其他值的时候 w j k w_{jk} wjk是没有连接的,也就是偏导数为0

第四步的时候 x k 1 x^{1}_{k} xk1可以写成n个w和x相乘在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com