机器学习_批量梯度下降法(BGD)

一元线性回归

fθ(x)=θ0+θ1xf_{\theta}(x)=\theta_{0}+\theta_{1}xfθ(x)=θ0+θ1x

目标函数即损失函数

E(θ)=12∑i=1n(y(i)−fθ(x(i)))2E(\theta)=\cfrac{1}{2}\sum_{i=1}^{n}(y^{(i)}-f_{\theta}(x^{(i)}))^2E(θ)=21i=1∑n(y(i)−fθ(x(i)))2

最优化问题

找到使得E(θ)E(\theta)E(θ)的值最小时的θ\thetaθ,此时函数EEE是关于θ\thetaθ的函数,对EEE求导,当函数EEE的导数在θ\thetaθ等于某一个值的时候大于0,函数EEE是递增的,此时想要获取最小的函数值,应该降低θ\thetaθ,此时使用θ\thetaθ-导数(导数为正);函数EEE的导数在θ\thetaθ等于某一个值的时候小于0,函数EEE是递减的,此时想要获取最小的函数值,应该增加θ\thetaθ,此时使用θ\thetaθ-导数(导数为负)

梯度下降法

η\etaη是学习率,通过多次迭代才会获取到最终使得损失函数E达到最小值时的θ\thetaθ

θ:=θ−ηddθE(θ)\theta := \theta - \eta \cfrac{d}{d_{\theta}}E(\theta)θ:=θ−ηdθdE(θ)

偏导数

由于θ\thetaθ可能会有多个,当存在多个θ\thetaθ时,需要使用偏导数对每个θ\thetaθ单独求导,然后进行梯度下降,相当于从多个维度同时使得损失函数E趋于最小值

θ0:=θ0−η∂E∂θ0θ1:=θ1−η∂E∂θ1 \theta_0 := \theta_0 - \eta \cfrac{\partial E}{\partial \theta_0} \\ \theta_1 := \theta_1 - \eta \cfrac{\partial E}{\partial \theta_1} θ0:=θ0−η∂θ0∂Eθ1:=θ1−η∂θ1∂E

对损失函数求导函数

损失函数为复合函数

E(θ)=12∑i=1n(y(i)−fθ(x(i)))2E(\theta)=\cfrac{1}{2}\sum_{i=1}^{n}(y^{(i)}-f_{\theta}(x^{(i)}))^2E(θ)=21i=1∑n(y(i)−fθ(x(i)))2

对复合函数求导,做以下假设

u=E(θ)v=fθ(x)∂u∂θ=∂u∂v⋅∂v∂θ \begin{split} u &= E(\theta) \\ v &= f_{\theta}(x) \\ \cfrac{\partial u}{\partial \theta} &= \cfrac{\partial u}{\partial v} \cdot \cfrac{\partial v}{\partial \theta} \end{split} uv∂θ∂u=E(θ)=fθ(x)=∂v∂u⋅∂θ∂v

u对v进行求导

∂u∂v=∂∂v(12∑i=1n(y(i)−v)2)=12∑i=1n(∂∂v(y(i)−v)2)=12∑i=1n(∂∂v(y(i)2−2y(i)v+v2))=12∑i=1n(−2y(i)+2v)=∑i=1n(v−y(i)) \begin{split} \cfrac{\partial u}{\partial v} &= \cfrac{\partial}{\partial v} \begin{pmatrix} \cfrac{1}{2} \sum\limits_{i=1}^{n}(y^{(i)}-v)^2 \end{pmatrix} \\ &=\cfrac{1}{2} \sum\limits_{i=1}^{n} \begin{pmatrix} \cfrac{\partial}{\partial v} (y^{(i)}-v)^2 \end{pmatrix} \\ &=\cfrac{1}{2} \sum\limits_{i=1}^{n} \begin{pmatrix} \cfrac{\partial}{\partial v} (y^{(i)^2}-2y^{(i)}v+v^2) \end{pmatrix} \\ &=\cfrac{1}{2} \sum\limits_{i=1}^{n} \begin{pmatrix} -2y^{(i)}+2v \end{pmatrix} \\ &=\sum\limits_{i=1}^{n} \begin{pmatrix} v-y^{(i)} \end{pmatrix} \\ \end{split} ∂v∂u=∂v∂(21i=1∑n(y(i)−v)2)=21i=1∑n(∂v∂(y(i)−v)2)=21i=1∑n(∂v∂(y(i)2−2y(i)v+v2))=21i=1∑n(−2y(i)+2v)=i=1∑n(v−y(i))

v对θ0\theta_0θ0进行求导

