【读书笔记】周志华 机器学习 第五章 神经网络

2023-11-03

1 神经元模型

在生物神经网络中,一个神经元A与其他神经元相连。当它兴奋时,会向相连的神经元B发送化学物质改变相连神经元B的电位。相连神经元B的电位超过阈值则会被激活开始兴奋,然后向相连的神经元C发送化学物质。
MP神经元模型
∑ i = 1 n w i x i \sum\limits_{i = 1}^{n} w_ix_i i=1nwixi表示相连神经元对当前神经元电位的影响, f ( ∑ i = 1 n w i x i − θ ) f(\sum\limits_{i = 1}^{n} w_ix_i - \theta) f(i=1nwixiθ)表示当前神经元电位超过或没超过阈值时的输出。这里的函数f称为激活函数。理想激活函数应该是阶跃函数,即电位超过阈值时输出为1,没超过阈值时输出为0。但是阶跃函数不连续不光滑,不利于后期参数学习,因此使用sigmoid函数以及其他函数作为激活函数。

2 感知机和多层网络

学习了神经元模型之后,开始学习如何利用神经元模型构建神经网络模型。先从最简单的感知机模型和逻辑回归模型开始学习。在李航《统计学习方法》中,感知机模型的数学表达式为: y = ∑ i = 1 n w i x i + b y = \sum \limits_{i = 1}^{n}w_ix_i + b y=i=1nwixi+b,逻辑回归模型数学表达式为: y = 1 1 + e − ∑ w i x i + b y = \frac{1}{1 + e^{-\sum w_ix_i + b}} y=1+ewixi+b1
感知机
如果上图所示神经网络模型使用的激活函数是恒等函数,那么该神经网络模型等价于感知机模型;如果使用的激活函数是sigmoid函数,那么该神经网络模型等价于逻辑回归模型。数学证明,对于线性可分问题,两层的感知机模型一定可以求解。对非线性可分问题,可以通过增加网络层数、使用非线性激活函数等方法进行求解。非线性问题求解的本质是对特征空间进行变换,将非线性问题转为线性问题

3 误差反向传播算法

多层网络的学习使用误差反向传播算法BP网络
BP推导
BP伪代码
这里的伪代码是根据每个样本的误差更新一次参数,这是标准BP算法;还有一种算法是根据所有样本的累计误差更新一次参数,称为累计误差BP算法。累计误差BP算法更新次数少,但是当累计误差下降到一定程度时,后续下降会非常缓慢,此时标准BP表现较好,下降速度较快。
BP神经网络学习能力强大,理论上只要隐藏层神经元个数做够多,就可以学得任意复杂度的连续函数。但是学习能力太强容易过拟合,有两种方法可以避免过拟合。一种是早停,使用训练集训练,使用验证集判断是否过拟合。当训练误差减小,但是验证误差增大时,认为网络模型开始过拟合,停止训练。一种是正则化,在目标函数中加入模型复杂度的惩罚项以均衡模型复杂度和误差。

4 局部极值点和鞍点

BP算法使用梯度下降法更新参数,当参数更新到局部极小值点或者鞍点处,梯度为零,没法继续更新参数。可以通过随机初始化点、随机梯度下降法(给梯度附加一个随机值)来避免进入局部极值点和鞍点。

5 其他神经网络

其他与标准神经网络不同,不同的地方包括激活函数不同,如RBF网络;网络结构不同,如Elman网络;目标函数不同,如玻尔兹曼机;
深度学习中的神经网络隐藏层层数较多而非隐藏层神经元数目较多。这样的好处是不仅有更多的神经元,而且激活函数之间还有嵌套,更有利于学习非线性函数。但是网络层数较多时,反向传播不容易收敛,可以通过无监督逐层训练(DBN)或者权值共享(CNN)来解决。

6 参考文献

周志华 机器学习 清华大学出版社
谢文睿、秦州 机器学习公式详解 人民邮电出版社
李航 统计学习方法第二版 清华大学出版社
部分图片源自网络和书本,如有侵权联系删除

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

【读书笔记】周志华 机器学习 第五章 神经网络 的相关文章

