Java基本数据类型 电力杆 TensorRT loops xaml testing sdk mtu原理 count 后台模板 纯html网页模板 jq遍历元素 jquery获取最后一个子元素 a标签去除下划线 python链接mysql数据库 python程序代码 java中正则表达式 java初级 java创建文件 java学习流程 java类方法 tar文件怎么打开 tabletpc 马赛克软件 联发科p70 苹果滚动截屏 摩斯密码在线翻译 司司网吧 大势至usb监控 udp测试工具 草图大师版本转换器 c语言图书管理系统 方正徐静蕾字体 古特里克的杀生刀 dns劫持怎么解决 ps怎么磨皮祛痘 淘宝退货怎么上门取件 flash引导层 尾行3存档 vc运行库
当前位置: 首页 > 学习教程  > 编程语言

2020-6-9 吴恩达-改善深层NN-w3 超参数调试(3.3 超参数训练的实践:Pandas(资源少,一次一个模型) VS Caviar(资源多,一次多个模型))

2020/7/24 9:20:57 文章标签:

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

3.3 超参数训练的实践:Pandas VS Caviar Hyperparameters tuning in practice:Pandas vs. Caviar

本节将介绍如何组织你的超参数搜索过程。

如今的DL已经应用到许多不同的领域,某个应用领域的超参数设定,有可能通用于另一领域,不同的应用领域出现相互交融。

比如,我曾经看到过计算机视觉领域中涌现的巧妙方法,比如说Confonets或ResNets,它还成功应用于语音识别。我还看到过最初起源于语音识别的想法成功应用于NLP等等。

DL领域中,发展很好的一点是,不同应用领域的人们会阅读越来越多其它研究领域的文章,跨领域去寻找灵感。

就超参数的设定而言,我见到过有些直觉想法变得很缺乏新意。所以,即使你只研究一个问题,比如说逻辑学,你已经找到一组很好的参数设置,并继续发展算法,但是在几个月的过程中,观察到你的数据会逐渐改变;或许在你的数据中心更新了服务器,正因为有了这些变化,你原来的超参数的设定不再好用。

所以我建议,至少每隔几个月一次,重新测试或评估你的超参数,以确保你对数值依然很满意。

关于如何搜索超参数的问题,我见过大概两种重要的思想流派,或者说人们通常采用的两种重要但不同的方式。

一种是你照看一个模型(babysit one model),通常是有庞大的数据组,但没有许多计算资源或足够的CPU和GPU的前提下,基本而言,你只可以一次负担起试验一个模型或一小批模型。在这种情况下,即使当它在试验时,你也可以逐渐改良。
在这里插入图片描述

观察上图。

  • 第0天,你将随机参数初始化,然后开始试验。
  • 第1天,你逐渐观察自己的学习曲线,也许是损失函数J,或者数据设置误差或其它的东西,在第1天内逐渐减少,那这一天末的时候,你可能会说,看,它学习得真不错。
  • 第2天,我试着增加一点学习速率,看看它会怎样,也许结果证明它做得更好,那是你第二天的表现。
  • 第3天,两天后,你会说,它依旧做得不错,也许我现在可以填充下Momentum或减少变量。然后进入第三天。

每天,你都会观察它,不断调整你的参数。也许有一天,你会发现你的学习率太大了,所以你可能又回归之前的模型,像图中的箭头处那样。你可以说是在每天花时间照看此模型,即使是它在许多天或许多星期的试验过程中。

这就是人们照料一个模型的一种方法,观察它的表现,耐心地调试学习率。但那通常是因为你没有足够的计算能力,不能在同一时间试验大量模型时才采取的办法。

另一种方法则是同时试验多种模型。
在这里插入图片描述

如上图。你设置了一些超参数,尽管让它自己运行,或者是一天甚至多天,然后你会获得像这样的学习曲线,这可以是损失函数J,或实验误差的损失,或数据设置误差的损失。
在这里插入图片描述

同时你可以开始一个有着不同超参数设定的不同模型,所以,你的第二个模型会生成一个不同的学习曲线,如上图中的紫色线。
在这里插入图片描述

与此同时,你可以试验第三种模型。或者你可以同时平行试验许多不同的模型,如上图。

用这种方式你可以试验许多不同的参数设定,最后快速选择工作效果最好的那个。在这个例子中,也许绿色曲线看起来是最好的。
在这里插入图片描述

观察上图,Pandas VS Caviar 。我们可以打个比方。

  • 左边的方法称为熊猫方式(Panda)。当熊猫的孩子非常少,一次通常只有一个。他们花费很多精力抚养熊猫宝宝以确保其能成活。在这种方式下,一种模型就类似于一只熊猫宝宝。
  • 对比而言,右边的方式更像鱼类的行为,我称之为鱼子酱方式(Caviar)。鱼类繁殖的方式是,它们会产生很多卵,但不对其中任何一个多加照料,只是希望其中一个,或其中一群,能够表现出色。这是哺乳动物繁衍和鱼类,很多爬虫类动物繁衍的区别。

这两种方式的选择,是由你拥有的计算资源决定的。

如果你拥有足够的计算机去平行试验许多模型,那绝对采用鱼子酱方式,尝试许多不同的超参数,看效果怎么样。

但在一些应用领域,比如在线广告设置和计算机视觉应用领域,那里的数据太多了,你需要试验大量的模型,所以同时试验大量的模型是很困难的,它是依赖于应用的过程。我看到那些领域应用熊猫方式会多一些。


本文链接: http://www.dtmao.cc/news_show_50050.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?