机器学习笔记-01
机器学习实际上就是试图用算法实现AI模拟人类大脑的学习方式。主要分为监督学习(Supervised learning)和无监督学习(Unsupervised learning)。其中监督学习就是我们教计算机做某件事情,无监督学习就是让计算机自己学会做某件事情。
假设函数(Hypothesis Function)、代价函数(Cost Function)、优化目标(Goal)表达式如图所示
代价函数相当于是计算误差的函数。
ps:代价函数之所以要平方是为了保证“正”,除二是为了求导求最小值的时候方便计算。
线性回归的优化目标:求出代价函数的最小值也就是计算出最小的代价—>找到使代价函数最小的
θ
1
θ_1
θ1和
θ
0
θ_0
θ0。
梯度下降算法:将代价函数J最小化的一个算法,不止可以用在线性回归上,还被广泛用于机器学习的众多领域去最小化其他函数。
梯度下降过程:选一组
θ
1
θ_1
θ1和
θ
0
θ_0
θ0开始,以这个值为标准不断更改
θ
1
θ_1
θ1和
θ
0
θ_0
θ0减少代价,直到找到最小值。
梯度是方向导数的最小值,不是单纯求偏导。
梯度下降的定义如下:
其中α是学习率(learning rate),用来控制梯度下降时,我们迈多大步子。如果α很大,梯度下降速度就很快;α很小,梯度下降速度就很慢。
如果α太大,可能会导致无法收敛甚至发散。
注意:在这个算法中,
θ
1
θ_1
θ1和
θ
0
θ_0
θ0是在不断更新的。(同步更新)
同步更新的步骤不能乱!!!!一定要先求完两个偏导再赋值更新。
可能结果一样但是这种就不叫梯度下降算法而是其他的算法了。
线性回归:平方差代价函数加上梯度下降算法形成了线性回归模型,可以用直线拟合数据。
求完偏导简化了也就是:
Batch梯度下降:每一次梯度下降都遍历了整个训练集的样本。
梯度下降算法比起正规方程组解法更适用于更大的数据集。
总的来讲,我们要输出的是假设函数,假设函数是预测某个趋势或者数值的函数。代价函数是用来看假设函数输出的值与真实值的差距,梯度下降算法是求出满足最小代价函数的参数值也就是得出最符合现实的假设函数。