随机推荐

  • matlab arma 仿真,基于Matlab的ARMA模型时间序列分析法仿真

    自适应滤波器设计等等 基于Matlab的ARMA模型时间序列分析法仿真 ARMA模型时间序列分析法简称为时序分析法 是一种利用参数模型对有序随机振动响应数据进行处理 从而进行模态参数识别的方法 参数模型包括AR自回归模型 MA滑动平均模型和
  • llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码

    本教程使用的操作系统是Ubuntu Linux 18 04 2 LTS版本 编译器是GCC 6 5 0 不用新版的原因是某些代码不支持更高的版本 要编译的LLVM源代码是8 0 0 1 安装必要的软件 它们是 build essential
  • 使用mediapipe训练手指数字识别

    mediapipe手指数字识别 本文是从0开始创建一个识别手势的机器学习模型 为了识别手势 采用mediapipe模型 这个模型会返回手指的位置 之后再通过训练一个模型将这些位置分类得到手势 一 导入依赖 import cv2 import
  • js中的var详解

    var是js的一个关键字 它是用来声明变量的 声明一个变量有两种方式 第一种 var num 1 如果在方法中声明 则为局部变量 如果在全局中声明 则为全局变量 第二种 num 1 事实上这是对属性进行赋值操作 首先 它会尝试在当前作用域链
  • 操作符浅解

    1 移位操作符 作用的对象是数的二进制位 1 gt gt 向左边移动一位 左边丢弃 右边补0 相当于这个数乘以2移动n位 相当于乘以2的n次方 int main int a 2 int b a lt lt 1 打a的二进制向左移动一位 pr
  • vulnhub靶机练习-Me and My Girlfriend: 1

    vulnhub靶机练习 Me and My Girlfriend 1 靶机下载地址 https www vulnhub com entry me and my girlfriend 1 409 点击直接下载 靶机介绍 Description
  • 安达发

    APS Advanced Planning and Scheduling 先进计划与排程 是一种集成了生产计划 物料需求计划 MRP 库存控制和车间调度等功能的管理系统 在制造业中 物料清单 BOM 管理是APS系统中的一个重要组成部分 它
  • 电脑显示DNS服务器没检测到,连网时出现"该设备或资源(DNS 服务器)没有检测到有响应",怎么办?...

    连网时出现 该设备或资源 DNS 服务器 没有检测到有响应 怎么办 卡饭网 梦在深巷 2016 05 05 11 23 15 小编整理了以下2种解决方法大家可以参考以下 方法一 有可能是由于无线网络连接里面的DNS服务器错误 导致的网卡断网
  • 自动化遍历-appcrawler

    下载appclawler 下载地址 https pan baidu com s 1dE0JDCH list path 2F 查看帮助文档 java jar appcrawler 2 4 0 jar with dependencies jar
  • JS-ES6类

    使用js的class需注意以下几点 1 通过class关键字创建类 类名我们还是习惯性定义首字母大写 2 类里面有个constructor函数 可以接受传递过来的参数 同时返回实例对象 3 constructor 函数只要new生成实例时
  • seq2seq

    我的书 淘宝购买链接 当当购买链接 京东购买链接 seq2seq是通用编码器 解码器框架 encoder decoder framework 可以用在机器翻译 文本摘要 会话建模 图像描述 源码 https github com googl
  • 【编译原理】flex实现词法分析器

    flex自动实现词法分析器 FLEX 与 BISON 的使用 FLEX介绍 Flex是一个生成词法分析器的工具 它可以利用正则表达式来生成匹配相应字符串的C语言代码 其语法格式基本同Lex相同 单词的描述称为模式 Lexical Patte
  • 项目中好用的方法

    1 过滤 数组子项是对象的 对象有重复的 let arr res data filter function item index self return self findIndex el gt el applyPerson item ap
  • jsp 不能识别 el 表达式 的解决方法

    在以前使用EL表达式的时候 在JSP页面直接使用就可以了 但昨天我在做项目的时候在JSP页面上的EL表达式不能被识别 如 loginForm username 在页面上还是显示 loginForm username 后来我在JSP头上加上红
  • java面向对象----封装 && 构造器

    目录 封装和隐藏 为什么需要封装 信息的封装和隐藏 四种访问权限修饰符 构造器 构造方法 构造器的特征 语法格式 构造器重载 构造器重载举例 属性赋值过程 JavaBean UML类图 关键字 this this是什么 使用this 调用属
  • 抠图算法Background Matting:The world is your green screen

    论文地址 https arxiv org abs 2004 00626 代码 https github com senguptaumd Background Matting 背景介绍 抠图是照片编辑和视觉效果中使用的标准技术 在现有的抠图算
  • Python之浮点型

    python默认的是17位小数的精度 不支持32bit的单精度浮点数 如果程序需要精确控制区间和数字精度 可以考虑使用numpy扩展库 一 单精度和双精度的区别 内存不同 单精度浮点数占用4个字节 32位 存储空间 符号位1位 阶码8位 位
  • 【MySQL安装过程中显示ddl文件缺失】

    写在前面 每个人都遇到过 无法找到 dll文件 的消息弹窗 各位 这个问题终于可以解决了 在这里你可以找到电脑上最常丢失或损坏的文件 自由下载 无任何费用 1 问题描述 安装MySQL过程中遇到的问题 如图 这些是同一类问题 都是由于缺少
  • Go导入本地包

    举例来说项目文件结构如 C go mod go sum main go models User go 如果想要再main go中导入models包 那么首先需要在go mod中配置 则可以用 这种方式来导入models中的文件
  • 【读书笔记】周志华 机器学习 第五章 神经网络

    第五章 神经网络 1 神经元模型 2 感知机和多层网络 3 误差反向传播算法 4 局部极值点和鞍点 5 其他神经网络 6 参考文献 1 神经元模型 在生物神经网络中 一个神经元A与其他神经元相连 当它兴奋时 会向相连的神经元B发送化学物质改