神经网络基础
神经网络的计算过程中,通常有一个正向过程(正向传播步骤)计算损失函数,接着会有一个反向过程(反向传播步骤)计算神经网络中损失函数对各参数的梯度,配合优化方法更新参数,降低损失函数。
1. 二分分类
对于二分分类问题,其目标是训练出一个分类器。它以特征向量 xxx 作为输入,预测输出的结果标签 yyy(1或者0)。
用(x,y)(x,y)(x,y)表示一个单独的样本,其中,x∈Rnxx \in {R^{n_x}}x∈Rnx,nxn_xnx为特征值的个数,y∈{0,1}y \in\{0,1\}y∈{0,1}。训练集(training sets)由mmm个训练样本构成——{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{({x^{(1)}},{y^{(1)}}),({x^{(2)}},{y^{(2)}}),...,({x^{(m)}},{y^{(m)}})\}{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}。
2. 逻辑回归
一种用在输出为0和1的二分分类问题的监督学习中的学习算法。其目标为最小化预测值与训练值之间的误差。
给出特征向量x∈Rnxx \in {R^{n_x}}x∈Rnx以及逻辑回归的参数w∈Rnxw \in {R^{n_x}}w∈Rnx和b,旨在得出一个预测值y^=wTx+b\hat{y} =w^{T}x+by^=wTx+b(y^\hat{y}y^是一个概率,y^=P(y=1∣x)\hat{y} =P(y=1|x)y^=P(y=1∣x))。为使0≤y^≤10\leq\hat{y}\leq10≤y^≤1,令y^=σ(wTx+b)\hat{y} =\sigma(w^{T}x+b)y^=σ(wTx+b),其中,σ(z)=11+e−z\sigma(z)=\frac1{1+e^{-z}}σ(z)=1+e−z1。
给出{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{({x^{(1)}},{y^{(1)}}),({x^{(2)}},{y^{(2)}}),...,({x^{(m)}},{y^{(m)}})\}{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},为了训练参数w和b,使得:y^(i)≈y(i)\hat{y} ^{(i)}\approx y^{(i)}y^(i)≈y(i),需要定义一个损失函数,且使得该损失函数最小。
2.1 Loss(Error)function
被用作衡量单个训练样本的误差。L(y^,y)=−[ylog(y^)+(1−y)log(1−y^)]ℒ(\widehat y,y)=-\lbrack y\log(\widehat y)+(1-y)\log(1-\widehat y)\rbrackL(y,y)=−[ylog(y)+(1−y)log(1−y)]
2.2 Cost function
计算整体训练集的平均损失。最终需要找到使J(w,b)J(w,b)J(w,b)最小的参www和bbb。J(w,b)=1m∑i=1mL(y^(i),y(i))=−1m∑i=1m[y(i)log(y^(i))+(1−y(i))log(1−y^(i))](凸函数)J(w,b)=\frac1m\sum_{i=1}^mℒ(\widehat y^{(i)},y^{(i)})=-\frac1m\sum_{i=1}^m\lbrack y^{(i)}\log(\widehat y^{(i)})+(1-y^{(i)})\log(1-\widehat y^{(i)})\rbrack(凸函数)J(w,b)=m1i=1∑mL(y(i),y(i))=−m1i=1∑m[y(i)log(y(i))+(1−y(i))log(1−y(i))](凸函数)
使得损失函数最小,获得回归系数的算法有:
- 梯度下降法
- 牛顿迭代算法
- 拟牛顿迭代算法(BFGS算法和L-BFGS算法)
2.3 梯度下降法
为得到最小的损失函数值,对w求偏导,并使其偏导为0,然后用随机梯度下降法求解方程组。梯度下降w的更新过程,走梯度方向的反方向:
θj:=θj−αδJ(w)δw{\mathrm\theta}_\mathrm j:={\mathrm\theta}_\mathrm j-\mathrm\alpha\frac{\mathrm{δJ}\left(\mathrm w\right)}{\mathrm{δw}}θj:=θj−αδwδJ(w)
α\alphaα代表学习率,学习率可以控制每一次迭代或者梯度下降法中的步长。
其中:
δδwJ(w)=−1m∑i=1m(y(i)1y^(i)δδwy^(i)−(1−y(i))11−y^(i)δδwy^(i)) \frac{\mathrm\delta}{\mathrm{δw}}\mathrm J\left(\mathrm w\right)=-\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m(\mathrm y^{(\mathrm i)}\frac1{\widehat{\mathrm y}^{(\mathrm i)}}\frac{\mathrm\delta}{\mathrm{δw}}\widehat{\mathrm y}^{(\mathrm i)}-(1-\mathrm y^{(\mathrm i)})\frac1{1-\widehat{\mathrm y}^{(\mathrm i)}}\frac{\mathrm\delta}{\mathrm{δw}}\widehat{\mathrm y}^{(\mathrm i)})δwδJ(w)=−m1i=1∑m(y(i)y(i)1δwδy(i)−(1−y(i))1−y(i)1δwδy(i))
=−1m∑i=1m(y(i)1y^(i)−(1−y(i))11−y^(i))δδwσ(wTxi)=-\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m(\mathrm y^{(\mathrm i)}\frac1{\widehat{\mathrm y}^{(\mathrm i)}}-(1-\mathrm y^{(\mathrm i)})\frac1{1-\widehat{\mathrm y}^{(\mathrm i)}})\frac{\mathrm\delta}{\mathrm{δw}}\sigma(w^{T}x^{i})=−m1i=1∑m(y(i)y(i)1−(1−y(i))1−y(i)1)δwδσ(wTxi)
=−1m∑i=1m[y(i)1y^(i)−(1−y(i))11−y^(i)]σ(wTxi)(1−σ(wTxi))δδwjwTxi=-\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m\lbrack\mathrm y^{(\mathrm i)}\frac1{\widehat{\mathrm y}^{(\mathrm i)}}-(1-\mathrm y^{(\mathrm i)})\frac1{1-\widehat{\mathrm y}^{(\mathrm i)}}\rbrack\mathrm\sigma(\mathrm w^\mathrm T\mathrm x^\mathrm i)(1-\mathrm\sigma(\mathrm w^\mathrm T\mathrm x^\mathrm i))\frac{\mathrm\delta}{{\mathrm{δw}}_\mathrm j}\mathrm w^\mathrm T\mathrm x^\mathrm i=−m1i=1∑m[y(i)y(i)1−(1−y(i))1−y(i)1]σ(wTxi)(1−σ(wTxi))δwjδwTxi
=−1m∑i=1m[y(i)(1−σ(wTxi))−(1−y(i))σ(wTxi)]xji=-\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m\lbrack\mathrm y^{(\mathrm i)}(1-\mathrm\sigma(\mathrm w^\mathrm T\mathrm x^\mathrm i))-(1-\mathrm y^{(\mathrm i)})\mathrm\sigma(\mathrm w^\mathrm T\mathrm x^\mathrm i)\rbrack\mathrm x_{{}^\mathrm j}^\mathrm i=−m1i=1∑m[y(i)(1−σ(wTxi))−(1−y(i))σ(wTxi)]xji
=−1m∑i=1m[y(i)−σ(wTxi)]xji=-\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m\lbrack\mathrm y^{(\mathrm i)}-\mathrm\sigma(\mathrm w^\mathrm T\mathrm x^\mathrm i)\rbrack\mathrm x_{{}^\mathrm j}^\mathrm i=−m1i=1∑m[y(i)−σ(wTxi)]xji
=1m∑i=1m[y^(i)−y(i)]xji=\frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m\lbrack\widehat{\mathrm y}^{(\mathrm i)}-\mathrm y^{(\mathrm i)}\rbrack\mathrm x_{{}^\mathrm j}^\mathrm i=m1i=1∑m[y(i)−y(i)]xji
因此,
θj:=θj−α1m∑i=1m[y^(i)−y(i)]xji\theta_j:=\theta_j-\alpha \frac1{\mathrm m}\sum_{\mathrm i=1}^\mathrm m\lbrack\widehat{\mathrm y}^{(\mathrm i)}-\mathrm y^{(\mathrm i)}\rbrack\mathrm x_{{}^\mathrm j}^\mathrm iθj:=θj−αm1i=1∑m[y(i)−y(i)]xji