简单介绍

感知器有一个问题,当面对的数据集不是线性可分的时候,『感知器规则』可能无法收敛,这意味着我们永远也无法完成一个感知器的训练;比如异或运算,你无法通过一条直线把分类0和分类1分开
深度学习入门(二)- 线性单元和梯度下降 - 图1

为了解决这个问题,我们使用一个可导的线性函数来替代感知器的阶跃函数,这种感知器就叫做线性单元;线性单元在面对线性不可分的数据集时,会收敛到一个最佳的近似上,线性单元如图所示:
深度学习入门(二)- 线性单元和梯度下降 - 图2

线性单元将返回一个实数值而不是0,1分类,因此可以看出,线性单元是用来解决回归问题而不是分类问题

回归问题和分类问题区别

回归问题通常是来预测一个值,比如预测房价、预测天气气温等,比如期望的输出值为500,而实际输出值为499.99,我们可以认为这是一个表现不错的回归分析。一个比较常见的回归算法是线性回归算法(LR)。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的,而是直接对前一层累加即可。回归是对真实值的一种逼近预测

分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归,或者叫逻辑分类。

线性单元的目标函数

在监督学习下,对于一个样本,我们知道它的特征,以及标记。同时,我们还可以根据模型计算得到输出。注意这里面我们用表示训练样本里面的标记,也就是实际值;用带上划线的表示模型计算的出来的预测值。我们当然希望模型计算出来的和越接近越好

数学上有很多方法来表示的和的接近程度,比如我们可以用和的差的平方的来表示它们的接近程度:
image.png
我们把叫做单个样本的误差。至于为什么前面要乘,是为了后面反向求导计算方便

训练数据中会有很多样本,比如N个,我们可以用训练数据中所有样本的误差的和,来表示模型的误差E,也就是:
image.png
其中:
image.png
Xi表示第i个训练样本的特征,yi表示第i个样本的标记,y^i则是模型对第i个样本的预测值

我们最终希望E的值越小越好,这在数学上称为优化问题,E(w)就是我们优化的目标,称之为目标函数

梯度下降优化算法

梯度下降实际上就是一个找函数的最小值问题:
深度学习入门(二)- 线性单元和梯度下降 - 图6
梯度下降公式如下,其中n表示learning-rate,为一个比较小的正数:
image.png
这里可能会有个疑问,为什么通过这个公司,可以保证每次修改x的值都是朝函数最小值的那个方向前进呢?这是因为我们每次都是向函数y=f(x)的梯度相反方向来修改的x。比如在最小值左侧,梯度值是负数,所以Xnew是要增加的,而按照公式而言,Xnew确实是增加;而在最小值右侧,梯度值是整数,所以Xnew是要减少的,而按照公式而言,Xnew确实也是减少的;

对于学习率,可以看成是步长,每次更新值的速率;我们可以看成是从山顶下山的过程,如果步子迈的太小,画的时间越多;步子买的太大,就可能会在临近山底的时候又跨越到了另一边(当然,现实生活中没有这么傻的情况出现)

可以看出,梯度更大的作用是用来确定方向的

运用到前述的目标函数,梯度下降的公式为:
image.png
image.png

公式推导

image.png
首先:
image.png
我们知道,y是常数,而y^=W^T * x,通过链式求导法则进行求导:
image.png
分别计算得到如下结果:
image.png
最终得到结果为:
image.png