Introduction to Deep Learning week 1

这一周开始学习Coursera Advanced Machine Learning 专项课程,这个专项课程一共由7门课,后续应该会学习完,每周会整理一些笔记,下面进入第一门课Introduction to Deep Learning第一周的内容回顾,第一周的内容主要是为神经网络的学习做铺垫。

Linear regression

这部分非常熟悉了,直接给出公式

衡量这个模型需要用到平方误差损失函数(Mean squared error,简称MSE):

求$L(w)$最小值对应的$w$,利用导数可得

当数据量很大的时候,这个方法就不可取了,因为计算矩阵的逆需要大量计算,后面会给出更好的方法。

总结
  • 线性模型很简单
  • 可以利用MSE作为误差函数
  • 线性模型有一个解析解,但我们需要更通用的和可扩展的学习方法

Linear model for classification

对于二元分类,可以用如下线性模型

对于多元分类,可以利用如下方式

准确率为

但是这个函数不可微,所以需要更好的评价函数,这里先看下softmax transform:

我们要利用$\sigma(z)$来估计分类的概率

对于这种相似度,我们可以利用交叉熵(cross entropy)来评估,计算公式如下:

如果考虑全部数据,那么损失函数为:

总结
  • 线性模型可以很好地完成分类任务
  • 分类问题有很多损失函数
  • 交叉熵是最常用的损失函数

Gradient descent

现在要找到$L(w)$的最小值,可以利用梯度下降法:

对于线性回归问题,之前给出了解析解,但是也说过当数据量增加时并不实用,而梯度下降法可以用于解决线性回归问题。

总结
  • 梯度下降法提供了一个通用的学习框架
  • 梯度下降法可以用来解决分类以及回归问题

Overfit

过拟合问题就是得到的模型太复杂,在训练集上表现很好,但在实际应用时表现很差。可以将数据分为训练集以及测试集来解决这个问题,选择在训练集以及测试集上表现都很好的模型,具体有如下两种常用的方法:

总结
  • 参数太多模型容易过拟合
  • 过拟合的模型只记得训练的目标值但没有一般化
  • 可以使用Holdout set或cross-validation来估算模型对新数据的表现

Regularization

Regularization也是解决过拟合的一个方法,一般使用如下的形式:

比较常用的正规项有$L_2$正规项:

$L_2$正规项会使得很多权重趋近于$0$

$L_1$正规项也很常用:

$L_2$正规项会使得很多权重为$0$

总结
  • 应该限制模型复杂性以防止过拟合
  • 常用方法:惩罚大的权重

Stochastic gradient descent and Mini-batch gradient descent

当数据量太大的时候,Gradient descent也会碰到计算量太大的情形,所以有人提出在计算梯度的时候只计算一小部分数据的梯度,只计算一个数据的梯度时就是Stochastic gradient descent:

如果取一小部分数据,那么就是Mini-batch gradient descent

注意$\eta_t$被称为学习率,它非常重要,但是很难选择。

总结
  • 对于大型训练集,Gradient descent是不可行的
  • Stochastic gradient descent和Mini-batch gradient descent加速了训练过程
  • 学习率很难选择

Gradient descent extensions

这里介绍一些梯度下降算法的延伸

Momentum

简单来说,每一次更新会记住一部分上次的更新值,可以通过下图理解

AdaGrad
RMSprop

还有几个公式比较复杂,暂时略过。

总结

这部分主要是回顾一些算法,其实很多我也不太清楚,感觉后续有需要可以仔细研究下。