李宏毅 机器学习(1)- 梯度下降、朴素贝叶斯、线性回归、逻辑回归

机器学习#副标题

Posted by renjie on May 26, 2020


李宏毅 机器学习(1)- 梯度下降、朴素贝叶斯、线性回归、逻辑回归

Lecture 1

Regularization:

让曲线更平滑,增加training error 但会减少test error.

regularization 可以让曲线平滑,降低variance

Adagrad

AdaGrad的基本思想是对每个变量用不同的学习率,这个学习率在一开始比较大,用于快速梯度下降。随着优化过程的进行,对于已经下降很多的变量,则减缓学习率,对于还没怎么下降的变量,则保持一个较大的学习率:

Lecture 2

bias variance, 718 讲过,略

Lecture 3 gradient descent

1:如何确定learningrate

画learning rate和loss的图确定learning rate

Adagrad方法

或者设置可调节的learning rate

adagrad

可以看出 , 如果跨参数,那么微分值越大不一定是离最低点越远,例如c的微分值大,a的微分值小,但是c距离最低点的距离比a大

所以最好的step还和二次微分有关,最佳的一步是一次微分的绝对值/二次微分

那式子中为什么不采用二次微分,而是之前微分平方和的根号呢,是因为二次微分计算量复杂,而用根号平方和的方法可以预估二次微分(如果数据点多的话)

ada系列的,adam最稳定

2:快速方法:stochastic gradient descent 随机梯度下降

相比于普通的gradient descent (用所有的sample 更新参数), stochastic gradient descent采用的是每次随机取样,根据那单个样品更新参数 相比于批量梯度,这样的方法更快,更快收敛,虽然不是全局最优,但很多时候是我们可以接受的

3: Feature Scaling

make different features have the same scaling

(scaling不一样,变动一点点w对某个feature可能对结果影响很大)

常用方法:标准化,减去mean然后除std

4. Gradient Descent 原理

泰勒级数

问题转换为 得出结果 因为让上式子成立,red circle要很小,也就是说learning rate必须足够小

考虑二次微分会更精确,但是在deep learning里我们无法承受这样大的计算量

5.Gradient Descent 限制

第一: local minimum,local minimum,local minimum!!!

第二:会卡在saddle point鞍点,微分值为0

最最容易遇到的是:在plateau上卡住了,特别慢

Lecture 4 Classification

如果用regression来硬做,可能会在decrese error的过程中,分错类

1. 朴素贝叶斯

朴素贝叶斯:先算 prior 概率,假设样品概率分布为正态分布

何为朴素naive:假设变量都是independent的

那怎么得到这个distribution:** maximum likelihood 极大似然估计** 找出一个分布,让sample点出现的概率最大,也就是找出这个likelihood 的function的最大值

为了避免overfitting,减少参数,可以让每个class共享一个 covariance matrix

2.数学部分

后验概率 这就是为什么boundary为线性的?

在这里咱们可以看到,我们费劲周折假设分布,估计这些参数,极大似然估计法等等,就是为了得出w和b,那么我们为什么不直接来算w和b呢?直接算的方法就是logistic regression

Lecture 5: Logistic Regression

cross entropy 两个distribution有多接近

然后gradient descent就好啦

为什么不能用最小二乘法的解释:

1、 multiclass

2. 线性回归和逻辑回归的区别:

神奇的是两者的更新function一样

** 逻辑回归得到的是判别模型,朴素贝叶斯得到的则是生成模型**

discriminative 一般表现比 generative好

数据量少的时候,assume一个分布可能会有优势,数据量多但是noise多的dataset,generative也能有优势

语音识别是discriminate的model,也就是dnn,但是语音识别的系统是generative的,因为这个系统要先有prior概率,也就是某句话说出来的频率,language model。

3、 逻辑回归的限制

如果feature space是非线性的,那很难做分类

解决办法就是feature transformation, 例如可以把feature转换为到某一个点的距离。

现在的问题是:feature transformation 很难做,很难找出这样的办法

那现在我们可以用串联逻辑分类器的方法进行featrue transformation

这! 就是神经网络!!! 下篇请见 deep learning 部分