机器学习西瓜书学习记录-第五章 神经网络

2023-05-16

第5章 神经网络

5.1神经元模型
神经网络中最基本的成分是神经元模型。
“M-P神经元模型”,又称“阈值逻辑单元”
在模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。
在这里插入图片描述
实际常用Sigmoid函数作为激活函数,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此也称“挤压函数”
在这里插入图片描述
将许多这样的神经元按一定的层次结构连接起来即可得到神经网络。我们可以将神经网络视为包含了许多参数的数学模型,该模型是若干函数(如 y j = f ( ∑ i w i x i − θ j ) y_j=f(\sum_{i}w_ix_i-\theta_j) yj=f(iwixiθj))相互嵌套带入而得。
5.2感知机与多层网络
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层为M-P神经元。
在这里插入图片描述
感知机可实现逻辑与、或、非运算
在这里插入图片描述
在这里插入图片描述
给定训练数据集,权重 w i w_i wi及阈值 θ \theta θ通过学习得到。
将阈值 θ \theta θ看作一个固定输入为-1.0的“哑结点”,对应连接权重 w n + 1 w_{n+1} wn+1,这样权重和阈值的学习就可统一为权重的学习。
感知机的学习规则:
训练样例(x,y),若当前感知机输出为 y ^ \hat{y} y^,则感知机权重调整如下,其中 η ϵ ( 0 , 1 ) \eta \epsilon (0,1) ηϵ(0,1)为学习率
在这里插入图片描述
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,学习能力有限。
事实,前述的与、或、非问题都是线性可分的问题。若两类模式是线性可分的,即存在一个线性超平面能将他们分开,感知机的学习过程一定会收敛求得适当的权向量 w = ( w 1 ; w 2 ; . . . ; w n + 1 ) w=(w_1;w_2;...;w_{n+1}) w=(w1;w2;...;wn+1)(如图a-c),否则感知机学习过程会发生震荡,不能求得合适解(如图d)。
在这里插入图片描述
如何解决非线性可分问题?–考虑使用多层功能神经元。
如下两层感知机解决异或问题,输出层与输入层之间的一层神经元被称为隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元
在这里插入图片描述
常见的神经网络每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”。其中输入层神经元接受外界输入,隐层与输出层包含功能神经元对信号进行加工,最终结果由输出层神经元输出。
在这里插入图片描述
神经网络的学习过程即是根据训练数据调整神经元之间的“连接权”以及每个功能神经元的阈值;换言之,神经网络“学”到的东西蕴含在连接权与阈值中。
5.3误差逆传播算法
训练多层网络多用误差逆传播算法简称BP算法。
训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , x i ϵ R d , y i ϵ R l D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},x_i\epsilon R^d,y_i\epsilon R^l D={(x1,y1),(x2,y2),...,(xm,ym)},xiϵRd,yiϵRl,即输入示例有d个属性描述、输出l维实值向量。
如图一个d个输入神经元、l个输出神经元、q个隐层神经元的多层前馈网络结构。
输出层第j个神经元的阈值用 θ j \theta_j θj表示,隐层第h个神经元的阈值用 γ h \gamma_h γh表示。输入层第i个神经元与隐层第h个神经元之间的连接权为 v i h v_{ih} vih,隐层第h个神经元与输出层第j个神经元之间的连接权为 w h j w_{hj} whj
记隐层第h个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i \alpha_h=\sum_{i = 1}^dv_{ih}x_i αh=i=1dvihxi,输出层第j个神经元接收到的输入为 β j = ∑ h = 1 q w h j b h \beta_j=\sum_{h = 1}^qw_{hj}b_h βj=h=1qwhjbh,其中 b h b_h bh为隐层第h个神经元的输出。设隐层和输出层神经元均使用Sigmoid函数。。
在这里插入图片描述
在BP网络中,我们需要确定的参数有:输入层到隐层d×q个权值、隐层到输出层的q×l个权值、q个隐层神经元的阈值、l个输出层神经元的阈值。
BP是迭代学习算法,在迭代每一轮对参数进行更新估计,任意参数v更新估计式子为
在这里插入图片描述
下面以隐层到输出层的连接权 w h j w_{hj} whj为例推导。
BP算法-基于梯度下降策略,以目标负梯度方向对参数进行调整。
对于误差 E k E_k Ek,给定学习率 η \eta η,则有
在这里插入图片描述
并且我们知道,对于连接权 w h j w_{hj} whj,它会先影响第j个输出层神经元的输入值 β j \beta_j βj,随后再影响到该输出层神经元的输出值 y ^ j k \hat{y}_j^k y^jk,进而影响到输出的均方误差 E k E_k Ek,因此可以这样写
在这里插入图片描述
然后由于定义输出层第j个神经元接收到的输入为 β j = ∑ h = 1 q w h j b h \beta_j=\sum_{h = 1}^qw_{hj}b_h βj=h=1qwhjbh,因此有
在这里插入图片描述
已知Sigmoid函数有性质:
在这里插入图片描述
再根据神经网络的误差式以及输出式,可以得出如下推导
在这里插入图片描述
在这里插入图片描述
同理可得 Δ θ j \Delta\theta_j Δθj Δ v i h \Delta v_{ih} Δvih Δ γ h \Delta\gamma_h Δγh。(p103)
学习率 η ϵ ( 0 , 1 ) \eta\epsilon(0,1) ηϵ(0,1)控制迭代的更新步长,太大容易震荡,太小收敛速度过慢。一般常设置为0.1
BP算法工作流程如下
先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;
然后计算输出层的误差(第 4-5 行) ,再将误差逆向传播至隐层神经元(第6行) ,最后根据隐层神经元的误差来对连接权和阈值进行调整(第7行).
该迭代过程循环进行,直到达到某些停止条件为止,例如训练误差已达到一个很小的值。
在这里插入图片描述
以上算法更新规则基于单个 E k E_k Ek推导而得,称“标准BP算法”。
类似推导出基于累积误差最小化的更新规则,得到累积误差逆传播算法。
标准BP算法参数更新非常频繁。累积BP算法直接针对累积误差最小化,在读取整个训练集D一遍后才对参数进行更新,故参数更新的频率低得多。
当包含足够多神经元的隐层,多层前馈网络能以任何精度逼近任意复杂度的连续函数。至于如何设置隐层神经元的个数,常靠“试错法”调整。
由于强大的表示能力, BP 神经网络经常遭遇过拟合,其训练误差持续降低,但测试误差却可能上升。
缓解BP网络的过拟合:
1、“早停”:将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,返回具有最小验证集误差的连接权和阈值。
2、“正则化”:其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分。
例如,误差目标函数改变为
在这里插入图片描述
E k E_k Ek表示第k个训练样例上的误差, w i w_i wi表示连接权和阈值。其中 λ ∈ ( 0 , 1 ) \lambda\in(0,1) λ(0,1)用于对经验误差与网络复杂度这两项进行折中。(理解:增加连接权与阈值平方和这一项后,训练过程会偏好比较小的连接权和阈值,使网络输出更加“光滑”,从而缓解过拟合)
5.4全局最小与局部最小
E表示神经网络在训练集上的误差,其显然关于连接权 w w w和阈值 θ \theta θ的函数。神经网络的训练过程相当于在参数空间中,寻找一组最优参数使得E最小。
“最优”:包括“局部极小”和“全局最小”
1、局部极小解,是参数空间中的某个点,其邻域点的误差函数值均不小于该点的函数值;
2、全局最小解则是指参数空间中所有点的误差函数值均不小于该点的误差函数值.两者对应的 E ( w ∗ ; θ ∗ ) E(w^*;\theta^*) E(w;θ)分别称为误差函数的局部极小值和全局最小值.
可能存在多个“局部极小”,但只会有一个全局最小值,在参数寻优过程中是希望找到全局最小。
常用的参数寻优方法-基于梯度的搜索:
每次迭代,我们计算误差函数在当前的梯度,然后根据梯度确定搜索方向,负梯度方向为函数值下降最快的方向,故梯度下降法即是沿着负梯度方向搜索最优解。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习西瓜书学习记录-第五章 神经网络 的相关文章

