数学基础——微积分在机器/深度学习上的应用

目录

微分学

导数

偏导数

梯度

梯度下降算法

反向传播算法 

自动求导 

计算图

正则化与过拟合 

L1正则化

L2正则化

Dropout正则化

拉格朗日对偶问题

拉格朗日乘数法

凸优化

对偶问题

Slater条件

KKT条件

积分学 

笔记内容


微积分是17世纪后半叶发展起来的数学的一个分支。微积分有两个分支:微分学和积分学。

微分学

微积分(导数)涉及各种变化率的研究,包括切线的斜率。

导数

一元函数曲线上的切线斜率,也就是函数在该点的变化率。

偏导数

一元函数延伸到多元函数为一个曲面时,找到曲面上沿X、Y轴方向的切线斜率,偏导数就是该多元函数沿坐标轴的变化率。

梯度

函数在该点处的方向导数沿着该方向取得最大值,即函数在当前位置的导数

梯度下降算法

梯度下降算法是机器学习和深度学习中最常用的优化算法。

反向传播算法 

反向传播算法的梯度下降法,求损失函数关于权重参数的偏导数

自动求导 

深度学习框架可以自动计算导数:根据设计好的模型,系统会构建一个计算图。当定义一个变量并指定它需要计算梯度时,框架会跟踪所有与该变量有关的计算。然后,当计算一个目标值(通常是损失函数)并调用反向传播函数时。backward(),框架会沿着这些计算的路径反向传播,使用链式法则来计算每个变量的偏导数。每次调用。backward()时,新的梯度会加到已有的梯度上。

计算图

正则化与过拟合 
L1正则化
L2正则化

Dropout正则化

拉格朗日对偶问题
拉格朗日乘数法

凸优化
对偶问题

Slater条件

KKT条件

KKT条件在优化问题中的应用与源代码解释——用Python代码来展示如何应用KKT条件解决优化问题。

Python代码实现

下面是使用scipy.optimize库来实现上述优化问题的代码:

import numpy as np
from scipy.optimize import minimize

# 定义目标函数
def objective(x):
    return x[0]**2 + x[1]**2

# 定义不等式约束
def constraint(x):
    return 1 - (x[0] + x[1])

# 初始猜测值
x0 = [0.5, 0.5]

# 约束定义
con = {'type': 'ineq', 'fun': constraint}

# 使用SLSQP求解优化问题
solution = minimize(objective, x0, method='SLSQP', constraints=[con])

# 打印结果
print('最优解:', solution.x)
print('最优值:', solution.fun)

结果解析

运行上述代码可以得到以下结果:

最优解:[0.5, 0.5]
最优值:0.5

积分学 

积分学(积分)处理数量的累积,如曲线下的面积,或一个实体的体积。 


笔记内容

https://www.yuque.com/g/u42592276/ax6il7/pmfxty3ykhrtq0us/collaborator/join?token=zXNMqhSjjXay6pIO&source=doc_collaborator# 《数学基础——微积分在机器/深度学习上的应用》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值