目录
微积分是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# 《数学基础——微积分在机器/深度学习上的应用》