随机推荐

  • win10修改系统配置处理器引导参数后,系统无限蓝屏解决办法

    win10修改系统配置处理器引导参数后 xff0c 系统无限蓝屏解决办法 0 xff1a 开机时先按f8进入安全模式 xff0c 在进入命令提示符 1 进入 启动修复 的 命令提示符 xff08 最好是使用有管理员权限的 xff0c 不过普
  • 运行内存变成的2G,为硬件保留内存为6G

    运行内存变成的2G xff0c 为硬件保留内存为6G 先看设置中下面是否有设置是否激活windows xff0c 如有点进去 xff0c 有疑难解疑下面 xff0c 点入会自动激活windows xff0c 如盗版就不行 xff0c 激活后
  • ubuntu20.4安装NVIDIA驱动,cuda

    安装NVIDIA驱动准备工作 下载NVIDIA地址 xff1a https www nvidia cn Download index aspx lang 61 cn 查看是否安装好驱动命令 xff1a nvidia span class t
  • 图像进行反转:白变黑,黑变白

    图像进行反转 xff1a 白变黑 xff0c 黑变白 二值图对图像进行反转 span class token keyword import span cv2 img span class token operator 61 span spa
  • python调用相机和双目相机

    python调用相机 span class token keyword import span cv2 span class token keyword import span numpy span class token keyword
  • 安装PCL1.9.1其它版本号Python3.6+PCL1.9.1+VS2017+gtkbundle_3.6.4版本

    下载 python pcl文件 地址 xff1a https github com strawlab python pcl 安装 VS2017 安装PLC1 91 首先在自己电脑上安装PCL xff08 点击这里 xff09 xff0c 这
  • ROS--机器人小车仿真rviz

    URDF练习 需求描述 创建一个四轮圆柱状机器人模型 xff0c 机器人参数如下 底盘为圆柱状 xff0c 半径 10cm xff0c 高 8cm xff0c 四轮由两个驱动轮和两个万向支撑轮组成 xff0c 两个驱动轮半径为 3 25cm
  • ROS--URDF集成Gazebo仿真小车和rviz结合

    ROS URDF集成Gazebo仿真小车 实现流程 需要编写封装惯性矩阵算法的 xacro 文件 为机器人模型中的每一个 link 添加 collision 和 inertial 标签 xff0c 并且重置颜色属性 在 launch 文件中
  • 使用D435i深度相机运行ORB-SLAM3

    下载安装链接 下载ORB SLAM3地址 xff1a git clone https github com UZ SLAMLab ORB SLAM3 git eigen3多版本安装 xff1a https blog csdn net wei
  • keil5使用一个父工程打开多个子工程文件

    1 首先工程文件需要在同样的文件夹里 2 打开keil5 xff0c 选择Project New Multi Project Workspace 3 将工程文件建立在刚刚的总文件夹里面 xff0c 命名保存 4 弹出此页面 xff08 Cr
  • ​Android动态加载so!这一篇就够了!

    作者 xff1a Pika 链接 xff1a https juejin cn post 7107958280097366030 对于一个普通的android应用来说 xff0c so库的占比通常都是巨高不下的 xff0c 因为我们无可避免的
  • HTTP是什么

    HTTP是什么 HTTP是什么 HTTP协议是Hyper Text Transfer Protocol xff08 超文本传输协议 xff09 的缩写 是用于从万维网 xff08 WWW World Wide Web xff09 服务器传输
  • error: array has incomplete element type ‘char []‘

    原代码 xff1a void explain input char int char a 报错 xff1a error array has incomplete element type 39 char 39 原因 xff1a 可以用二维数
  • STM32串口接收十六进制数转为十进制数(包含负数)

    外部设备传输给STM32单片机十六进制数 例如0x09c4 代表2500 0xff38 代表 200 xff08 并不是65336 xff0c 因为这是有符号的 xff09 串口接收处理函数 接收到 5A A5 06 83 55 00 01
  • 无人机-3无人机ROS应用与开发

    一 ROS是什么 二 为什么要学习ROS 三 怎么学习ROS https www cnblogs com masbay p 10745170 html TF坐标系指机器人在现实世界会有坐标的变换 xff0c ROS已经将其算成固定的程序 x
  • ROS入门-4.安装ROS系统(ubuntu20.04版本安装ros的noetic版本)

    ubuntu20 04版本安装ros的noetic版本 1 添加软件源2 添加密钥3 更新4 安装ROS5 初始化rosdep6 设置环境变量7 测试ROS安装是否成功 1 添加软件源 2 添加密钥 3 更新 4 安装ROS 5 初始化ro
  • 数学建模-12.预测模型

    灰色预测 灰色系统 GM 1 1 模型 xff1a Grey Model GM 1 1 原理介绍 呢么 xff0c 准指数规律的检验 xff1f 发展系数 a 与预测情形的探究 发展系数越小预测的越精确 GM 1 1 模型的评价 在使用GM
  • 数学建模-数学规划模型

    数学规划模型 一 概述 1 什么是数学规划 xff1f 运筹学的一个分支 xff0c 用来研究在给定条件下 即约束条件 xff0c 如何按照某一衡量指标 xff08 目标函数 xff09 来寻求计划 管理工作中的最优方案 即求目标函数在一定
  • 机器学习西瓜书学习记录-第四章 决策树

    第4章 决策树 4 1基本流程 决策树 xff0c 一类常见机器学习方法 xff0c 希望从给定训练集学得一个模型用以对新示例进行分类 一般 xff0c 一棵决策树包含一个根结点 若干个内部结点和若干个叶结点 xff1b 叶结点对应于决策结
  • 机器学习西瓜书学习记录-第五章 神经网络

    第5章 神经网络 5 1神经元模型 神经网络中最基本的成分是神经元模型 M P神经元模型 xff0c 又称 阈值逻辑单元 在模型中 xff0c 神经元接收到来自n个其他神经元传递过来的输入信号 xff0c 这些输入信号通过带权重的连接进行传