【学习记录】《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!

继续冲!!!

相关文章
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
模型手动绑骨3天,AI花3分钟搞定!UniRig:清华开源通用骨骼自动绑定框架,助力3D动画制作
UniRig是清华大学与VAST联合研发的自动骨骼绑定框架,基于自回归模型与交叉注意力机制,支持多样化3D模型的骨骼生成与蒙皮权重预测,其创新的骨骼树标记化技术显著提升动画制作效率。
261 27
模型手动绑骨3天,AI花3分钟搞定!UniRig:清华开源通用骨骼自动绑定框架,助力3D动画制作
|
28天前
|
人工智能 自然语言处理 数据可视化
让AI单次生成4万字!WriteHERE:开源AI长文写作框架,单次生成超长文本,小说报告一键搞定!
WriteHERE是基于异质递归规划技术的开源AI写作框架,能动态分解写作任务并管理任务依赖关系,支持单次生成超过4万字的专业报告。
113 2
让AI单次生成4万字!WriteHERE:开源AI长文写作框架,单次生成超长文本,小说报告一键搞定!
|
1月前
|
人工智能 开发框架 决策智能
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
谷歌开源的Agent Development Kit(ADK)是首个代码优先的Python工具包,通过多智能体架构和灵活编排系统,支持开发者在百行代码内构建复杂AI代理,提供预置工具库与动态工作流定义能力。
221 3
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
|
1月前
|
人工智能 编解码 物联网
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
UNO是字节跳动开发的AI图像生成框架,通过渐进式跨模态对齐和通用旋转位置嵌入技术,解决了多主体场景下的生成一致性问题。该框架支持单主体特征保持与多主体组合生成,在虚拟试穿、产品设计等领域展现强大泛化能力。
149 4
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
|
1月前
|
机器学习/深度学习 人工智能 编解码
让AI绘画进入「指哪画哪」的精准时代!EasyControl:Tiamat AI 联合上海科大开源图像生成控制框架
EasyControl 是基于扩散变换器架构的高效灵活控制框架,通过轻量级条件注入模块实现多模态预训练支持,具备任意分辨率生成能力和显著优化的推理效率。
171 1
让AI绘画进入「指哪画哪」的精准时代!EasyControl:Tiamat AI 联合上海科大开源图像生成控制框架
|
2月前
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
175 8
|
22天前
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
175 18
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
14天前
|
机器学习/深度学习 人工智能 算法
破解生成式AI认知边界:框架思维引擎如何重塑产业智能化未来
该内容深入解析了核心技术架构,涵盖思维链强化系统(DTT)、认知框架建模体系和实时纠偏算法体系。DTT通过多级问题拆解、混合精度推理及分布式验证,大幅提升复杂问题处理能力;认知框架结合知识图谱与逻辑推理,实现精准医疗诊断等应用;实时纠偏算法则通过多级验证机制保障事实与逻辑准确性。整体架构分应用层、框架层和基础层,支持高效、可信的跨领域适配。技术创新体现在混合计算加速、持续学习机制等方面,显著优于传统模型,在事实准确性、逻辑连续性及响应速度上优势明显。
61 28
|
27天前
|
人工智能 自然语言处理 监控
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
Cooragent 是清华大学 LeapLab 团队推出的开源 AI Agent 协作框架,支持基于简单描述快速创建 Agent 并实现多 Agent 协作,具备 Prompt-Free 设计和本地部署能力。
216 6
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
|
1月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
245 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!