尚未完成,持续更新中…

Lecture 5

Neural Network

线性分类器的局限

Linear Classifier能做的其实很有限,从Lecture 3的“几何视角”中,我们知道了线性分类相当于画了一个超平面来将超空间分类。然而并非所有情况下样本点都可以被一个平面简单的分割。

一种方法是对原有数据集做一些变换,使得线性分类器能够分割变换后的数据。

这种方法的确能取得不错的结果,只需要人工提取出数据集的一些特征,然后用这些特征来训练线性分类器。比如,对于图像分类,可以设计算法来提取图像的边缘、颜色、纹理等特征,然后用这些特征来训练线性分类器。同时,也有一些data-driven的方法可以用来提取特征。

但是这种方法的缺点也很明显,就是研究者必须知道哪一些特征变换对于分类是有效的。而神经网络解决了这个问题。

或许,神经网络只是将特征提取的步骤和训练的步骤融合在了一起。

从线性分类器到神经网络

神经网络其实只是线性分类器的叠加

  • Linear Score Function: f=Wxf=\boldsymbol{W}x
  • 2-layer Neural Network: f=W2σ(W1x)f=\boldsymbol{W_2}\sigma(\boldsymbol{W_1}x) (省略了bias项)

公式里的σ\sigma马上就会提到。

在Lecture 3中,有一种理解线性分类器的视角是把权重矩阵看作是若干个“模版”,而输出代表了图片和每个模版的相似度。

对于两层的神经网络,我们可以这样理解,把第一个权重矩阵看作是一个“模版仓库”,第二个权重矩阵可以自由组合这些模版,从而得到输出。如此一来,隐含层就代表了图片与每一个模版的相似程度,输出就代表了图片与某种模版的组合的相似程度。

之前线性分类器中的模版很容易看出到底是什么物体。但是图片左侧这些神经网络第一层的模版,有一些就不好辨认了。按照我的理解,在第一层的网络中,神经网络更倾向于学习更加基本的特征,这样才能在后续的层里面充分利用,组合这些特征,完成更加高级的任务。

激活函数

在刚刚的神经网络公式里,有一个σ\sigma函数,这个实际上就是神经网络的激活函数

激活函数对神经网络是必须的,假如一个神经网络 f=W2W1xf=\boldsymbol{W_2 W_1}x 没有激活函数,会怎么样?没错,他其实就退化成了一个线性分类器 f=(W2W1)xf=(\boldsymbol{W_2 W_1})x。我们白费力气地将两个线性分类器堆叠,然后得到了一个新的线性分类器。

激活函数给一大堆线性的矩阵中间加上了非线性的成分,让神经网络得以拟合非线性的函数。

常用的激活函数有这一些:

ReLU是深度学习中最常用的激活函数。

激活函数可以非线性地变换空间,使得线性不可分的点云转化成线性可分的点云。

万能近似定理(Universal Approximation Theorem)

万能近似定理(Universal Approximation Theorem)
单隐含层的神经网络可以拟合任意连续函数f:RnRmf: \mathbb{R}^n \rightarrow \mathbb{R}^m

其证明过程考虑了ReLU作为激活函数的情况,首先构造了一个“bump function”,这个函数在某个位置凸起,其他位置为0,通过线性地组合这个函数,可以拟合任何连续函数。

这样的证明有很多细节不严谨,http://neuralnetworksanddeeplearning.com/chap4.html中有更多的讨论。

Universal Approximation的确很cool,但其实只是一种数学上的构造,这个定理解决不了什么工程上的问题,如“我们是否能用SGD拟合这个函数”、“我们需要多少数据才能拟合这个函数?”等。它只是告诉我们有这样一组权值可以让神经网络拟合你想要拟合的函数,但是并没有告诉我们如何找到它。

并且,拟合任意函数看起来是一个很强大的性质,其实不然,简单如K-Means的算法都能做到万能近似。

凸优化

万能近似定理不能保证我们能否找到一组权值来最佳拟合,但是假如我们的目标函数是凸(convex)的,那么相关的理论可以保证,我们就能保证无论选取什么样的初始值,都能找到全局最优解。

线性分类器的优化问题就是一个凸优化问题。对于线性分类器,无论你使用SVM loss还是Softmax,L1正则化还是L2正则化,最终的目标函数都是凸的!这意味着线性分类器可以保证一定收敛到全局最优解,线性分类器的优化问题具有确定性。

然而,很遗憾的是,多层的神经网络并不具有这种性质,神经网络收敛到哪里依赖于随机初始化的值,或是优化的方法,神经网络不一定能收敛到全局最优解,可能陷入局部最优解,甚至不收敛。尽管在工程实践中神经网络取得了许多成功,神经网络的有效性并没有理论的保证,这仍然是一个相当活跃的研究领域。