习题
5.1
试述将线性函数 (f(oldsymbol{x}) = oldsymbol{w}^{mathrm{T}}oldsymbol{x}) 用作神经元激活函数的缺陷.
理想中的激活函数是阶跃函数, 但是它不连续, 不光滑, 所以要一个连续、光滑的函数替代它. 线性函数虽然连续、光滑, 但是它跟阶跃函数并不是那么相似. 线性函数对 (0) 周围的数值和对趋近 (infty) 的数值是一视同仁的, 而这样的性质我们并不需要, 我们更在乎那些处于 (0) 周围的, 在被分为正 (大于 (0) ) 还是负 (小于 (0) ) 的界限边的 '模糊' 的数值, 因此有了 (mathrm{Sigmoid}) 函数, 它的特点就是在 (0) 周围输出急剧变化.
5.2
试述使用图 (5.2(mathrm{b})) 激活函数的神经元与对率回归的联系.
这已经非常明显了, 対率回归的激活函数也是 (Sigmoid) .
5.3
对于图 (5.7) 中的 (v_{ih}) 试推导出 (mathrm{BP}) 算法中的更新公式 ((5.13)) .
全部展开, 得
显然成立.
5.4
试述式 ((5.6)) 中学习率的取值对神经网络训练的影响.
学习率太低, 训练速度太慢. 学习率太高, 不容易收敛 (在极值点附近反复迭代) .
5.5
试编实现标准 (mathrm{BP}) 算法和积累 (mathrm{BP}) 算法, 在西瓜数据集 (3.0) 上分别用这两个算法训练一个单隐层网络, 并进行比较.
《机器学习》西瓜书 第 3 章 编程实例
5.6
试设计一个 (mathrm{BP}) 改进算法, 能通过动态调整学习率显著提升收敛速度. 编程实现该算法, 并选择两个 (mathrm{UCI}) 数据集与标准 (mathrm{BP}) 算法进行实验比较.
简单描述一下, 就是一开始学习率比较高 (来更快逼近) , 然后学习率慢慢变小 (提高精度) ,
5.7
根据式 ((5.18)) 和 ((5.19)) , 试构造一个能解决异或问题的单层 (mathrm{RBF}) 神经网络.
《机器学习》西瓜书 第 3 章 编程实例
5.8
从网上下载或自己编程实现 (mathrm{SOM}) 网络, 并观察其在西瓜数据集 (3.0alpha) 上产生的结果.
《机器学习》西瓜书 第 3 章 编程实例
5.9*
试推导用于 (mathrm{Elman}) 网络的 (mathrm{BP}) 算法.
说实话这个问题太变态了, 不过上网搜索一番总算是差不多弄懂了, 我自己估计说不清楚, 所以推荐零基础入门深度学习(5) - 循环神经网络.
5.10
从网上下载或自己编程实现一个卷积神经网络, 并在手写字符识别数据 (mathrm{MNIST}) 上进行实验测试.
《机器学习》西瓜书 第 3 章 编程实例