[吃瓜教程]南瓜书第5章神经网络

news2025/2/27 7:21:33

1.M-P神经元

M-P神经元,全称为McCulloch-Pitts神经元,是一种数学模型,用于模拟生物神经元的功能。这个模型是由Warren McCulloch和Walter Pitts在1943年提出的。它是人工智能和计算神经科学领域中非常重要的早期模型。
M-P神经元接收n个输入(通常来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值 θ \theta θ进行比较(作减法),最后经过激活函数(模拟“抑制”和“激活”)处理得到输出(通常是给下一个神经元)
y = f ( ∑ i = 1 n w i x i − θ ) = f ( w T x + b ) y=f(\sum_{i=1}^nw_ix_i-\theta)=f(w^Tx+b) y=f(i=1nwixiθ)=f(wTx+b)
单个M-P神经元:感知机(sgn作激活函数)、对数几率回归(sigmoid作激活函数)
多个M-P神经元:神经网路

2.感知机(分类模型)

2.1 sgn函数

sgn 函数,或称为符号函数(sign function):是一个数学函数,用于确定一个实数的符号。sgn 函数的定义如下:

  • 当x>0时,sgn(x)=1
  • 当x=0时,sgn(x)=0
  • 当x<0时,sgn(x)=-1
    图像如下:
    在这里插入图片描述

2.2 感知机

1)模型
其具体公式如下:
y = s g n ( w T w − θ ) = { 1 , w T x − θ > = 0 0 , w T x − θ < 0 y=sgn(w^Tw-\theta) =\begin{cases} 1& ,{w^Tx-\theta>= 0}\\ 0& ,{w^Tx-\theta<0} \end{cases} y=sgn(wTwθ)={10,wTxθ>=0,wTxθ<0
其中, x ∈ R N x\in \mathbb{R}^N xRN为样本的特征向量,是感知机模型的输入, w , θ w,\theta w,θ是感知机模型的参数, w ∈ R n w\in \mathbb{R}^n wRn为权重, θ \theta θ 为阈值

从几何的角度来说,给定一个线性可分的数据集T,感知机的学习目标是求得能对数据集T中的正负样本完全正确划分的超平面,其中 w T x − θ w^Tx-\theta wTxθ即为超平面方程。
n维空间的超平面 ( w T x + b = 0 , 其中 w , x ∈ R n ) (w^Tx+b=0,其中w,x \in \mathbb R^n) (wTx+b=0,其中w,xRn):

  • 超平面方程不唯一
  • 法向量w垂直于超平面
  • 法向量w和位移项b确定一个唯一超平面
  • 法向量w指向的那一半空间为正空间,另一半为负空间

缺点: 只能解决线性可分的问题
模型图如下所示,只包含一个输入层和一个输出层。
在这里插入图片描述

2)策略
感知机的学习策略是,随机初始化 w , b w,b w,b,将全体训练样本带入模型找出误分类样本,假设此时误分类样本的集合为 M ⊆ T M\subseteq T MT对任意一个误分类样本 ( x , y ) ∈ M (x,y)\in M (x,y)M来说,当 w T x − θ > = 0 w^Tx-\theta >=0 wTxθ>=0时,模型输出值为 y ^ = 1 \hat y=1 y^=1,样本真实标记为y=0;繁殖,当 w T x − θ < 0 w^Tx-\theta<0 wTxθ<0时,模型输出值为 y ^ \hat y y^=0,样本真实标记为y=1。综合两种情况可知,以下公式恒成立
( y ^ − y ) ( w T x − θ ) > = 0 (\hat y-y)(w^Tx-\theta)>=0 (y^y)(wTxθ)>=0
所以,给定数据集T,其损失函数可以定义为:
L ( w , θ ) = ∑ x ∈ M ( y ^ − y ) ( w T x − θ ) L(w,\theta)=\sum_{x\in M}(\hat y-y)(w^Tx-\theta) L(w,θ)=xM(y^y)(wTxθ)
此时损失函数是非负的。如果没有误分类点,损失函数值为0.而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。
损失函数还可以进一步优化,将 θ \theta θ并入 w w w向量中成为第n+1维0,其中x的第n+1维恒为-1。那么损失函数进一步简化为:
L ( w ) = ∑ x ∈ M ( y ^ − y ) w T x L(w)=\sum_{x\in M}(\hat y-y)w^Tx L(w)=xM(y^y)wTx
3)算法
当误分类样本集合M固定时,可以球的损失函数 L ( w ) L(w) L(w)的梯度为
∇ w L ( w ) = ∑ x i ∈ M ( y ^ i − y i ) x i \nabla_wL(w)=\sum_{x_i\in M}(\hat y_i-y_i)x_i wL(w)=xiM(y^iyi)xi
学习算法具体采用的是随机梯度下降法,也即极小化过程中不是一次使M中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。所以权重 w w w的更新公式为:
w ← w + Δ w w \leftarrow w+\Delta w ww+Δw
Δ w = − η ( y ^ i − y i ) x i = η ( y i − y ^ i ) x i \Delta w=-\eta(\hat y_i-y_i)x_i=\eta(y_i-\hat y_i)x_i Δw=η(y^iyi)xi=η(yiy^i)xi
其中 η \eta η为学习率,最终解出来的w通常不唯一。
从几何角度方便理解一点,如下图所示,
在这里插入图片描述
可以看到红线和绿线都可以把正负样本分开,它们代表了两组 w w w,因此说明解不唯一。

