1. ML Lecture 0-1- Introduction of Machine Learning
(1)structured learning
结构学习指的是输入和输出都是具有结构化的对象(数列、列表、树、边界框等)。在之前的学习中,输入和输出都是向量。然而在现实生活中,我们需要解决的问题并不都是此类问题。因此我们需要一个更加强大的函数-其输入输出都是对象,而对象可能是序列、列表、树或者是边界盒等等。举例来说,对于语音识别,其输入输出都是序列。例如:
(2)reinforcement learning
2.ML Lecture 1- Regression - Case Study
视频损坏,无法查看
3.ML Lecture 1- Regression - Demo
(1)Adagrad
设置不同的lr更新的时候使用的是
也就是对不同的参数给予不同的学习率,也就是Adagrad:
其中,g是偏微分,
优化后得到:
其实,Adagrad的分母近似代表了二次微分。
(2)stochastic gradient decent
如果选取20个examples,那么同一时间比原先的梯度下降快20倍。
4.ML Lecture 2- Where does the error come from
简单的model-variance小/bias大,复杂的model-variance大/bias小:因为简单的model受到不同的data的影响小。最直接的:function=c,受到data的影响最小。简单的model的空间是比较小的,function set里面没有包含target。如果error来自于variance很大,就是overfitting,如果error来自bias很大,则就是underfitting。
如果一个模型连训练数据都不能fit,那么就是bias大,也就是underfitting,那么就需要design新的更复杂的model。如果在训练数据上得到小的error,但是在测试数据上有比较大的error,那就是variance大,也就是过拟合。,那么需要 (1)增加data,但是有可能不是很容易实现–数据增强。(2)regularization,但是有可能会改变bias。
怎么选择model–cross validation:
一般training set上训练好的,在testing set上结果较好的不一定在real testing set上结果好。因此一般将training set分成一个mini training set和validation set,在training set上训练,用validation set选择model,这样选择得到的model更具有泛化性。选定model之后,可以用未分割的training set继续训练model。–> N fold cross validation
5.ML Lecture 3-1- Gradient Descent
(1)feature scaling
为什么要做feature scaling:因为如下图,不同特征不一样的话对loss函数的贡献度不一样,那么在梯度下降的时候就要给不同的特征赋予不同的lr。但是feature scaling之后,就可以直直的梯度下降到最低点中心。
怎么做feature scaling:方法很多,视频中提到这种最直接的方法:
(2)梯度下降的限制
卡在微分值是0的地方:
梯度下降会停在微分值是0的地方。但在实践中,我们经常设置一个阈值,如果小于这个阈值我们就停下来(plateau),但是那个点其实是高原,这是梯度下降的限制。
6.ML Lecture 4- Classification
这篇比较长。有时间返回再看一下
7.ML Lecture 5- Logistic Regression
8.ML Lecture 6- Brief Introduction of Deep Learning
(1)Q:怎么确定神经网络的层数和神经元数量?A:直觉、经验和尝试
(2)神经网络架构可以自主学习。
9.ML Lecture 7- Backpropagation
利用**链式法则(chain rule)**进行反向传播:
forward pass:
backward pass:
假设这两项已经知道了:
所以backward pass:
所以最终的求微分:
10.ML Lecture 8-1- “Hello world” of deep learning
11.ML Lecture 9-1- Tips for Training DNN
(1)激活函数也可以进行学习:
maxout network可以做出relu的效果:
那么maxout network的训练过程是什么:
(2)优化策略RMSProp
可以给现在看到的gradient比较大的weight,给过去的gradient比较小的weight。
(3)动量更新-解决local minimum
太神奇了,我看到前面的课程的时候就在想怎么让石头滚向global minimum,然后想到了动量。后面就讲了。