stanford机器学习公开课视频,讲师 Andrew Ng:http://v.163.com/special/opencourse/machinelearning.html
一、 机器学习的定义:
1、Fields of study that gives the ability to learn without being explicitly programmed.(是研究不需要显示进行编程而具有学习能力的领域)。这里的显示编程是指由程序代码明确定义的行为,该定义强调了机器学习要源于程序而又摆脱程序代码的控制,要通过自身学习到程序以外的东西。
2、A computer program is said to learn from experience E with respect to some task T and some performance measure P if its performance on T, as measured by P, improves with experience E.(一个电脑程序只有当它由P衡量的表现T,能够跟随经验E的不断丰富而得到提高,这时才称这个程序具备学习能力。)该程序强调了机器程序随着外部环境不断变化的能力,这种能力让机器程序能够根据自己的经验而不断成长,最终提高了自身的表现。
二、机器学习的简单分类
Supervised Learning (监督学习,指训练样本为带标签样本的学习方法)
Unsupervised Learning(非监督学习,指训练样本不带标签的学习算法)
Reinforcement Learning(加强学习算法)
三、梯度下降
1、Gradient Discent ( Batch Gradient Discent) (梯度下降,也称为批梯度下降算法)
算法推到:记n维输入为x1,x2...xi.....xn,样本输出为y,共有m组数据,其中第j组数据记为:(xj,yj);
目标函数:Jw:
其中,h(xj)表示样本输入xj的实际输出;通过计算关于参数W的偏导数,不断更新W,直到算法收敛:
其中 符号:=表示赋值的意思。
2、stochastic Gradient Discent (随机梯度下降算法)
批梯度下降算法能够综合利用所有的训练样本,每次迭代都需要遍历m组样本,如果m值过大,将会限制该方法的使用。另一方面,批梯度下降很容易陷入局部最优的困扰。为了解决批梯度下降算法的一些缺点,随机梯度下降算法
被提出来:
随机梯度下降每次迭代时只取用一组数据,针对一组数据进行梯度计算,更新参数,再利用下一组数据。。。直到所有数据用完。。
梯度下降的算法伪代码如下:
for j=1 to m:
end
后续学习有待跟进,希望大家能够不吝指正,相互学习,共同提高!