1.核函数的作用
激活函数、核函数(kernel method,kernel trick)是机器学习中一种重要的方法。一般定义是将原始表达转换到一个隐式特征空间去,该空间具有更好的特征可分性质。
在机器学习中,(一层线性卷积结构+一层核函数)*N的特殊结构,能拟合任何函数的原因。但如果只有N层的线性结构,那最后的组合还是线性结构,就相当于以前的感知机(perceptron)。使得类似神经网络结构从线性变成非线性的,就是每一层后加的核函数/激活函数。
在普通优化问题中,为了抑制outlier对结果影响太大,往往需要加一个核函数,来禁止或降低那些离散点对最终结果的影响。
从上边我们可以看出,核函数的作用,是将原始结果空间映射到一个新的输出空间,在这个映射过程中可以进行滤波,转换后的空间具有更好的特征可分性质。
一些概念
回归分析(regression analysis):找到自变量和因变量之间的关系。回归,就是测量一些独立自变量变化下因变量的平均值。回归模型的价值函数往往是一个值。回归方式有很多种,比如线性回归,逻辑回归。
线性回归是用自变量线性组合的方式去拟合输出,从而得到一个比较好的线性模型。
逻辑回归处理二分类问题,输出只有两种可能:是,不是;能,不能;做,不做…….。逻辑回顾会使用一个将原始结果映射到只有两个可能性的逻辑空间,最后得到的模型相当于一个边界,将输入分成2个部分。如二分类的softmax和二分类的SVM,都是常用的逻辑回归方法。
分类
分类重预测结果。分类模型的价值函数往往得到几个可能性,找出可能性最大的那个结果。
为了便于理解,我们以下只讲分类问题,认为所有结果是Nx1维的向量,其中正确结果为 [0,0...,0,1,0,...,0]T(1的位置是第i位) [ 0 , 0... , 0 , 1 , 0 , . . . , 0 ] T ( 1 的 位 置 是 第 i 位 )
2.Sigmoid函数
Sigmoid函数其实是一类函数。顾名思义,是指这一类函数都是S曲线的。它们都是将输入映射到[0,1]或[-1,1]这个区间上。
2.1 logistic function
常见的有sigmoid logistic function(以下简称此为sigmoid函数),它的输出可以表示概率(毕竟0-1)
对它求导:
对应图:
优点:[0,1]区间;类似神经元的放电饱和现象。
缺点:
随着输入增大,输出迅速减少,造成梯度饱和(梯度消失)现象;为了避免饱和,初始w时必须很小心地初始化以使得wx的值不会太大。
输出不是以0为中心(输出可能作为其他层的输入,对于所有输入,应该满足零均值化)
此外,exp计算量比较大。
3.4 tanh函数
tanh函数的真实面目是缩放后的sigmoid函数:tanh(x)=2σ(2x)−1
优点:零均值化,[-1,1]之间
缺点:饱和问题,当x太大时梯度消失。
但
而ReLU就是解决这种情况的。
3.深度神经网络中用到的激活函数举例
3.1Relu(Rectified Linear Unit)**;
此处的 Δ Δ 可以称为hinge loss(max-margin loss),是为了避免噪声对结果的影响,多分类中,正确类别的score必须超过错误的类别至少 Δ Δ ,才能使得对应的loss为0。这使得结果更加鲁邦。
优点:ReLu求导很好求解,且没有梯度消散的问题;相比指数运算,计算量更少。
缺点:
非零均值化。求导时,只有正方向会update,负方向不会update。
3.2 Leaky ReLU
解决ReLU负方向不update的缺点。其中a值一般设为比较小,比如0.01。但a怎么设置以及这样设置的效果却不稳定;有人将其设为每个神经元自带的个性化参数,但这种方式的效果尚待进一步观察。
3.3 Exponential Linear Units (ELU)
优点是:分布更接近于0,某种程度上达到了batch normalization的效果。ELU的提出者发现增加batch normalization对ELU没有什么效果,并且ELU>batch normalization+Relu。
但指数运算量比较大
3.4 Maxout