机器学习3-神经网络
师兄博客原文地址 https://blog.csdn.net/LogHouse/article/details/93222454 ,这篇感觉他还没写完。有时间我补一下
@
对应周志华西瓜书第五章。
一些问题
- 1、试述常见的激活函数,试述将线性函数用作神经元激活函数的缺陷。
- ①阶跃函数;
②Sigmoid函数:
优点: ------
缺点: 1)会有梯度弥散; 2)不是关于原点对称; 3)计算exp比较耗时.
③Tanh函数:
优点: 1)解决了原点对称问题; 2)比sigmoid函数快;
缺点: 1)会有梯度弥散.
④ReLU函数:
优点: 1)解决了部分梯度弥散问题; 2)加快了收敛速度;
缺点: 1)梯度弥散未能完全解决; 2)负数部分相当于神经死亡, 且不会复活.
⑤Leaky ReLU函数:
优点: 1)解决了神经死亡问题.
缺点: ----------
⑥Maxout:
优点: 1)克服了ReLU的缺点;
缺点: 1)参数较多.
线性函数用作神经元激活函数的缺陷:
无论多少层的神经网络会退化成一个线性回归.
- 2、试述使用sigmoid激活函数的神经元与对数几率回归的联系。
- 两者都是希望将连续值映射到{0,1}上,但由于阶跃函数不光滑,不连续的性质,所以才选择了sigmoid作为映射函数。不同之处在于激活函数不一定要使用sigmoid,只要是非线性的可导函数都可以使用。
- 3.、对于图5.7(102页)中的 ,试推导出BP算法中的更新公式5.13(103页)。
-
\[\begin{aligned} \]
\frac{\partial a_h}{\partial v_{ih}} & = \bm{x}_i\
\bm{e}_h & =-\frac{\partial E_k}{\partial b_h}\frac{\partial b_h}{\partial a_h}
\end{aligned}$$
可推出更新公式: \(\bm{ve_hx}_i\)
- 4、试述标准BP算法和累计BP算法,试编程实现标准BP算法和累计BP算法,在西瓜数据集3.0(84页)上分别用这两个算法训练一个单隐层神经网络,并进行比较。
- 见下节
- 5、试述如何缓解BP神经网络的过拟合现象。
- 由于 BP(BackPropagation) 神经网络具有强大的表示能力,PB神经网络经常遭遇过拟合,其训练误差持续降低,但测试误差却可能上升。有两种策略常用来缓解BP网络的过拟合:
①早停 (early stopping): 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
②正则化 (regularization): 其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。仍令\(E_k\)表示第\(k\)个训练样例上的误差,\(w_i\)表示连接和阈值,则误差目标函数改变为:
式中\(\lambda\in(0,1)\),用于对经验误差与网络复杂度两项进行折中,常通过交叉验证法来估计。
- 6、试述RBF网络,RNN循环神经网络的概念和特点。
- ①径向基函数网络(Radial Basis Function,RBF):
RBF网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元的激活函数,而输出层则是对隐层神经元输出的线性组合。
设输入为\(d\)向量\(\bm{x}\),输出为实数,RBF可表示如下:
式中, \(q\)为隐层神经元个数, \(c_i\)和\(w_i\)分别表示第\(i\)个隐层神经元对应的中心和权重, \(\rho(x,c_i)\)为径向基函数, 其为某种沿径向对称的标量函数, 通常可以定义样本\(x\)到数据中心\(c_i\)之间欧氏距离的单调函数, 一种常用的RBF计算公式如下: