1 简述感知机的基本原理

一个感知器可以接收n个输入x=(x1,x2,…,xn),对应n个权值w=(w1,w2,…,wn),此外还有一个偏置项阈值,就是图中的b,神经元将所有输入参数与对应权值进行加权求和,得到的结果经过激活函数变换后输出,计算公式如下:

                                                                        

2 讨论BP神经网络的学习过程

BP神经网络训练过程的基本步骤可以归纳如下:初始化网络权值和神经元的阈值,一般通过随机的方式进行初始化;前向传播:计算隐层神经元和输出层神经元的输出;后向传播:根据目标函数公式修正权值wij。上述过程反复迭代,通过损失函数和成本函数对前向传播结果进行判定,并通过后向传播过程对权重参数进行修正,起到监督学习的作用,一直到满足终止条件为止。

3 BP神经网络有哪些常见应用?

BP网络主要用于以下四个方面。

函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。

模式识别:用一个待定的输出向量将它与输入向量联系起来。

分类:把输入向量所定义的合适方式进行分类。

数据压缩:减少输出向量维数以便于传输或存储

4 神经网络的激活函数有哪些?他们对神经网络的性能有何影响。

激活函数经常使用Sigmoid函数、tanh函数、ReLu 函数。

Sigmoid函数的优点在于输出范围有限,数据在传递的过程中不容易发散,并且其输出范围为(0,1),可以在输出层表示概率值。Sigmoid函数的导数是非零的,很容易计算。

Sigmoid函数的主要缺点是梯度下降非常明显,且两头过于平坦,容易出现梯度消失的情况,输出的值域不对称,并非像tanh函数那样值域是-1到1。

双曲正切函数将数据映射到[-1,1],解决了Sigmoid函数输出值域不对称问题。另外,它是完全可微分和反对称的,对称中心在原点。然而它的输出值域两头依旧过于平坦,梯度消失问题仍然存在。为了解决学习缓慢和梯度消失问题,可使用其更加平缓的变体,如log-log、Softsign、Symmetrical Sigmoid等

ReLU函数是目前神经网络里常用的激活函数,由于ReLU函数是线性特点使其收敛速度比Sigmoid、Tanh更快,而且没有梯度饱和的情况出现。计算更加高效,相比于Sigmoid、Tanh函数,只需要一个阈值就可以得到激活值,不需要对输入归一化来防止达到饱和。

5 BP神经网络训练过程中如何减少陷入最小极值点?

可以有多种方法:

  1. 以多组不同参数初始化多个神经网络,按标准方法训练后去其中误差最小的解作为最终参数。相当于从多个不同的初始点开始搜索,这样可能陷入不同的局部最小值,从中选出可能获得更接近全局最小的结果
  2. 使用模拟退火。模拟退火在每一步都以一定概率接受比当前解更差的结果,从而有助于跳出局部最小。在每部迭代中接受次优解的概率随着时间的推移而逐渐降低,从而保证算法稳定
  3. 采用随机梯度下降。与标准梯度下降的精确计算梯度不同,随机梯度下降在计算题都的时候加入了随机因素,因此,即时陷入局部极小点,它计算出来的梯度仍可能不为0,就有机会跳出局部最小继续搜索
  4. 遗传算法

6 讨论BP神经网络的训练过程中学习不长、隐层个数、隐层单元数等参数如何调整?

算法的步长选择。步长实际上取值取决于数据样本,可以多取一些值,从大到小,分别运行算法,看看迭代效果,如果损失函数在变小,说明取值有效,否则要增大步长。步长太大,会导致迭代过快,甚至有可能错过最优解。步长太小,迭代速度太慢,很长时间算法都不能结束。所以算法的步长需要多次运行后才能得到一个较优的值。

网络的层数。理论已经证明,具有偏差和至少一个S型隐层加上一个线性输出层的网络,能够逼近任何有理函数,增加层数可以进一步降低误差,提高精度,但同时也是网络 复杂化。另外不能用仅具有非线性激活函数的单层网络来解决问题,因为能用单层网络解决的问题,用自适应线性网络也一定能解决,而且自适应线性网络的 运算速度更快,而对于只能用非线性函数解决的问题,单层精度又不够高,也只有增加层数才能达到期望的结果。

隐层单元数。在能够解决问题的前提下,再加上一两个神经元,以加快误差下降速度即可。

7 RBF神经网络的基本原理是什么?

径向基函数网络的隐含层是由径向基函数神经元组成,这一神经元的变换函数为径向基函数。典型的RBF网络由输入层、RBF隐层和由线性神经元组成的输出层。与传统的即神经网络相比,其主要区别是隐层节点中使用了径向基函数、对输入进行了高斯变换、将在原样本空间中的非线性问题,映射到高维空间中使其变得线性,然后在高维空间里用线性可分算法解决,RBF网络采用高斯函数作为核函数:

                                           y=exp-bx-w2

RBF网络的隐层神经元自带激活函数,所以其层数可以只有一层隐层, 权重值数量更少,所以RBF网络较BP网络速度快很多。

8 RBF为什么可以减少局部极少值难题?

当RBF的中心点确定以后,低维空间的输入通过非线性函数到一个高维空间的这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。由此可见,从总体上看,网络由输人到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。

9 Elman神经网络的优点是什么?举例说明这种网络的应用

Elman网络是在时间上动态的,具有内部动态反馈的功能,承接层的设置使得Elman网络能够有效应对具有时变特征的数据,在带有时序性的样本数据上有着比静态神经网络更好的预测性能

10 与决策树比较,神经网络适合处理什么类型的数据和问题?

