【机器学习小记】【优化算法】deeplearning.ai course2 2nd week programming

本文详细介绍了在深度学习中常用的几种优化算法,包括标准梯度下降、小批量梯度下降、Momentum以及Adam算法,并通过实验对比了它们在相同数据集上的表现。

目标:
	1. 分割数据集(使用mini_batch)
	2. 优化梯度下降算法:
		2.1 标准梯度下降算法(不优化)
		2.2 分mini_batch的梯度下降
		2.3 Momentum
		2.4 Adam

参考自:【中文】【吴恩达课后编程作业】Course 2 - 改善深层神经网络 - 第二周作业 - 优化算法

数据集

在这里插入图片描述

标准梯度下降

W [ l ] = W [ l ] − α   d W W^{[l]} = W^{[l]} - \alpha~dW W[l]=W[l]α dW
b [ l ] = b [ l ] − α   d b b^{[l]} = b^{[l]} - \alpha~db b[l]=b[l]α db

分mini_batch

第一步:打算顺序

打乱训练集的顺序

第二步:分割

(这里取mini_batch_size = 64)
按照mini_batch_size大小,分割训练集
每个batch大小<=mini_batch_size

小批量梯度下降

就是在每个batch之后进行参数的更新

当mini_batch_size = 1时,
此时算法就是随机梯度下降(SGD)


小批量(mini-batch)梯度下降法:

  1. 每轮的迭代样本数量更少,能更快的更新参数
  2. 利用向量化加快每次迭代速度

在这里插入图片描述
在这里插入图片描述

0次遍历整个数据集,当前误差值:0.6907355122911131000次遍历整个数据集,当前误差值:0.68527253284582412000次遍历整个数据集,当前误差值:0.64707222407190023000次遍历整个数据集,当前误差值:0.61952455499704024000次遍历整个数据集,当前误差值:0.57658443559509435000次遍历整个数据集,当前误差值:0.60724263959685756000次遍历整个数据集,当前误差值:0.52940333176845767000次遍历整个数据集,当前误差值:0.460768239859301158000次遍历整个数据集,当前误差值:0.4655860823990459000次遍历整个数据集,当前误差值:0.4645179722167684
Accuracy: 0.7966666666666666

Momentum

包含动量的梯度下降
当前梯度变化,需要考虑上之前梯度的变化。使用【指数加权平均数】作为之前梯度的衡量值。


指数加权平均数

共有m个样本,则第i个样本的指数加权平均数 v i = β v i − 1 + ( 1 − β ) θ i v_i = \beta v_{i-1} + (1-\beta) \theta_i vi=βvi1+(1β)θi,其中 θ i \theta_i θi表示第i个样本的值。


由于 小批量梯度下降 只看到了一个子集参数的更新,所以 小批量梯度下降 将“震荡”地走向收敛(如果学习率learning_rate不变,将在收敛点徘徊)

使用 Momentum之后,可以平滑这些“震荡”

