今天开始写吴恩达机器学习的学习笔记。课程的第一部分是类似于引言的东西,故笔记略过。
第二部分内容算是机器学习的正式入门,老师讲解了一个算法实例:梯度下降线性回归。通过其讲解数学原理,总览了机器学习的工作流程和核心思想。
本笔记将不按照课程顺序编排,而是将这一部分功能按模块划。
//个人水平有限,我的所有笔记内容仅供参考,具体内容还请以课程为准。另外如有错误,还望大佬指出,我立刻更正。

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数


#课程中一些符号的意义

  • m:样本总数
  • x:输入数据
  • y:输出变量
  • (x(i),y(i)):表示第i个样本

2 梯度下降线性回归:Batch梯度下降

2-1使用的模型

  • 线性模型(称为假设函数)

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习笔记 吴恩达 github_02

2-2评价拟合的好坏:代价函数

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_梯度下降_03

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习_04

  • (称其为平方代价函数)
  • 代价函数用于评价模型与数据拟合的优劣程度
  • 机器学习的目标:使代价函数机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_05尽量小

2-3优化机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_梯度下降_06的方法:梯度下降算法

算法思想

  • 目标:最小化代价函数J(在今后会广泛运用这种方法)
  • 工作流程:
    设置机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习笔记 吴恩达 github_07的值(常设置成0、0)
    不断改变机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习笔记 吴恩达 github_07使代价函数减小,直到一个较为理想的值

数学原理:机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_梯度下降_09

解释

:= 表示赋值
机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_10
  • 学习率,控制每次参数更新的幅度(一定为正)
  • 如果该值太小,则更新的速率过慢。如果该值太大,则有可能会跳过最小值点,不能得到较好的结果,甚至不收敛。
  • 随着靠近最小值点,导数值会越来越接近于0,参数更新的幅度自然变下,所以可以不用更新机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_11的值。
机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习_12
  • 代价函数的导数。
  • 作用: 判读参数更新的方向(增大还是减小)
    如:在某点导数小于0,根据公式机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习笔记 吴恩达 github_13应该增大,从而使代价函数减小。
  • 当达到局部最小位置时,该值为0,参数会停止更新

2-4 最终整合整合:将梯度下降算法应用于优化机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_梯度下降_06,使代价函数最小

  1. 选择机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习笔记 吴恩达 github_07的初始值(可以随便选择)
  2. 使用梯度下降算法(课程中使用的是机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习_16

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_17

机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_18

  • 这个例子中的代价函数没有局部最优解,只有一个全局最优解,故总是会收敛到此处
  • 注意: 当更新参数时,要求使用旧的一组参数,将所有参数全部更新。而不是更新完机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习_19后使用新的机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_机器学习_19更新机器学习笔记 吴恩达 github 吴恩达机器学课程笔记_代价函数_21