【说在前面】

1.只是知道算法和数学,而不知道如何将算法实际运用于你所关心的问题并不是一件好事。

2.花点时间做些有关算法每个步骤的练习,看看你能否理解它们是如何工作的。

【机器学习定义】

不用精确编程也能让计算机有能力学习的研究领域(Arthur Samuel,older, informal)

从经验中学习关于某些类别的任务T和表现度量P,并且在做任务T时,在P标准的衡量下,提高了对经验的学习的计算机程序。(Tom Mitchell,modern)

Example: playing checkers.
E = the experience of playing many games of checkers
T = the task of playing checkers.
P = the probability that the program will win the next game.
分类:有监督和无监督学习,强化学习、推荐系统……
 
监督学习:给算法数据集,也给它正确答案
回归问题中,尝试预测连续输出值,回归指尝试预测连续的值属性
分类问题中,尝试预测离散输出值0或1,有时候我们会有不只两个可能的输出值(有多个类的情况)
eg.存货市场预测:公司接下来一周会破产吗(通过对同类有破产风险的公司的数据进行分析)是回归还是分类?
是分类问题!
 
无监督学习:处理我们未标记或很少标记结果的问题
从数据获取结构,不一定要知道变量的效果,也没有基于预测结果的反馈

聚类:收集一百万种基因,找到自动分类相似基因(如依据寿命、位置、功能等)的方法

非聚类:”Cocktail Party Algorithm”帮助我们在混乱的环境里找到结构

从鸡尾酒派对杂乱的声音堆里找到单独的声音和音乐

 

 

【模型表示】

回归问题:连续值如预测房价

分类问题:离散值如预测一个住所是房子还是公寓

【代价函数】Cost Function

均方误差Squared error function/Mean squared error

用途:衡量预测的准确性(利用预测结果与实际输出)

 

 

 【直觉Ⅰ】

尝试最小化代价函数:选择最恰当的theta使J最小

 

 【梯度下降】

 

 

 

 

 

 如果再在某个方向迈出小小的一步,并且希望下山越快越好,应该在哪个方向迈步呢?

 

 

 

 有两种方法可以到两个局部最优处

 此外对于每一个j,需要同时更新参数(非常重要!!!)

 

 

 

 【梯度下降的直觉】

 

斜坡是负的,theta1的值增加

斜坡是正的,theta1的值减少

 

 α即学习率太小,梯度下降很慢

α太大,梯度下降很快,但也许无法收敛,甚至发散!

所以需要调整α,确保梯度下降算法在合适的时间收敛

无法收敛或收敛太慢都说明做错了(α值错了)

 到局部最小处,梯度下降自然会缩小步子,不需要随时间增加α

【线性回归的梯度下降】

 

 

 

 梯度下降可能受局部最优解的影响,而这里最优化问题只有一个全局而没有其他局部最优解,所以梯度下降总是可以收敛到全局最优解

α是固定的也可以收敛!

对于线性回归里特殊的损失函数的特殊形式,依然没有局部最优解

 

 

 

 

 这是一张(等高线?)图,显示了theta的收敛过程