3.神经网络

为了解决线性不可分的数据集(其他的当个神经元的模型也可以结局线性不可分的数据集,只是感知机不可以),提出了由多个神经元构成的神经网络,且用通用近似定理可以证明:只需一个包含足够多神经元的隐层,多层前馈网络(最经典的神经网络之一)就能以任意精度逼近任意复杂度的连续函数。
优点:
既能做回归,也能做分类,而且不需要复杂的特征工程。
需要考虑的问题:

  • 对于具体场景,神经网络该做多深,多宽?(没有理论支撑,都是实践经验)
  • 对于具体场景,神经网络的结构该如何设计才最合理(没有强理论指导)
  • 对于具体场景,神经网络的输出结果该如何解释?(模型的可解释性可以用来指导特征调整)

经典神经网络——多层前馈网络:
每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。
在这里插入图片描述
将神经网络(NN)看作一个特征加工函数
x ∈ R d → N N ( x ) → y = x ∗ ∈ R l x\in R^d \rightarrow NN(x) \rightarrow y=x^* \in R^l xRdNN(x)y=xRl
回归:后面接一个 R l → R R^l \rightarrow R RlR的 神经元
y = w T x ∗ + b y=w^Tx^*+b y=wTx+b
分类:后面接一个 R l → [ 0 , 1 ] R^l \rightarrow [0,1] Rl[0,1]的神经元,例如激活函数为sigmoid函数的神经元
y = 1 1 + e − ( w T x ∗ + b ) y=\frac{1}{1+e^{-(w^Tx^*+b)}} y=1+e(wTx+b)1
神经网络可以自动提取特征不用人为的手工设计特征。
神经网络训练方法——BP算法:
在20世纪80年代之前,尽管神经网络已经存在一段时间,但其实际应用受到了限制,主要原因在于无法有效地训练多层神经网络
在这个背景下,1986年,David E. Rumelhart, Geoffrey E. Hinton, 和 Ronald J. Williams在他们的论文《Learning representations by back-propagating errors》中提出了反向传播算法。这一算法为多层前馈神经网络的训练提供了一个有效的方法,使得神经网络可以在更多复杂问题上展现出强大的表现力。
BP算法是一种基于随机梯度下降的参数更新算法。反向传播算法在处理多层神经网络时,通过链式法则有效地计算梯度,而随机梯度下降则用于基于这些梯度更新权重。反向传播算法与随机梯度下降相辅相成,共同实现了多层神经网络的高效训练。
下面是以输入层第i个神经元与隐层第h个神经元之间的连接全 v i h v_{ih} vih为例推导一下:
损失函数
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac12\sum^l_{j=1}(\hat y^k_j-y^k_j)^2 Ek=21j=1l(y^jkyjk)2
Δ v i h = − η ∂ E k ∂ v i h \Delta v_{ih}=-\eta \frac{\partial{E_k}}{\partial{v_{ih}}} Δvih=ηvihEk
用链式求导得到
∂ E k ∂ v i h = ∑ j = 1 l ∂ E k ∂ y ^ j k ∗ ∂ y ^ j k ∂ β j ∗ ∂ β j ∂ b h ∗ ∂ b h ∂ α h ∗ ∂ α h ∂ v i h \frac{\partial{E_k}}{\partial{v_{ih}}}=\sum^l_{j=1}\frac{\partial{E_k}}{\partial{\hat y^k_j}}*\frac{\partial{\hat y^k_j}}{\partial{\beta_j }}*\frac{\partial{\beta_j }}{\partial{b_h}}*\frac{\partial{b_h}}{\partial{\alpha_h}}*\frac{\partial{\alpha_h}}{\partial{v_{ih}}} vihEk=j=1ly^jkEkβjy^jkbhβjαhbhvihαh

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成都晨持绪:开一家抖音网店到底能不能赚钱

