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
还有几个公式比较复杂,暂时略过。
总结
这部分主要是回顾一些算法,其实很多我也不太清楚,感觉后续有需要可以仔细研究下。