在中小数据集上,优先选择集成树模型。大数据集上推荐神经网络;在需要模型解释度的项目上,优先使用树模型;在项目时间较短的项目上,如果数据质量低(大量缺失值、噪音等),优先使用集成树模型;在硬件条件有限及机器学习知识有限的前提下,优先选择树模型;对于结构化较高的数据,尤其是语音、图片、语言,优先使用神经网络模型(往往其数据量也较大)。

11 如何避免过拟合?

常用的防止过拟合的方法有参数范数惩罚、数据增强、提前终止、Bagging等集成方法、Dropout、批正则化等。

12 为什么要对模型的输入数据进行归一化?

归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响。

13 什么是梯度消失?

因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷到正无穷的数映射到0和1之间,并且对这个函数求导的结果是f′(x)=f(x)(1−f(x))。因此两个0到1之间的数相乘,得到的结果就会变得很小了。神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,最终就会变为0,从而导致层数比较浅的权重没有更新,这就是梯度消失。

14 如何加快梯度下降的速度?

可以使用mini-batch、Stochastic gradient descent等方法。mini-batch是将训练集分组,分组之后,分别对每组求梯度,然后更新参数。加入分 8组,则每次迭代将会做8次梯度下降,更新8次参数。所以mini-batch比传统的梯度下降法下降的速度快。Stochastic gradient descent可以看做是mini-batch的一种特殊情况,当mini-batch size等于1时,mini-batch就退化为Stochastic gradient descent。此时每次迭代中,对于数据集中每个样本都做一次梯度下降。还可以使用Monmentum、RMSprop、Adam等方法。

《机器学习》赵卫东学习笔记 第6章 神经网络(课后习题及答案)相关推荐

  1. 《机器学习》赵卫东学习笔记 第13章推荐系统(课后习题及答案)

    1 推荐系统的功能是什么? 推荐系统是一种帮助用户快速发现有用信息的工具.通过分析用户的历史行为,研究用户偏好,对用户兴趣建模,从而主动给用户推荐能够满足他们感兴趣的信息.本质上,推荐系统是解决用户额 ...

  2. 《数学建模简明教程--基于python》学习笔记-第四章-微分方程-课后习题解答

    文章目录 ⭐️0.准备工作⭐️

  3. 《机器学习》 周志华学习笔记第五章 神经网络(课后习题) python实现

    1.神经元模型 2.感知机与多层网络 3.误差逆传播算法 (A)BP算法:最小化训练集D上的累积误差 标准BP算法:更新规则基于单个Ek推导而得 两种策略防止过拟合:(1)早停(通过验证集来判断,训练 ...

  4. 《机器学习西瓜书》学习笔记——第七章_贝叶斯分类器_朴素贝叶斯分类器

    朴素:特征条件独立:贝叶斯:基于贝叶斯定理. 朴素贝叶斯是经典的机器学习算法之一,也基于概率论的分类算法,属于监督学习的生成模型.朴素贝叶斯原理简单,也很容易实现,多用于文本分类,比如垃圾邮件过滤. ...

  5. 【深度学习入门:基于Python的理论与实现】书本学习笔记 第三章 神经网络

    文章目录 1. 阶跃函数的实现 2. 函数图形 2.1 阶跃函数 2.2 sigmoid 函数 2.3 ReLU 函数 3. 多维数组的运算 3.1 矩阵乘法 3.2 神经网络的内积 4. 三层神经网 ...

  6. 复旦赵卫东:大数据的系统观

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

  7. 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录

    一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到 ...

  8. 机器学习框架ML.NET学习笔记【5】多元分类之手写数字识别(续)

    一.概述 上一篇文章我们利用ML.NET的多元分类算法实现了一个手写数字识别的例子,这个例子存在一个问题,就是输入的数据是预处理过的,很不直观,这次我们要直接通过图片来进行学习和判断.思路很简单,就是 ...

  9. 吴恩达机器学习学习笔记第七章:逻辑回归

    分类Classification分为正类和负类 (规定谁是正谁是负无所谓) 吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性 如果我们用之前学习的lin ...

最新文章

  1. python字符串连接方式_Python 字符串连接方式有这么种,你知道吗?
  2. About A Scam
  3. Linux System Programming -- Appendix
  4. Java 对象初始化过程
  5. javascript中函数的全解简介
  6. mysql sample函数_Oracle SAMPLE 语法应用
  7. 数字化改革看“浙”里 CDEC2021中国数字智能生态大会杭州站举行
  8. 沙盒机制和应用程序目录
  9. docker-compose搭建ghost博客系统
  10. webpack 保存文件后自动打包_Webpack轻松入门(二)——CSS打包
  11. python合并表格用什么库_python合并多个excel表格数据库-python实现excel合并
  12. 通过TMS320F28335学习DSP的开发流程——28335的基础知识(1)
  13. SPSS作业-检验两组数据有无显著
  14. 对称与非对称加密算法总结
  15. 【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )
  16. android手机视频编辑,美册视频编辑剪辑制作
  17. 在线查看word,excel,pdf文件解决
  18. STM32驱动陀螺仪MPU6050的应用实例
  19. 【Java--日期的使用】
  20. ERROR 429: Too Many Requests.

热门文章

  1. android ajax提交图片,ajaxFileUpload上传图片
  2. uniapp显示富文本效果demo(整理)
  3. 重积分和线面积分总结
  4. 数据结构和常用排序算法复杂度
  5. java流的相互转化_java 将文件流转化成字符串传输
  6. 书店存货c语言程序,C语言课程设计品库存管理系统.doc
  7. ABBYY FineReader PDF 15有哪些增强PDF安全性的方法?
  8. php读取excel指定工作簿,php读取excel,excel下多个个工作表,该怎么读取呢?
  9. 幅频响应 matlab画法,matlab绘制数字滤波器的幅频响应曲线
  10. 106个项目上榜!2018人工智能与实体经济深度融合创新项目名单公布