【学习记录】《DeepLearning.ai》第七课:超参数调试、Batch正则化和程序框架

简介: 2021/9/7

第七课:超参数调试、Batch正则化和程序框架

7.1 调试处理(Tuning process)

image

我们通常需要处理超参数,如上图。

第一个是学习率,第二个是Moentum(动量梯度下降法)的参数,如果使用了Adam优化算法,也需要调整第三个参数,第三行参数一般有默认值,如图所示。

第四行表示神经网络的层数,第五行是隐藏单元数量,第六行是学习率衰减,第七行是mini-batch的尺寸。

对于参数进行随机取值能够提高搜索效率

其中学习率是最重要的调试参数


7.2 为超参数选择合适的范围(Using an appropriate scale to pick hyperparameters)

首先对学习率$\alpha$​的选择:

image

如上图所示,简单解释一下,让学习率在0.0001到1之间取值,用到Python中可以这样做:

r=-4*np.random.rand()
alpha=10^r

对于上面的式子,r的取值范围为[-4,0],进而得到alpha的取值为[0.0001,1]

其次对于指数加权平均值的参数$\beta$​选择:

假设$\beta$​在[0.9,0.999]之间取值,如下图:

image

同样可以用上面的方法,先计算$1-\beta$的值,

$$ r\in[-3,-1]\\ 1-\beta=10^r\\ \beta=1-10^r $$

image

注意上图两个取值范围的区别,选择第二个,第一个大概取十个平均值,而对于第二个来说,是取1000、2000个值,注意区别。


7.3 超参数调试实践:(Pandas VS Caviar)

image

第一种情况用于数据量较大同时计算机算力不足的情况,一遍训练一遍调整参数。

第二种情况用于数据量适中同时计算机算力强大的情况,可以多次训练模型进而选择较好的参数。

尝试选择不同的超参数。


7.4 归一化网络的激活函数(Normalizing activations in a network)

Batch归一化算法

image

对神经网络的某一层进行归一化,步骤如上图所示。

$$ \widetilde Z^{(i)}=\gamma Z^{(i)}_{norm}+\beta $$

该算法的的作用是使得隐藏单元值的均值和方差标准化,也就是$Z^{(i)}$​有固定的均值和方差,均值和方差的大小由$\gamma$和$\beta$两个参数来控制的。


7.5 将Batch Norm拟合进神经网络(Fitting Batch Norm into a neural network)

image

个人理解:将Batch Norm拟合进神经网络指的是执行下面的过程:

image

也就是执行完前两步之后引入再计算$\widetilde Z^{[i]}$​,然后其他正常往后计算。原理还是似懂非懂。。。


7.6 Batch Norm 奏效的原因

Batch归一化的作用:当输入值发生改变时,它可以使这些值变得更稳定,或者说其减弱了前层参数与后层参数的作用之间的联系,使得网络每层都可以自己学习,稍微独立于其它层,能够加快整个网络的学习。

其还有一个作用,有轻微的正则化效果,

所以和dropout相似,它往每个隐藏层的激 活值上增加了噪音, dropout有增加噪音的方式,它使一个隐藏的单元,以一定的概率乘以 0,以一定的概率乘以 1,所以你的 dropout含几重噪音,因为它乘以 0或 1。

Batch归一化含有几重噪音。

也可以将Batch归一化和dropout一起使用,获得更强大的正则化效果。

同时应用尺寸较大的mini-batch可以减少正则化效果。

最后需要知道,Batch归一化一次只能处理一个mini-batch数据,它在mini-batch上计算均值和方差。

水平有限,看了课也就只能理解这么多了。。。


7.7 测试时的Batch Norm

Batch归一化将你的数据以mini-batch的形式逐一处理,但是在测试中,可能需要对每一个样本逐一处理。

总结下这节内容吧:

image

通常在训练时候,$\mu$和$\sigma^2$是整个mini-batch上计算出来的包含了比如64/128尺寸大小的样本数量。然而测试时候我们需要一个个处理样本,在这块我们需要使用指数加权平均来得到我们需要的$\mu$和$\sigma^2$,然后在测试中使用$\mu$和$\sigma^2$来计算隐藏单元所需要的z值。


7.8 Softmax回归(Softmax regression)

应用于多分类问题

image

应用在最后一层,此时激活函数为:

$$ Z^{[l]}=W^{[l]}a^{[l-1]}+b^{[l]}\\ 激活函数如下:t=e^{z^{[l]}}\\ a^{[l]}=\frac{e^{z^{[l]}}}{\sum_{j=1}^{4}t_i}或者:a^{[l]}_i=\frac{t_i}{\sum_{j=1}^{4}t_i} $$

本例最后有四个输出分类。可以看到最后输出的是每个类别的可能性。


7.9 训练一个Softmax分类器(Training a Softmax classifier)

在Softmax中的损失函数是:

$$ L(\widehat y,y)=-\sum_{j=1}^{4}y_jlog\widehat y_j $$

image

要保证损失函数最小,如上图所示,只要$\widehat y$足够大,也就是针对某一类的预测概率足够大即可。

概括来讲,损失函数所做的就是它找到你的训练集中的真实类别,然后试图使该类别相应的概率尽可能地高。

image

注意上图中的维度

对于整个训练集的损失函数:

$$ J(w^{[1]},b^{[1]},...,...)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat y^{(i)},y^{(i)}) $$

使用梯度下降法,使得损失函数的值最小:

$$ dz^{[l]}=\widehat y-y $$

吴老师说,使用一种深度学习的编程框架,我们只需要关注把前向传播做好,程序会自动做好反向传播。


7.10 深度学习框架(Deep Learning frameworks)

image

选择深度学习框架需要注意如下事项:

1.便于编程

2.运行速度较快

3.框架开源


7.11 Tensorflow

image

通常tensorflow框架内置了许多优化函数,如梯度下降,adams等方法。


OVER!

继续冲!!!

相关文章
|
3天前
|
人工智能 开发框架 算法
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
Qwen-Agent 是阿里通义开源的一个基于 Qwen 模型的 Agent 应用开发框架,支持指令遵循、工具使用、规划和记忆能力,适用于构建复杂的智能代理应用。
48 10
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
|
11天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
93 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
DiffSensei 是一个由北京大学、上海AI实验室及南洋理工大学共同推出的AI漫画生成框架,能够生成可控的黑白漫画面板。该框架整合了基于扩散的图像生成器和多模态大型语言模型(MLLM),支持多角色控制和精确布局控制,适用于漫画创作、个性化内容生成等多个领域。
84 18
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
|
7天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
91 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
16天前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
63 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
21天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
121 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
22天前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
50 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
22天前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
79 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
24天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
65 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
27天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
57 9
【AI系统】AI 框架基础介绍