∂v∂θ0=∂∂θ0(θ0+θ1x)=1 \begin{split} \cfrac{\partial v}{\partial \theta_0} &= \cfrac{\partial}{\partial \theta_0} \begin{pmatrix} \theta_0+\theta_1 x \end{pmatrix} \\ & = 1\\ \end{split} ∂θ0∂v=∂θ0∂(θ0+θ1x)=1

u对θ0\theta_0θ0进行求导

∂u∂θ0=∂u∂v⋅∂v∂θ0=∑i=1n(v−y(i))⋅1=∑i=1n(fθ(x(i))−y(i)) \begin{split} \cfrac{\partial u}{\partial \theta_0} &= \cfrac{\partial u}{\partial v} \cdot \cfrac{\partial v}{\partial \theta_0} \\ &=\sum\limits_{i=1}^{n} \begin{pmatrix} v-y^{(i)} \end{pmatrix} \cdot 1\\ &=\sum\limits_{i=1}^{n} \begin{pmatrix} f_{\theta}(x^{(i)})-y^{(i)} \end{pmatrix}\\ \end{split} ∂θ0∂u=∂v∂u⋅∂θ0∂v=i=1∑n(v−y(i))⋅1=i=1∑n(fθ(x(i))−y(i))

v对θ1\theta_1θ1进行求导

∂v∂θ1=∂∂θ1(θ0+θ1x)=x \begin{split} \cfrac{\partial v}{\partial \theta_1} &= \cfrac{\partial}{\partial \theta_1} \begin{pmatrix} \theta_0+\theta_1 x \end{pmatrix} \\ &= x\\ \end{split} ∂θ1∂v=∂θ1∂(θ0+θ1x)=x

u对 \\theta_1 进行求导

∂u∂θ1=∂u∂v⋅∂v∂θ1=∑i=1n(v−y(i))⋅x(i)=∑i=1n(fθ(x(i))−y(i))⋅x(i) \begin{split} \cfrac{\partial u}{\partial \theta_1} &= \cfrac{\partial u}{\partial v} \cdot \cfrac{\partial v}{\partial \theta_1} \\ &=\sum\limits_{i=1}^{n} \begin{pmatrix} v-y^{(i)} \end{pmatrix} \cdot x^{(i)}\\ &=\sum\limits_{i=1}^{n} \begin{pmatrix} f_{\theta}(x^{(i)})-y^{(i)} \end{pmatrix} \cdot x^{(i)} \\ \end{split} ∂θ1∂u=∂v∂u⋅∂θ1∂v=i=1∑n(v−y(i))⋅x(i)=i=1∑n(fθ(x(i))−y(i))⋅x(i)

更新θ0\theta_0θ0和θ1\theta_1θ1

θ0:=θ0−η∑i=1n(fθ(x(i))−y(i))θ1:=θ1−η∑i=1n(fθ(x(i))−y(i))⋅x(i) \begin{split} \theta_0 :&= \theta_0 - \eta \sum\limits_{i=1}^{n} \begin{pmatrix} f_{\theta}(x^{(i)})-y^{(i)} \end{pmatrix} \\ \theta_1 :&= \theta_1 - \eta\sum\limits_{i=1}^{n} \begin{pmatrix} f_{\theta}(x^{(i)})-y^{(i)} \end{pmatrix} \cdot x^{(i)} \end{split} θ0:θ1:=θ0−ηi=1∑n(fθ(x(i))−y(i))=θ1−ηi=1∑n(fθ(x(i))−y(i))⋅x(i)

相关推荐
梦想不只是梦与想1 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
罗西的思考1 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
奥惟斯6 小时前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
民乐团扒谱机8 小时前
【一文吃透】机器学习 Embedding 降维打击:从底层空间几何原理到 RAG 向量检索工程实战避坑
人工智能·机器学习·embedding
我要见SA姐18 小时前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
ZZHow102413 小时前
神经网络与深度学习笔记_Day1
人工智能·pytorch·笔记·python·深度学习·神经网络·机器学习
在所不辞兄14 小时前
【人工智能驱动的电催化研究-01】人工智能是什么?AI、机器学习、深度学习和神经网络之间有什么区别?
人工智能·深度学习·神经网络·机器学习·有限元仿真·电化学·电催化
罗西的思考1 天前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
方方洛1 天前
ray教程-23-附录C-术语表
人工智能·分布式·机器学习
程序猿编码1 天前
解决 LLM 算力浪费,一套统一 KV 管理层实现缓存复用
人工智能·神经网络·机器学习·缓存·llm·大模型推理