在数字化时代的浪潮中&#xff0c;抖音以其独特的魅力迅速占领了社交媒体的舞台。众多创业者纷纷把目光投向这个新兴平台&#xff0c;企图在短视频的海洋里找到属于自己的财富岛屿。但是&#xff0c;开一家抖音网店到底能不能赚钱呢? 我们要认识到&#xff0c;抖音作为一个流量…

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本 1.演示动画A.视频B.gif动画 2.跟踪鼠标区域的录屏脚本 Excel中有一组数据,希望画出曲线,并且能把均值线也绘制在图上,以下动画演示了整个过程,并且提供了区域录屏脚本,原理如下: 为节约空间,避免…

九、函数的声明和定义

函数声明&#xff1a; 1. 告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么。但是具体是不是存在&#xff0c;函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。 定义的函…

ffmpeg下载/配置环境/测试

一、下载 1、访问FFmpeg官方网站下载页面&#xff1a;FFmpeg Download Page&#xff1b; 2、选择适合Windows的版本&#xff08;将鼠标移动到windows端&#xff09;。通常&#xff0c;你会找到“Windows builds from gyan.dev”或者“BtbN GitHub Releases”等选项&#xff0…

【高阶数据结构】图的应用--最短路径算法

文章目录 一、最短路径二、单源最短路径--Dijkstra算法三、单源最短路径--Bellman-Ford算法四、多源最短路径--Floyd-Warshall算法 一、最短路径 最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&#xff0c;最短也就是沿…

把前端打包放到Eladmin框架中运行

再resuorces目录创建static文件夹&#xff0c;然后把前端文件放进来 然后修改 ConfigurerAdapter文件&#xff0c;如下图所示 这样就可以通过ip端口/index.html 这样访问啦&#xff01;

vue3 滚动条滑动到元素位置时,元素加载

水个文 效果 要实现的思路就是&#xff0c;使用IntersectionObserver 检测元素是否在视口中显示&#xff0c;然后在通过css来进行动画载入。 1.监控元素是否视口中显示 const observer new IntersectionObserver((entries) > {entries.forEach((entry) > {if (entry.i…

【网络安全学习】漏洞利用:BurpSuite的使用-03-枚举攻击案例

如何使用BurpSuite进行枚举攻击 1.靶场选择 BurpSuite官方也是有渗透的教学与靶场的&#xff0c;这次就使用BurpSuite的靶场进行练习。 靶场地址&#xff1a;https://portswigger.net/web-security 登录后如下图所示&#xff0c;选择**【VIEW ALL PATHS】**&#xff1a; 找…

树状数组基础知识

lowbit: lowbit(x)x&(-x) 树状数组&#xff1a; 树状数组的功能&#xff1a; 数组 在O(1)的时间复杂度实现单点加&#xff1a; 在O(lng n)的时间复杂度实现查询前缀和&#xff1a; 树状数组的定义&#xff1a; 查询前x项的和操作&#xff1a; ll query(int x){ll s0;f…

