本文作为对UFLDL的笔记


Supervised Learning and Optimization

Linear Regression

Problem Formulation

首先需要根据形式得到目标函数

$$J(\theta)=\frac{1}{2}\sum_i(h_\theta(x^i)-y^i)^2=\frac{1}{2}\sum_i(\theta^Tx^i-y^i)^2$$

Function Minimization

然后对目标函数进行优化, 可以采用如梯度下降的方法.
$$\frac{ {\partial}J(\theta)}{\theta_j}=\sum_ix_j^i(h_{\theta}(x^i)-y^i))$$

logistic regression

目标函数

$$J(\theta)=-{\sum}_i(y^ilog(h_{\theta}(x^i))+(1-y^i)log(1-h_\theta(x^i))$$

取决于$y^i$的01性, 实际上式只有一个项

梯度有

$$\frac{\partial J(\theta)}{\partial\theta_j}=\sum_ix_j^i(h_\theta(x^i)-y^i )$$

与线性回归的形式是一样的.

练习

实现logisitc损失目标函数和梯度的计算, 利用优化软件进行优化, 这里使用的0-1 mnist图片.

Vectorization

由于matlab的for很慢, 需要进行向量化

  X_norm = sqrt( sum(X.^2,1) );
  Y = bsxfun(@rdivide, X, X_norm);

注意bsxfun函数进行扩展计算.

$$\partial J(\theta) = X^T(y’-y)$$

梯度检查

可以用数值方法计算梯度来对理论计算出来的梯度进行正确性检查

$$g(\theta)=\frac{J(\theta+EPSILON)-J(\theta-EPSILON)}{2*EPSILON}$$

一般可以假设$EPSILON=e^{-4}$, 对于多变量, 可以一个一个的检查, 固定其他的变量不变, 只变一个变量$EPSILON$, 梯度检查函数的输入形式和优化函数基本一致.

$$g_i(\theta)=\frac{J(\theta^{i+})-J(\theta^{i-})}{2*EPSILON}$$

Softmax

对于softmax 其目标函数是

$$J(\theta) = -[\sum_{i=1}^m\sum_{k=0}^11{y^i=k}logP(y^i=k;x^i,\theta)]$$

梯度与线性模型类似.

softmax的性质

如果把每一个参数都减去一个固定的向量, 那么结果不会改变, 说明softmax的参数是存在多余成分的, 因此对于学习到的一组参数, 都减去一个固定的向量, 结果不会改变, 说明梯度下降的结果不会唯一.

由于减去一个参数不改变结果, 那么都减去最后一个向量, 就可以使得最后一组向量为0, 从而消去, 而不会影响任何结果. 因此在训练的时候可以固定一组全为0, 对其他组向量进行训练.

与logistic回归的关系

当$K=2$的时候, logistic就是softmax.

练习题

这次直接对MNIST数据的全部类进行训练, 同样只需要进行目标函数和梯度的计算即可.

sub2ind 与 bsxfun命令进行加速

偏差与方差

注意在训练集中得到的准确率一般来说是一个上限, 因为我们是针对这个训练集得到的模型, 所以结果对于测试集在结果上会有问题.

有监督神经网络

主要讲了神经网路及BP算法

注意多分类问题实际上就是转换成了one-hot形式进行计算!

BP神经网络的关键是记录入值, 出值, 然后是反向时候的误差$\delta$

自编码神经网络

用来无监督学习自己, 从而学习数据的低维表示.

引入稀疏性来使得很多的神经元不被激活(比如接近1输出的时候才让它激活), 从而可以进行稀疏性限制.

相对熵KL, 实际上是一个以$\rho$和$\hat{\rho}$分别为均值的伯努利分布随机变量之间的相对熵. 用来测量两个分布之间的差异. 最小化相对熵可以使得一个随机变量接近想要的分布.

$$J_{sparse}(W,b)=J(W,b)+\beta\sum_{j=1}^{s_2}KL(\rho||\hat{\rho})$$

该稀疏性限制只需要在反向传播的时候对$\delta$多加一点东西就可以了, 此时需要保留神经元的激活度$\hat{\rho}$

$$\delta_i^2=(\sum_{j=1}^{s_2}W_{ji}^2\delta_j^3)f’(z_i^2)$$

改成

$$\delta_i^2=(\sum_{j=1}^{s_2}W_{ji}^2\delta_j^3+\beta(-\frac{\rho}{\hat{\rho}}+\frac{1-\rho}{1\hat{\rho}}))f’(z_i^2)$$

可视化

可以把隐藏单元看成想要追寻的一个特征, 对什么样的图像有最大的激励, 那么其追寻的图像就是其代表的特征.