吴恩达机器学习公开课学习笔记(一)章节23

本文是吴恩达机器学习课程的学习笔记,主要介绍线性回归和梯度下降算法。首先,文章阐述了线性回归的基本概念,包括映射函数hθ(x)和代价函数J(θ0,θ1)。接着,详细讲解了梯度下降法,特别是其数学表达式和局部最优点的概念,并讨论了学习速率α的影响。最后,讨论了线性回归模型中梯度下降的具体实现步骤和矩阵运算的应用。" 113550218,10535992,Windows7+CUDA9.2 PyTorch安装教程:Miniconda+Python3.7,"['Python', '深度学习', 'PyTorch', 'CUDA', '安装指南', 'Windows开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


公开课链接: https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1049101127&courseId=1004570029

一些规范表达形式

训练集中样本数目: m m m
变量: X X X,自变量的第i个样本: X ( i ) X^{(i)} X(i)
目标: Y Y Y,目标的第i个样本: Y ( i ) Y^{(i)} Y(i)
映射函数: h h h,hypothesis,把 x → y x\rightarrow y xy,表达形式: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x(线性函数)
声明符号: : = := :=

线性回归/单变量线性回归

映射函数: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
θ 0 和 θ 1 \theta_0和\theta_1 θ0θ1为模型参数(parameters of model)
优化过程就是最小化函数: min ⁡ θ 0 , θ 1 1 2 m ∑ i = 1 m ∣ h θ ( x ( i ) ) − y ( i ) ∣ 2 \min_{\theta_0,\theta_1} \frac{1}{2m}\sum_{i=1}^m|h_\theta(x^{(i)})-y^{(i)}|^2 θ0,θ1min2m1i=1mhθ(x(i))y(i)2 最小化误差平方和
系数 1 2 m \frac{1}{2m} 2m1是为了让数值不那么大
为了让这个概念更明晰,所以定义了代价函数(cost function)
代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ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_{i=1}^m|h_\theta(x^{(i)})-y^{(i)}|^2 J(θ0,θ1)=2m1i=1mhθ(x(i))y(i)2
目标就是minimize cost function,代价函数也被称作平方误差函数(squared error function)

代价函数

Hypothesis: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
Parameters: θ 0 和 θ 1 \theta_0和\theta_1 θ0θ1
Cost function: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ∣ h θ ( x ( i ) ) − y ( i ) ∣ 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m|h_\theta(x^{(i)})-y^{(i)}|^2 J(θ0,θ1)=2m1i=1mhθ(x(i))y(i)2
Goal: min ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \min_{\theta_0,\theta_1}J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)
每一个不同的参数对应着不同的Hypothesis function, 我们就可以算出对应的cost function J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),
当只有一个参数时,画代价函数的图像可以直接画函数图像,
有两个参数时,可以画等曲面图。在这里插入图片描述
或者等高线图在这里插入图片描述

梯度下降算法

问题综述:
have some function J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),want to min ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \min_{\theta_0,\theta_1}J(\theta_0,\theta_1) minθ0,θ1J(θ0,θ1)
梯度下降得到的是局部最优点在这里插入图片描述

梯度下降的数学表达方式

Gradient descent algorithm
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和1)
}
correct(正确的思路):simultaneous update(需要同时更新)
t e m p 0 : = θ 0 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) temp0 :=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) temp0:=θ0αθjJ(θ0,θ1)
t e m p 1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) temp1 :=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) temp1:=θ1αθjJ(θ0,θ1)
θ 0 : = t e m p 0 \theta_0 := temp0 θ0:=temp0
θ 1 : = t e m p 1 \theta_1 := temp1 θ1:=temp1
α \alpha α叫做learning rate:学习速率,控制以多大的幅度更新J

incorrect(不正确的思路)
这种算法可能也能算出正确的结果,但是不是人们常说的梯度下降法。
t e m p 0 : = θ 0 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) temp0 :=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) temp0:=θ0αθjJ(θ0,θ1)
θ 0 : = t e m p 0 \theta_0 := temp0 θ0:=temp0
t e m p 1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) temp1 :=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) temp1:=θ1αθjJ(θ0,θ1)
θ 1 : = t e m p 1 \theta_1 := temp1 θ1:=temp1

求偏导数

α \alpha α的意义和大小:如果 α \alpha α太小,梯度下降的过程就会很慢,如果 α \alpha α太大,梯度可能可能不会收敛,因为会跳过最小值。

局部最优点

因为局部最优点的导数(derivative term)等于0,
α \alpha α不变也能收敛到局部最优点的原因,因为倒数越来越趋近于0,所以挪动会越来越小在这里插入图片描述

线性回归的梯度下降

梯度下降算法:
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和1)
}
线性回归模型:
h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ∣ h θ ( x ( i ) ) − y ( i ) ∣ 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m|h_\theta(x^{(i)})-y^{(i)}|^2 J(θ0,θ1)=2m1i=1mhθ(x(i))y(i)2

求导:
∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ∣ h θ ( x ( i ) ) − y ( i ) ∣ 2 = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) 2 \frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) = \frac{\partial}{\partial \theta_j}\frac{1}{2m}\sum_{i=1}^m|h_\theta(x^{(i)})-y^{(i)}|^2\\=\frac{\partial}{\partial \theta_j}\frac{1}{2m}\sum_{i=1}^m(\theta_0+\theta_1x^{(i)}-y^{(i)})^2 θjJ(θ0,θ1)=θj2m1i=1mhθ(x(i))y(i)2=θj2m1i=1m(θ0+θ1x(i)y(i))2
求出来的导数:
θ 0 , j = 0 : ∂ ∂ θ j J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0,j=0:\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)= \frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)}) θ0,j=0:θjJ(θ0,θ1)=m1i=1m(hθ(x(i))y(i))
θ 1 , j = 1 : ∂ ∂ θ j J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) \theta_1,j=1:\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)= \frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1,j=1:θjJ(θ0,θ1)=m1i=1m(hθ(x(i))y(i))x(i)

线性回归中的梯度下降算法
repeat until convergence{
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0 :=\theta_0-\alpha \frac{1}{m}\sum_{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_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1:=θ1αm1i=1m(hθ(x(i))y(i))x(i)
}

凸函数

不太正规地解释凸函数是一个弓形函数,没有局部最优解,只有一个全局最优解。

Batch Gradient Descent

“Batch”:each step of gradient descent uses all training examples

矩阵与向量

矩阵向量定义

Matrix:rectangular array of numbers
Dimension of matrix: number of rows*number of columns,比如矩阵 A ∈ ℜ 4 × 2 A\in\Re^{4\times2} A4×2
表示矩阵指定元素 A i j : i t h r o w , j t h c o l u m n A_{ij}:i^{th}row,j^{th}column Aij:ithrow,jthcolumn
Vector: an nx1 matrix
y i = i t h y_i=i^{th} yi=ith element
通常用小写字母 表示向量,大写字母表示矩阵。

加法和标量乘法

在这里插入图片描述

矩阵向量乘法

在这里插入图片描述
使用矩阵计算方程
在这里插入图片描述
在这里插入图片描述
矩阵乘法的应用
在这里插入图片描述

矩阵乘法性质

(1)不满足交换律
(2)满足结合律
Identity Matrix:用 I ( 或 者 ) I n × n I(或者)I_{n\times n} I()In×n表示。在这里插入图片描述

逆和转置

怎么得到逆矩阵(inverse matrix)呢?
用工具
矩阵的转置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值