单例模式详解:概念与实用技巧

目录 单例模式单例模式结构单例模式适用场景单例模式优缺点练手题目题目描述输入描述输出描述输入示例输出示例提示信息题解 单例模式 单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 只有一个实例的…

LLM - 词表示和语言模型

一. 词的相似度表示 (1): 用一系列与该词相关的词来表示 (2): 把每个词表示一个独立的符号(one hot) (3): 利用该词上下文的词来表示该词 (3): 建立一个低维度的向量空间&#xff0c;用深度学习方法将该词映射到这个空间里(Word Embedding) 二&#xff1a;语言模型 (1): 根…

jsqlparse工具拦截sql处理和拓展

前置知识 访问者模式 &#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你定义在不改变被访问元素的类的前提下&#xff0c;扩展其功能。通过将操作&#xff08;操作或算法&#xff09;从对象结构中提取出来&#xff0c;可以在不修改这些对象的前…

MCU中如何利用串口通信,增加AT指令框架

第一步&#xff0c;通过串口与PC端建立通信第二步&#xff0c;根据PC端发来的AT指令&#xff0c;MCU执行相应代码 主要是解析PC端发来的字符串&#xff0c;也就是获取字符串、处理字符串、以及分析字符串。 1. 串口通信 用到的是DMA串口通信&#xff0c;收发字符串数据时&…

AGI系列(7)Reflection 在 AI agent 中的应用实例

斯坦福大学教授吴恩达一直非常推崇AI Agent,之前他提出过AI Agent的四种工作模式,分别是Reflection(反思)、Tool use(工具使用)、Planning(规划)和Multi-agent collaboration(多智能体协同)。 近日,他又开源了一个翻译 AI Agent, 他认为 AI 智能体机器翻译对改进传…

spring6框架解析(by尚硅谷)

文章目录 spring61. 一些基本的概念、优势2. 入门案例实现maven聚合工程创建步骤分析实现过程 3. IoC&#xff08;Inversion of Control&#xff09;基于xml的bean环境搭建获取bean获取接口创建实现类依赖注入 setter注入 和 构造器注入原生方式的setter注入原生方式的构造器注…

electron-vue自定义标题

1.在主进程background.js或者main.js中主窗口配置frame: false async function createWindow() {Menu.setApplicationMenu(null);// Create the browser window.const win new BrowserWindow({width: 1000,height: 600,resizable: false,frame: false,webPreferences: {nodeI…

Python基础语法(与C++对比)(持续更新ing)

代码块 Python在统一缩进体系内&#xff0c;为同一代码块C{...}内部的为同一代码块 注释 Python 单行注释&#xff1a;#... 多行注释&#xff1a;... C 单行注释&#xff1a;//... 多行注释: /*...*/ 数据类型 1. Python数据类型 Python中支持数字之间使用下划线 _ 分割…

docker容器技术、k8s的原理和常见命令、用k8s部署应用步骤

容器技术 容器借鉴了集装箱的概念&#xff0c;集装箱解决了什么问题呢&#xff1f;无论形状各异的货物&#xff0c;都可以装入集装箱&#xff0c;集装箱与集装箱之间不会互相影响。由于集装箱是标准化的&#xff0c;就可以把集装箱整齐摆放起来&#xff0c;装在一艘大船把他们…

昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别

本章节学习一个基本实践–基于Mindspore实现BERT对话情绪识别 自然语言处理任务的应用很广泛&#xff0c;如预训练语言模型例如问答、自然语言推理、命名实体识别与文本分类、搜索引擎优化、机器翻译、语音识别与合成、情感分析、聊天机器人与虚拟助手、文本摘要与生成、信息抽…

通过 Power Automate 以提升的权限运行 Power Apps 连接

使用Power Apps在Sharepoint列表中新建或编辑项比较简单&#xff0c;就是创建窗体&#xff0c;连接Sharepoint列表&#xff0c;添加个按钮&#xff0c;触发条件为Submit(form)。 填写信息&#xff0c;点击按钮即可新建项 但使用过程中&#xff0c;发现运行此应用的用户&#xf…