{ v d w [ l ] = β v d w [ l ] + ( 1 − β ) d W [ l ] W [ l ] = W [ l ] − α v d w [ l ] \left\{ \begin{aligned} v_{dw^{[l]}} &= \beta v_{dw^{[l]}} + (1 - \beta) dW^{[l]} \\ W^{[l]} &= W^{[l]} - \alpha v_{dw^{[l]}} \end{aligned} \right. {vdw[l]W[l]=βvdw[l]+(1β)dW[l]=W[l]αvdw[l]

{ v d b [ l ] = β v d b [ l ] + ( 1 − β ) d b [ l ] b [ l ] = b [ l ] − α v d b [ l ] \left\{ \begin{aligned} v_{db^{[l]}} &= \beta v_{db^{[l]}} + (1 - \beta) db^{[l]} \\ b^{[l]} &= b^{[l]} - \alpha v_{db^{[l]}} \end{aligned} \right. {vdb[l]b[l]=βvdb[l]+(1β)db[l]=b[l]αvdb[l]


注:

  1. 当beta = 0 时,算法相当于没有使用momentum的【标准梯度下降算法】
  2. beta越大,说明平滑作用越明显,(但不是越大越好,因为还要保留一部分正确的方向),通常取beta=0.9
  3. Momentum算法在一开始时,效果偏差较大,可以采用 v / = ( 1 − β t ) v /= (1 - \beta^t) v/=(1βt) ,其中t(t>0)为当前迭代次数

在这里插入图片描述
在这里插入图片描述

0次遍历整个数据集,当前误差值:0.69074129883515061000次遍历整个数据集,当前误差值:0.68534052612675782000次遍历整个数据集,当前误差值:0.64714483700952553000次遍历整个数据集,当前误差值:0.61959430320760224000次遍历整个数据集,当前误差值:0.57666503440730235000次遍历整个数据集,当前误差值:0.6073238219006476000次遍历整个数据集,当前误差值:0.52947617587869977000次遍历整个数据集,当前误差值:0.460936190048723668000次遍历整个数据集,当前误差值:0.4657800937012729000次遍历整个数据集,当前误差值:0.4647395967922748
Accuracy: 0.7966666666666666

Adam

Adam算法是训练神经网络中,最有效的算法之一,它是RMSprop算法和Momentum算法的结合体

  1. 计算梯度【指数加权平均数】,v(偏差修正前), v c o r r e c t e d v^{corrected} vcorrected(偏差修正后)
  2. 计算梯度【平方的指数加权平均数】,s(偏差修正前), s c o r r e c t e d s^{corrected} scorrected(偏差修正后)
  3. 更新参数

{ v d W [ l ] = β 1 v d W [ l ] + ( 1 − β 1 ) d W [ l ] v d W [ l ] c o r r e c t e d = v d W [ l ] 1 − β 1 t s d W [ l ] = β 2 s d W [ l ] + ( 1 − β 2 ) ( d W [ l ] ) 2 s d W [ l ] c o r r e c t e d = s d W [ l ] 1 − β 2 t W [ l ] = W [ l ] − α v d W [ l ] c o r r e c t e d s d W [ l ] c o r r e c t e d + ϵ \left\{ \begin{aligned} &v_{dW^{[l]}} = \beta_1 v_{dW^{[l]}} + (1 - \beta_1)dW^{[l]} \\ &v_{dW^{[l]}}^{corrected} = {v_{dW^{[l]}} \over 1-\beta_1^t} \\ &s_{dW^{[l]}} = \beta_2 s_{dW^{[l]}} + (1 - \beta_2)(dW^{[l]})^2 \\ &s_{dW^{[l]}}^{corrected} = {s_{dW^{[l]}} \over 1-\beta_2^t} \\ &W^{[l]} = W^{[l]} - \alpha {v_{dW^{[l]}}^{corrected} \over \sqrt{s_{dW^{[l]}}^{corrected}}+\epsilon} \end{aligned} \right. vdW[l]=β1vdW[l]+(1β1)dW[l]vdW[l]corrected=1β1tvdW[l]sdW[l]=β2sdW[l]+(1β2)(dW[l])2sdW[l]corrected=1β2tsdW[l]W[l]=W[l]αsdW[l]corrected +ϵvdW[l]corrected

需要加上一个较小的 ϵ \epsilon ϵ是因为避免除以0,导致出错

在这里插入图片描述

在这里插入图片描述

0次遍历整个数据集,当前误差值:0.69055224461133651000次遍历整个数据集,当前误差值:0.185501364385505772000次遍历整个数据集,当前误差值:0.15083046575253213000次遍历整个数据集,当前误差值:0.07445438570997184000次遍历整个数据集,当前误差值:0.12595915651337165000次遍历整个数据集,当前误差值:0.104344435342454836000次遍历整个数据集,当前误差值:0.100676375041206517000次遍历整个数据集,当前误差值:0.0316520301351156258000次遍历整个数据集,当前误差值:0.111972731312442069000次遍历整个数据集,当前误差值:0.1979400715246548
Accuracy: 0.94

总结

在本例中,
Momentum的效果 和 未使用优化的效果 差不多
Adam的效果就很明显,可以看到Adam优化后,损失函数收敛很快


由于学习率 α \alpha α比较小,且数据集比较简单,所以Momentum的效果不明显。

内容概要:本文围绕“计及V2G主动支撑的光伏-储能-电动汽车输配协同日前优化调度”展开研究,提出了一种综合考虑光伏发电、储能系统与电动汽车(EV)在V2G(Vehicle-to-Grid)模式下协同参与电网调度的优化模型。通过Matlab代码实现,构建了日前优化调度框架,充分挖掘电动汽车作为移动储能单元的潜力,利用其双向充放电能力为主动配电网提供调峰、填谷和备用等主动支撑服务。研究综合考虑了可再生能源出力不确定性、负荷需求波动以及电动汽车出行行为特征,建立了多主体、多目标的协同优化机制,旨在降低系统运行成本、提高新能源消纳水平,并增强电网运行的稳定性与可靠性。该资源属于电力系统与综合能源系统领域的高水平科研复现资料,具备较强的理论深度与工程应用价值; 适合人群:具备电力系统分析、优化建模基础及Matlab编程能力的研究生、科研人员,以及从事智能电网、能源互联网、综合能源系统等相关领域技术研发的专业技术人员; 使用场景及目标:①用于学习和复现源-网-荷-储协同优化调度的核心建模方法与求解流程;②掌握V2G技术在电网调频调峰中的数学建模方法及其在优化调度中的集成应用;③支撑光伏、储能与电动汽车耦合系统的低碳经济调度、鲁棒优化或分布鲁棒优化等前沿课题的研究与仿真验证; 阅读建议:建议结合文中提供的Matlab代码与主流优化工具箱(如YALMIP、CPLEX、Gurobi等)进行实践操作,重点理解目标函数设计、约束条件构建及多变量耦合关系的处理策略,同时可进一步拓展至日内滚动优化、实时调度或多时间尺度协调优化方向开展深入研究。
内容概要:本文提出了一种基于改进自适应完备集合经验模态分解(Improved Adaptive Complete Ensemble Empirical Mode Decomposition, ICEEMDAN)的混合储能辅助火电机组调频协同控制策略,并提供了完整的Matlab代码实现。该策略利用ICEEMDAN对电网频率波动信号进行高精度自适应分解,提取不同时间尺度下的功率分量,进而合理分配火电机组与混合储能系统(如蓄电池、飞轮等)的调频任务,充分发挥各自响应速度快慢互补的优势。通过引入优化算法对功率分配系数进行动态整定,实现了调频过程中储能系统的高效协同运行,有效抑制了功率波动,提升了系统频率调节的快速性、稳定性和调节精度,同时延长了储能设备的使用寿命。文中详细阐述了算法原理、模型构建、控制逻辑设计及仿真验证过程,具有较强的可复现性与工程应用价值。; 适合人群:具备电力系统自动化、新能源并网控制或智能优化算法等相关专业知识背景,熟悉Matlab/Simulink仿真平台的技术人员,特别适用于从事电网调频、储能系统控制、信号处理在电力系统中应用等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究混合储能系统在提升传统火电机组调频性能中的作用机制;②掌握ICEEMDAN等先进非平稳信号处理方法在功率动态分解中的具体实现与参数调优;③构建火电机组-储能协同调频仿真模型,开展多工况对比分析以优化控制性能;④为相关学术论文复现、科研项目申报或实际工程方案设计提供可靠的技术参考与代码支持。; 阅读建议:建议结合Matlab代码逐模块阅读文档内容,重点关注ICEEMDAN的实现流程、IMF分量筛选规则、功率分配权重计算逻辑及整体控制架构的设计思路。读者可通过调整信号噪声水平、滤波参数、储能容量配置等变量进行仿真实验,对比不同策略下的调频效果,从而深化对协同控制机理的理解,并可进一步拓展至风光火储联合系统或多时间尺度协调控制的研究场景。
内容概要:本文围绕《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》展开,系统介绍了一种融合分布鲁棒优化(DRO)与机会约束规划(CCP)的低碳经济调度模型,并引入电力系统N-1安全准则以增强调度方案在设备故障等异常工况下的可靠性。该研究针对新能源出力波动、负荷不确定性等实际挑战,构建了兼具环保性与经济性的优化调度框架,通过Matlab实现了完整的数学建模、算法求解与仿真验证流程,属于高水平学术成果的工程化复现,具有较强的理论深度与实践价值。; 适合人群:具备电力系统分析、优化建模基础及Matlab编程能力,从事能源系统调度、低碳技术、智能电网等领域研究的研究生、科研人员及工程技术人员(建议工作年限1-5年)。; 使用场景及目标:① 学习并复现顶级EI期刊中低碳经济调度的先进建模范式;② 掌握分布鲁棒优化与机会约束在处理不确定性问题中的建模技巧;③ 理解N-1安全准则在优化模型中的集成方法与工程意义;④ 利用所提供的Matlab代码进行算法验证、参数调试或拓展至微电网、综合能源系统等应用场景。; 阅读建议:建议结合相关优化理论文献与原始论文对照学习,重点剖析模型构建的数学逻辑与物理含义,动手运行代码并尝试修改约束条件、调整不确定性参数或替换测试系统,以深化对算法性能与调度策略的理解,提升解决复杂电力系统优化问题的实战能力。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 标题中的“mac驱动兼容win11系统驱动适配版本bootcamp_5.1.5640”明确指出这是一个面向苹果Mac电脑用户的产品,其核心目的是协助用户在Windows 11操作系统上完成驱动程序的安装与配置工作。BootCamp作为苹果公司推出的一项工具,赋予Mac用户在不移除原有macOS系统的前提下,安装并执行Windows操作系统的能力。此特定版本的BootCamp 5.1.5640是专门针对Windows 11环境进行优化的驱动适配版本。 描述部分提及的“mac装win11适配的驱动包”,表明这个压缩文件内含了适配Mac硬件在Windows 11操作系统下运行的驱动程序,涵盖显卡、声卡、网卡等关键设备。用户需首先对文件进行解压缩操作,随后在BootCamp文件夹中找到名为"BootCamp.msi"的安装文件,通过双击执行来启动安装流程。这一步骤是BootCamp驱动安装过程中的核心环节,其中msi文件代表Microsoft Installer格式,其功能在于应用程序的分发与管理。 “BootCamp”标签进一步验证了该压缩包的主要功能,即借助BootCamp服务实现Mac设备与Windows系统之间的硬件兼容性。BootCamp的功能不止于提供驱动程序,还集成了一个引导管理器,允许用户在系统启动时选择运行macOS或Windows。 在压缩包的文件清单中: 1. "AutoUnattend.xml":该文件通常作为无人值守安装的配置文档,旨在自动执行Windows安装过程中的部分或全部设置任务,如用户账户的建立、地区设定的调整、网络配置等,从而提升安装的便捷性。 ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值