今天开始写吴恩达机器学习的学习笔记。课程的第一部分是类似于引言的东西,故笔记略过。
第二部分内容算是机器学习的正式入门,老师讲解了一个算法实例:梯度下降线性回归。通过其讲解数学原理,总览了机器学习的工作流程和核心思想。
本笔记将不按照课程顺序编排,而是将这一部分功能按模块划。
//个人水平有限,我的所有笔记内容仅供参考,具体内容还请以课程为准。另外如有错误,还望大佬指出,我立刻更正。
#课程中一些符号的意义
- m:样本总数
- x:输入数据
- y:输出变量
- (x(i),y(i)):表示第i个样本
2 梯度下降线性回归:Batch梯度下降
2-1使用的模型
- 线性模型(称为假设函数)
2-2评价拟合的好坏:代价函数
- (称其为平方代价函数)
- 代价函数用于评价模型与数据拟合的优劣程度
- 机器学习的目标:使代价函数尽量小
2-3优化的方法:梯度下降算法
算法思想
- 目标:最小化代价函数J(在今后会广泛运用这种方法)
- 工作流程:
设置的值(常设置成0、0)
不断改变使代价函数减小,直到一个较为理想的值
数学原理:
解释
:= 表示赋值
:
- 学习率,控制每次参数更新的幅度(一定为正)
- 如果该值太小,则更新的速率过慢。如果该值太大,则有可能会跳过最小值点,不能得到较好的结果,甚至不收敛。
- 随着靠近最小值点,导数值会越来越接近于0,参数更新的幅度自然变下,所以可以不用更新的值。
:
- 代价函数的导数。
- 作用: 判读参数更新的方向(增大还是减小)
如:在某点导数小于0,根据公式应该增大,从而使代价函数减小。 - 当达到局部最小位置时,该值为0,参数会停止更新
2-4 最终整合整合:将梯度下降算法应用于优化,使代价函数最小
- 选择的初始值(可以随便选择)
- 使用梯度下降算法(课程中使用的是)
- 这个例子中的代价函数没有局部最优解,只有一个全局最优解,故总是会收敛到此处
- 注意: 当更新参数时,要求使用旧的一组参数,将所有参数全部更新。而不是更新完后使用新的更新