1.
感知器有一个问题,当面对的数据集不是线性可分的时候,『感知器规则』可能无法收敛,这意味着我们永远也无法完成一个感知器的训练。为了解决这个问题,我们使用一个可导的线性函数来替代感知器的阶跃函数,这种感知器就叫做线性单元。线性单元在面对线性不可分的数据集时,会收敛到一个最佳的近似上。这样替换了激活函数之后,线性单元将返回一个实数值而不是0,1分类。因此线性单元用来解决回归问题而不是分类问题。
——参考:https://www.zybuluo.com/hanbingtao/note/448086
2.
梯度是一个向量,它指向函数值上升最快的方向。
——参考《高等数学》
3.
每次更新,要遍历训练数据中所有的样本进行计算,我们称这种算法叫做批梯度下降(Batch Gradient Descent)。每次更新,只计算一个样本,称这种算法叫做SGD算法。BGD算法计算量大,SGD算法效率高。
红色是BGD的逼近曲线,而紫色是SGD的逼近曲线。由于样本的噪音和随机性,SGD每次更新w并不一定按照减少E的方向,但总体上仍然是向最低点逼近的。
随机性有时候反而是好事。目标函数是一个『凸函数』,沿着梯度反方向就能找到全局唯一的最小值。然而对于非凸函数来说,存在许多局部最小值。随机性有助于逃离某些很糟糕的局部最小值,从而获得一个更好的模型。
——参考:https://www.zybuluo.com/hanbingtao/note/448086
4.
事实上,一个机器学习算法其实只有两部分:
模型:从输入特征x预测输出y的那个函数h(x)
目标函数:训练数据中所有样本的误差的和,是w的函数
因此,如果想最简洁地介绍一个算法,列出这两个函数就行了。
——参考:https://www.zybuluo.com/hanbingtao/note/448086
N.
那么深层网络和浅层网络相比有什么优势呢?简单来说深层网络能够表达力更强。事实上,一个仅有一个隐藏层的神经网络就能拟合任何一个函数,但是它需要很多很多的神经元。而深层网络用少得多的神经元就能拟合同样的函数。也就是为了拟合一个函数,要么使用一个浅而宽的网络,要么使用一个深而窄的网络。而后者往往更节约资源。深层网络也有劣势,就是它不太容易训练。简单的说,你需要大量的数据,很多的技巧才能训练好一个深层网络。这是个手艺活。
——参考:https://www.zybuluo.com/hanbingtao/note/433855
原文地址:https://www.cnblogs.com/ratels/p/11419001.html