吴恩达ML课程自用笔记(1)

机器学习定义

计算机程序从经验(experience) E 中学习解决某一任务(task) T 进行某一性能度量(performance) P,通过P测定在T上的表现因经验E而提高。

机器学习分类

  • 监督学习(Supervised learning)
  • 无监督学习(Unsupervised learning)
  • 其他:
    加强学习(reinforcement)
    推荐系统(recommender systems)

监督学习

监督学习就是给出算法一个数据集,其中包含了正确答案。
每个样本都有正确的答案(标签)。
通过算法预测的出正确答案。

  1. 回归问题:预测一个连续值输出
    比如:房价预测
  2. 分类问题:预测离散值输出
    比如:癌症预测

无监督学习

无监督学习给的数据集中样本没有任何标签,不知道要拿他做什么,也不知道每个数据点究竟是什么,只被告知有一个数据集,找出他们的某种结构。
无监督学习算法可能判定该数据集包含两个不同的簇。

  1. 聚类算法:将数据分为不同的簇
    比如:市场划分,天文数据分析

线性回归算法模型

1. 线性回归平方差代价函数

预测一个 real-valued 输出,

Note:
m m m:训练样本数量
x x x:输入变量/特征
y y y:输出变量/目标变量
( x , y ) (x, y) (x,y):一个训练样本
( x ( i ) , y ( i ) ) (x^{(i)}, y^{(i)} ) (x(i),y(i)):第 i i i 个训练样本

假设函数
h为假设函数
h θ ( x ) = θ 0 + θ 1 x h_\theta(x) = \theta_0 + \theta_1 x hθ(x)=θ0+θ1x
线性方程整体目标函数:
1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{1}{2m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2 2m1i=1m(hθ(x(i))y(i))2
参数
θ 0 , θ 1 \theta_0 , \theta_1 θ0,θ1
代价函数:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0, \theta_1) = \frac{1}{2m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
目标:
最 小 化 J ( θ 0 , θ 1 ) 最小化J(\theta_0 , \theta_1) J(θ0,θ1)
在这里插入图片描述
选用平方差代价函数也许是解决回归问题最常用的手段

2. 线性回归代价函数J最小化的梯度下降法

Outline:

  • 给定 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1
  • 持续改变 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1的值去减小 J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1),直到找到 J J J的最小值或者局部最小值
    在这里插入图片描述

算法描述:

repeat until convergence{
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1) θj:=θjαθjJ(θ0,θ1)  (for j = 0 and j = 1)
}

repeat until convergence{
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)}) θ0:=θ0αm1i=1m(hθ(x(i))y(i))
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \theta_1:=\theta_1-\alpha\frac{1}{m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})·x^{(i)} θ1:=θ1αm1i=1m(hθ(x(i))y(i))x(i)
}

α \alpha α为学习率(learning rate),用来控制梯度下降速度, α \alpha α越大速度越快。
∂ ∂ θ j J ( θ 0 , θ 1 ) \frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1) θjJ(θ0,θ1)为一个导数项

Correct:Simultaneous update

t e m p 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) temp0:=\theta_0-\alpha\frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1) temp0:=θ0αθ0J(θ0,θ1)
t e m p 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) temp1:=\theta_1-\alpha\frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1) temp1:=θ1αθ1J(θ0,θ1)
θ 0 : = t e m p 0 \theta_0:=temp0 θ0:=temp0
θ 1 : = t e m p 1 \theta_1:=temp1 θ1:=temp1

"Batch"梯度下降算法

以上梯度下降算法也叫"Batch"梯度下降算法,每一步梯度下降都遍历了数据集的全部样本。
当然也有其他梯度下降算法每次没有全览整个训练集,每次只关注小子集。

猜你喜欢

转载自blog.csdn.net/qq_39906884/article/details/112968430