神经网络--感知机

感知机

单层感知机原理

单层感知机:解决二分类问题,激活函数一般使用sign函数,基于误分类点到超平面的距离总和来构造损失函数,由损失函数推导出模型中损失函数对参数 w w w b b b的梯度,利用梯度下降法从而进行参数更新。让+1代表A类,0代表B类

以下是原理示意图:

在这里插入图片描述

神经元会计算传送过来的信号的总和,当这个总和超过了阈值 θ θ θ时,才会输出1。这也称为“神经元被激活”。
二进制步进函数 y = { 1 , w T x + b > θ 0 , w T x + b < θ 二进制步进函数\\ y = \begin{cases} 1, w^Tx+b>\theta\\ 0, w^Tx+b<\theta \end{cases} 二进制步进函数y={1,wTx+b>θ0,wTx+b<θ

损失函数:基于误分类点到超平面的距离总和
点 ( x , y ) 到直线 ( A x + B y + C = w T x + b = 0 ) 距离 : d = ∣ A x 0 + B y 0 + C ∣ A 2 + B 2 = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ 点(x,y)到直线(Ax+By+C=w^Tx+b=0)距离:d = \frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}=\frac{|w^Tx+b|}{||w||} (x,y)到直线(Ax+By+C=wTx+b=0)距离:d=A2+B2 Ax0+By0+C=∣∣w∣∣wTx+b

L O S S = ∑ i = 1 m − y i ( w T x i + b ) LOSS = \sum_{i=1}^{m}{-{y_i(w^Tx_i+b)}} LOSS=i=1myi(wTxi+b)

∂ L o s s ∂ w = − ∑ i = 1 m y i x i ∂ L o s s ∂ b = − ∑ i = 1 m y i \frac{\partial Loss}{\partial w} = -\sum^{m}_{i=1}y_ix_i\\ \frac{\partial Loss}{\partial b} = -\sum^{m}_{i=1}y_i wLoss=i=1myixibLoss=i=1myi

感知机训练算法

∗ ∗ 算法 1 :感知机训练算法 ∗ ∗ 初始化参数 w = 0 , b = 0 r e p e a t : { 从训练集随机采样一个样本 ( x i , y i ) 计算感知机的输出 t = f ( w T x i + b ) , f ( x ) = 1 , x > 0 ; f ( x ) = 0 , x ≤ 0 如果 t ≠ y i : 更新权值 : w ← w + η ( y i − t ) x i 更新偏移量 : b ← b + η ( y i − t ) } u n t i l 训练次数达到要求输出 : 分类网络参数 w 和 b , 其中 η 为学习率。 **算法 1:感知机训练算法**\\ 初始化参数 w= 0, b= 0\\ repeat:\{ 从训练集随机采样一个样本(x_i, y_i) \\ 计算感知机的输出 t = f(w^T x_i + b),f(x)=1,x>0; f(x)=0, x \leq 0\\ 如果t ≠ y_i:\\ 更新权值:w ← w + \eta (y_i-t)x_i \\ 更新偏移量:b ← b + \eta (y_i-t)\\ \}until 训练次数达到要求 输出:分类网络参数w和b,其中\eta 为学习率。 算法1:感知机训练算法初始化参数w=0,b=0repeat:{从训练集随机采样一个样本(xi,yi)计算感知机的输出t=f(wTxi+b),f(x)=1,x>0;f(x)=0,x0如果t=yi更新权值:ww+η(yit)xi更新偏移量:bb+η(yit)}until训练次数达到要求输出:分类网络参数wb,其中η为学习率。

单层感知机返回的 w T + b = 0 w^T+b=0 wT+b=0构成一条直线,这也是单层感知机的局限,可以实现与门、与非门(与门取反)、或门三种逻辑电路,无法实现异或门(XOR,(与非门和或门)的与 )逻辑电路.

在这里插入图片描述

反向传播算法

在这里插入图片描述

正确理解误差反向传播法,有两种方法:

  • 一种是基于数学式—微分链;

  • 另一种是基于计算图(computational graph),直观地理解误差反向传播法。

计算图

在这里插入图片描述

在计算图上,从左向右进行计算是正方向上的传播,简称为正向传播(forward propagation)。正向传播是从计算图出发点到结束点的传播。当然从图上看,从右向左的传播,称为反向传播(backward propagation)。反向传播在导数计算中发挥重要作用。
在这里插入图片描述

​ 假设我们想知道苹果价格的上涨会在多大程度上影响最终的支付金额,即求“支付金额关于苹果的价格的导数”。这个导数的值表示当苹果的价格稍微上涨时,支付金额会增加多少。反向传播使用与正方向相反的箭头(粗线)表示。反向传播传递“局部导数”,将导数的值写在箭头的下方。在这个例子中,反向传播从右向左传递导数的值(1→1.1→2.2)。从这个结果中可知,“支付金额关于苹果的价格的导数”的值是2.2。这意味着,如果苹果的价格上涨1元,最终的支付金额会增加2.2元(严格地讲,如果苹果的价格增加某个微小值,则最终的支付金额将增加那个微小值的2.2倍)

链式法则

在这里插入图片描述
在这里插入图片描述

加法节点

在这里插入图片描述

乘法节点

在这里插入图片描述
在这里插入图片描述

激活节点

1.relu

在这里插入图片描述

2.sigmoid函数

计算图的反向传播:

  • 步骤1:
    “/”节点表示 y = 1 x y=\frac{1}{x} y=x1,它的导数可以解析性地表示为: ∂ y ∂ x = − 1 x 2 = − y 2 \frac{\partial y}{\partial x} = -\frac{1}{x^2} = -y^2 xy=x21=y2 。反向传播时,会将上游的值乘以−y2(正向传播的输出的平方乘以−1后的值)后,再传给下游。计算图如下所示。
    在这里插入图片描述

  • 步骤2:
    “+”节点将上游的值原封不动地传给下游。计算图如下所示.

在这里插入图片描述

  • 步骤3:
    “exp”节点表示: y = e x p ( x ) y = exp(x) y=exp(x),它的导数: ∂ y ∂ x = e x p ( x ) \frac{\partial y}{\partial x} = exp(x) xy=exp(x)
    计算图中,上游的值乘以正向传播时的输出(例中是exp(−x))后,再传给下游。
    在这里插入图片描述

  • 步骤4: “×”节点将正向传播时的值翻转后做乘法运算。因此,这里要乘以−1。

在这里插入图片描述

这里要注意,反向传播的输出 ∂ L ∂ y y 2 e x p ( − x ) \frac{\partial L}{\partial y}y^2exp(-x) yLy2exp(x),这个值只根据正向传播时的输入x和输出y就可以算出来。
因此,计算图可以画成集约化的“sigmoid”节点。
在这里插入图片描述

简洁版的计算图可以省略反向传播中的计算过程,因此计算效率更高。

∂ L ∂ y y 2 e x p ( − x ) = ∂ L ∂ y y ( 1 − y ) \frac{\partial L}{\partial y}y^2exp(-x) = \frac{\partial L}{\partial y}y(1-y) yLy2exp(x)=yLy(1y)

因此,Sigmoid 层的反向传播,只根据正向传播的输出就能计算出来。
在这里插入图片描述

(3)Affine层 (np.dot())

矩阵的乘积运算在几何学领域被称为“仿射变换”Affine。因此,使用仿射变换的处理实现为“Affine层”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/95174.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt +VTK+Cmake 编译和环境配置(第三篇,高级篇, 已解决)

上篇说了&#xff0c;Cmake 虽然可以成功的build&#xff0c;但是大部分人都选择的是VS编译&#xff0c;没有人选择Qt自带的编译器编译。 在build文件夹 shift右键 进入cmd串口&#xff0c;执行mingw32-make mingw32-make 报错&#xff01;&#xff01;&#xff01;&#x…

Qt +VTK+Cmake 编译和环境配置(第一篇 采坑)

VTK下载地址&#xff1a;https://vtk.org/download/ cmake下载地址&#xff1a;https://cmake.org/download/ 版本对应方面&#xff0c;如果你的项目对版本没有要求&#xff0c;就不用在意。我就是自己随机搭建的&#xff0c;VTK选择最新版本吧&#xff0c;如果后面其他的库不…

燃气管网监测系统,提升城市燃气安全防控能力

燃气是我们日常生活中不可或缺的能源&#xff0c;但其具有易燃易爆特性&#xff0c;燃气安全使用、泄漏监测尤为重要。当前全国燃气安全事故仍呈现多发频发态势&#xff0c;从公共安全的视角来看&#xff0c;燃气已成为城市安全的重大隐忧&#xff01;因此&#xff0c;建立一个…

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…

RISC-V(2)——特权级及特权指令集

目录 1. 特权级 2. 控制和状态寄存器&#xff08;CSR&#xff09; 2.1 分类 2.2 分析 1. 特权级 一个 RISC-V 硬件线程&#xff08;hart&#xff09;是运行在某个特权级上的&#xff0c;这个特权级被编码到一个或者多个 CSR&#xff08;control and status register&a…

不同写法的性能差异

“ 达到相同目的,可以有多种写法,每种写法有性能、可读性方面的区别,本文旨在探讨不同写法之间的性能差异 len(str) vs str "" 本部分参考自: [问个 Go 问题&#xff0c;字符串 len 0 和 字符串 "" &#xff0c;有啥区别&#xff1f;](https://segmentf…

经管博士科研基础【16】一元二次函数的解的公式

1. 一元二次函数的形式 2. 一元二次函数的图形与性质 一元二次函数的图像是一条抛物线&#xff0c;图像定点公式为(-b/2a,4ac-b*b/4a)&#xff0c;对称轴位直线x-b/2a。 3. 求根公式 形如ax*xb*xc0的一元二次方程&#xff0c;其求根公式为&#xff1a; 4. 韦达定理 如果x1和…

IP网络广播系统有哪些优点

IP网络广播系统有哪些优点 IP网络广播系统有哪些优点&#xff1f; IP网络广播系统是基于 TCP/IP 协议的公共广播系统&#xff0c;采用 IP 局域网或 广域网作为数据传输平台&#xff0c;扩展了公共广播系统的应用范围。随着局域网络和 网络的发展 , 使网络广播的普及变为可能 …

Sentinel 流量控制框架

1. Sentinel 是什么&#xff1f; Sentinel是由阿里中间件团队开源的&#xff0c;面向分布式服务架构的轻量级高可用流量控制组件。 2. 主要优势和特性 轻量级&#xff0c;核心库无多余依赖&#xff0c;性能损耗小。 方便接入&#xff0c;开源生态广泛。 丰富的流量控制场景。 …

手写RPC——数据序列化工具protobuf

手写RPC——数据序列化工具protobuf Protocol Buffers&#xff08;protobuf&#xff09;是一种用于结构化数据序列化的开源库和协议。下面是 protobuf 的一些优点和缺点&#xff1a; 优点&#xff1a; 高效的序列化和反序列化&#xff1a;protobuf 使用二进制编码&#xff0c…

Glide分析和总结

1. Glide概述 Glide是一款图片处理的框架&#xff0c;从框架设计的角度出发&#xff0c;最基本要实现的就是 加载图片 和 展示。 它把一个图片请求封装成一个Request对象&#xff0c;里面有开启、暂停、关闭、清除网络请求、以及载体生命周期的监听等操作。然后通过RequestBu…

Mac 如何判断下载Mac with Intel Chip 还是 Mac with Apple Chip

如下图&#xff0c;当我们在 Mac系统 下载客户端时&#xff0c;有两种选择&#xff1a;Mac with Intel Chip 、 Mac with Apple Chip 如何判断要下载哪一种&#xff1f; 需要判断本机Mac是在Inter芯片还是Apple芯片上运行的。方法如下&#xff1a; 点击屏幕左上角Apple标志&a…