学习笔记----周志华《机器学习》第五章(神经网络)(一)
周志华的《机器学习》算作一本入门的宝书。本文是对周志华的机器学习第五章神经网络的学习笔记。在第五章主要涉及的内容:神经网络、常见激活函数、感知机、多层前馈神经网络 、反向传播算法(BP算法)、全局最小和局部极小、其他神经网络(RBF、ART、SOM等网络)、递归神经网络(如Boltzmann机、Elman网络)。如果哪里有不对的地方,请不吝指点!
一、什么是神经网络?
关于神经网络的定义有很多,本文对于神经网络的定义:神经网络是由具有适应性的简单单元(实际上是神经元)组成的广泛并且互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
神经网络的基本模型为神经元模型(unit或neuron)。我们基本上都可以想到的是,当神经元刺激后,就会相它相邻的神经元发送“信号”,进而激活其他神经元,当其他神经元的点位超过一定值(阈值),它就会向其他神经元继续发送化学物质了。这是其中一个激活过程。下面是常见的M-P神经元模型:
M-P神经元模型的工作流程大致描述如下:神经元接收到来自其他n个神经元传过来的输入,在通过带权重的连接,最后这个总输入就会和该神经元的阈值比较,看所得到的“刺激”能否让该神经元继续传递下去。最后通过激活函数处理输出。
常见的激活函数又包含阶跃函数、sigmoid函数、softmax函数、ReLU函数等。
(1)阶跃函数
阶跃函数的定义:值呈阶梯式变化,阶跃函数以0为界限,输出从 0 切换为 1(或从 1切换 0)。
(2)sigmoid函数
sigmoid函数是一种很高效的激活函数。它的函数图形是一条平滑的曲线,输出sigmoid(x)随着输入x发生连续性的变化。而阶跃函数是发生突变式的变化。
(3)softmax函数
softmax函数主要用于分类问题。主要公示为:。
该函数的分子是输入信号的指数函数,分母是所有输入信号的指数函数的和。 在这篇blog中,用到了softmax作正则化的处理,让最终的输出为概率,也就是说可以生成百分数的结果,这样做不仅可以找到最大概率的分类,而且可以知道各个分类计算的概率值。
(4)ReLU函数
其实这个函数我了解的不是很多,在一篇关于两层神经网络的知乎文章中有了解过一点。在神经网络发展的历史上,sigmoid函数很早就开始被使用了,而最近则主要使用ReLU(Rectified Linear Unit)函数。这里简单解释一下。ReLU函数,当输入为负值时,输出为0,当输入为非负,输出等于输入。
看到这里我们可以更直观、更简单的描述神经网络:神经网络是许多神经元按照某一结构层次组合起来的。
二、感知机(perceptron)和多层前馈神经网络
感知机是由两层神经元组成(两个)。输入层接收外界输入信号给输出层,输出层是M-P神经元。由此可以知道感知机只拥有一层功能神经元,它只有输出层可以进行激活函数的处理,这个处理能力对我们现实的问题的处理是远远不够的。感知机能处理与、或、非问题。两层感知机能处理异或问题。两层感知机包含输入层、输出层、隐藏层。
多层前馈神经网络:不存在跨层连接,但是同层间可以多条连接,每层神经元与下一层神经元实现全互连。注意:这里的前馈不代表信号不能往回传!而是指网络拓扑结构上不存在环或回路。注意:只要包含隐层就是多层网络,隐层中包含功能神经元!!
所以神经元到底学的什么??神经网络的学习过程,是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值。
三、反向传播算法(BP算法)
BP算法是一种迭代学习算法,它主要应用于多层前馈神经网络和其他类型的神经网络。BP算法给予梯度下降侧列,以目标的负梯度方向对参数进行调整,BP算法的最终目标是最小化训练集D上的累积误差。它的算法过程如下。
标准的BP算法每次针对一个训练样例更新连接权和阈值,更新参数很频繁,这样可能将这个更新的效果“抵消”。除了上述“标准”BP算法外,还有累计BP算法。累计BP算法:直接针对累积误差最小化,它读取整个训练集D,读完一遍后才对参数更新,更新的频次要少得多。但是累计BP算法对于训练集非常大时,当累计误差下降到一定程度后,进一步下降会很缓慢很缓慢,这是一个会舍弃累计BP算法的原因。
BP算法会出现一个缺点:过拟合。解决它的策略有两种:(1)早停;(2)正则化。
四、全局最小和局部极小
有高等数学的基础,实际上我们可以很直观的理解什么是全局最小?什么是局部极小?狭义来讲全局最小一定是局部极小,反之不成立。我们在实际的算法操作中,是想要直接遇到全局最小,而不是局部最小。所以提出了很多可能的能跳出局部极小的方案。(虽然实际上,可能跳出的是全局最小)
(1)从多个不同的初始点开始搜索,这样可能会陷入不同的局部极小,然后选最接近全局最小的。
(2)模拟退火技术。在每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出。这样在每次迭代过程中,我接受比当前更差的概率会减小,这样可以保证算法稳定。
(3)随机梯度下降法。加入了随机因素,这样即便陷入了局部极小,计算出来的梯度也不为0,这样就还有机会继续搜索。
除此之外还有遗传算法,也常用来训练神经网络。
虽然在书上,第五章只有短短三十页左右。一篇篇幅也是很难完整记录下来的,今天就写到这里吧。
学习笔记----周志华《机器学习》第五章(神经网络)(一)相关推荐
- 【周志华机器学习】五、神经网络
文章目录 参考资料 1. 基本概念 1.1 神经元模型 2. 感知机与多层网络 隐藏层的解释 3. BP神经网络算法 3.1 算法思想 3.2 过拟合问题 4. 全局最小与局部最小 5. 深度学习 5 ...
- 学习笔记----周志华《机器学习》第五章(神经网络)(二)
周志华<机器学习>第五章(神经网络)的学习笔记上篇连接在这里:<上篇>.上篇讲到了神经网络.常用的激活函数.感知机和多层前馈神经网络.局部极小和全局最小,今天继续补上昨天落下得 ...
- 根据《机器学习》(周志华)第五章内容,用Python实现标准BP算法
BP神经网络由一层输入层.任意隐层(一般为1).一层输出层组成.假定输入向量为n维向量,即输入神经元数量为n,隐层的层数为num,每一层隐层的神经元数量为eachCount,输出向量为yCount维向 ...
- 周志华机器学习--绪论
周志华机器学习–绪论 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器学 ...
- 周志华机器学习-决策树
周志华机器学习-决策树 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器 ...
- 周志华机器学习-支持向量机
周志华机器学习-支持向量机 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 – 文章目录 周 ...
- 周志华机器学习(西瓜书)学习笔记(持续更新)
<周志华机器学习>笔记 第1章 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 归纳偏好 1.5 发展历程 1.6 应用现状 第2章 模型评估与选择 2.1 经验误差与过拟 ...
- 【读书笔记】周志华 机器学习 第二章 模型评估和选择
第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...
- 周志华机器学习--模型评估与选择
周志华机器学习–模型评估与选择 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周 ...
最新文章
- 面试题--特别是字节对齐
- 第 15 章 Framework Design
- [转载]浅析jQuery框架与构造对象
- 组播,单播,广播,多播,泛洪的概念
- Faster R-CNN的安装及测试(Python版本和Matlab版本)
- HDOJ 2018 母牛的故事
- CSS3 多列布局的跨列
- 训练代码_无需一行代码,完成模型训练和部署,这个AI工具开始公测
- 2.2 LayoutInflater 加载布局文件源码
- 显式Intent 和隐式 Intent 的区别
- python bp神经网络进行预测_python实现BP神经网络回归预测模型
- [BZOJ 5074]小B的数字
- php函数默认参数放在哪测,php函数默认参数的实例代码
- 双线性映射matlab,[Matlab]双线性变换法设计数字带通滤波器
- 求大佬帮帮忙 ubuntu 安装完成vsftpd后用windows10的上安装的cutftp连接出现下面的情况 远程主机主动拒绝了对其进行的连接尝试
- jenkins(一)------Windows环境下jenkins下载和安装
- python中def demo是什么意思_python中def是什么意思
- 那些不能在一起吃的水果搭配
- 【习题之局域网及组网技术篇】子网划分分配方案
- 智能门锁物联卡开启智能家庭新模式,引领智能家居新征程
热门文章
- 高德技术开放日 | 聊聊技术与成长那些事,大量实习岗、社招岗开放
- 全球顶会论文作者,28天手把手带你复现顶会论文
- 当深度学习遇上量化交易——公开信息篇
- CVPR 2020 | 港中文提出3D目标检测新框架DSGN
- 飞桨端到端开发套件揭秘:四大秘密武器,让你的开发效率直线提升
- Wannafly summer camp
- 邮件excel html,小数点分隔符在电子邮件(HTML/CSS)在Excel的VBA编程
- 【Java报错】借助@PostConstruct解决使用@Component注解的类用@Resource注入Mapper接口为null的问题(原因解析+解决方法)
- BugKuCTF WEB 本地包含
- 【学习笔记】操作系统之哲学原理