松鼠乐园 松鼠乐园
  • 注册
  • 登录
  • 首页
  • 快捷入口
    • Vue
    • Tensorflow
    • Springboot
    • 语言类
      • CSS
      • ES5
      • ES6
      • Go
      • Java
      • Javascript
    • 工具类
      • Git
      • 工具推荐
    • 服务器&运维
      • Centos
      • Docker
      • Linux
      • Mac
      • MySQL
      • Nginx
      • Redis
      • Windows
    • 资源类
      • 论文
      • 书籍推荐
      • 后端资源
      • 前端资源
      • html网页模板
      • 代码
    • 性能优化
    • 测试
  • 重大新闻
  • 人工智能
  • 开源项目
  • Vue2.0从零开始
  • 广场
首页 › 人工智能 › 别盲目调参!深度学习要先找到最佳策略

别盲目调参!深度学习要先找到最佳策略

迦娜王
3年前人工智能
451 0 0

别盲目调参!深度学习要先找到最佳策略

R2RT 是一个很有特色的机器学习/人工智能技术博客,作者是一个在 Github 上用户名为 spitis 的机器学习、人工智能专家。这位真名不知为何的专家,目光深邃,擅长对于一些深邃的技术话题娓娓道来,更难得的是作者对于机器学习、特别是深度学习有一个大局观。

他总会反复提醒读者,我们在干什么,讨论什么问题,在人工智能这盘大棋里处于哪个环节。这样的文章在当前的机器学习和深度学习当中,还是非常少见和难得的。

这就是为什么 AI100 决定将这个博客已发表的文章全部翻译出来以飨读者。

这篇文章是这个系列的第一篇,讨论的是深度学习当中的技巧和策略。在《The Master Algorithm》一书中,作者将机器学习分成五大学派,其中深度学习属于其中“连接学派”。而连接学派的核心算法就是所谓“反向传播”算法。

反播算法的强势地位以及大量的超参数,使得大多数人将学习和应用人工神经网络的重点都放在了算法的调优、超参数的调整之中。然而作者告诉我们,如果你不能够站在全局看待问题,寻找最佳的策略,你可能只是在一个第二流甚至第三流的策略中费劲心机的寻求局部最优而已。

拿作者举的第一个例子来说,如果你不能够发现甚至创造新的投篮策略,而只是不断优化朱利安式的投篮技术,你永远都不可能达成最好的投篮效果。同样的,如果我们在使用深度学习时,不能够首先考虑清楚最佳的网络结构、最重要的输入特征,是一头扎进去调超参,同样也有可能会捡了芝麻丢了西瓜。作者提出了“社交学习”和“创造力”两个思路来“切换策略”,但更重要的是意识到技巧与策略的差别,并且有意识的提醒自己要保持大局观。

深度学习的技巧 vs 策略

在这篇文章中,我会与大家一起讨论几个现实生活中与策略息息相关的实例,而这些实例仅仅凭借某些劣势策略的单纯实践是无法实现的。

反向传播算法是一种类似于上述“单纯实践”的算法,因为反向传播算法会以一种特定的策略开发新技巧(也就是说,它会学习某个特定的局部最小值)。就像实践一样,反向传播算法本身并不能使得算法切换到更高级的策略上。

在实际的例子中,我先是研究了如何实现策略上的转换,然后还询问了哪些算法可以允许机器有效地切换策略。

投篮

同样是篮球运动员,12岁球员和NBA球员之间投篮的差异就非常明显。你可以通过下面的图片比较一下12岁的朱利安·纽曼与德克·诺维茨基投篮的镜头:

别盲目调参!深度学习要先找到最佳策略

别盲目调参!深度学习要先找到最佳策略

朱利安的投篮技术和他的年龄及身体特征相匹配。但是请注意朱利安是怎样从胸部开始投篮的:先将身体前倾,然后将球从身体推出去(胸部投篮)。这种投篮方法与德克的方法完全不同,德克的身高比较高,他首先会把球举过头顶,然后伸出胳膊并挥动他的手腕进行投篮(手腕投篮)。

在朱利安成长的过程中,他一定能很快地发现,对手的手会出现在他投篮的路径上,阻碍最终的投篮。与此同时,他很快也能足够的高大和强壮,并且像德克一样投篮。

然而有趣的是,随着年龄的增长,朱利安的胸部投球技巧并不会完美地切换到手腕投球模式。唯一可以切换到手腕投球模式的方法就是训练新的投球风格。

对于我们观察人士而言,上述投球模式的转变似乎非常明显。然而,从我和我的篮球朋友们的经验来看,投球模式的转变过程是非常自然的,并不那么显而易见。

当我们跟朱利安的年龄一样大时,我们都在自然而然地使用着胸部投篮的方法,它会使我们的投篮准确率更高(即使是对手的手在我们前面的情况下也是如此)。也许是由于逻辑和信念在不断地训练过程中相互作用的结果,也许只是单纯的跟别人学习的缘故,又或许是卡特教练的投篮训练使我们发生了改变的原因,我们最终确实改变了我们的投篮方式。不管是什么原因,现在再投球时,球会通过我的手腕被轻推出去,越过头部向外抛出,就像德克一样(当然没有他投的准~~)。

背越式跳高(The Fosbury Flop)

背越式跳高是奥运会跳高运动中的其中一种方式,正如手腕投球是投篮的其中一种方式。20世纪60年代中期,奥运会跳高运动员在跳高时所采用的过杆方式有:跨越式过杆、滚竿式过杆、“霍莱恩”式过杆或剪式过杆方式等。但是在1968年,一位年轻的美国运动员迪克·福斯贝里创造了一项新的世界纪录,他采用了一种非传统的新方法,以一种背向横杆的方式进行跳跃。由此,背越式跳高便诞生了。

从先前占优势的前背越式过杆方式,到跨越式过杆方式,再到现在的背越式跳高。

与手腕投球方式相比,胸部投球方式显然更容易被对手的手抓住,但是目前并没有证据表明背越式跳高确实比跨越式跳高的效果好。的确,在福斯贝里第一次使用背越式跳高时,他的教练就警告过他。即使在今天,你也会发现跳高运动员仍然在争论每一种跳跃风格的相对优势。但是,自从1978年跨越式跳高的世界纪录被打破,背越式跳高逐渐流行开来并在每一次世界纪录中屡试不爽。

像17加24一样简单

另一个例子是我最喜欢的例子之一,它涉及到人类的一项基本技能。不同于篮球运动员的手腕投篮和跳高运动员的背越式跳高,这种技术对受益者来说也相对陌生。

在中学的时候,有一次我的音乐老师给我们讲述过某个学生的故事,这位学生利用大脑进行计算的速度比用计算器进行计算的速度还要快。当学校老师教我们依次从右至左相加时,这位学生选择依次从左到右相加。这难道就是他的秘密?作为一名怀疑论者,我自己亲自测试了这位学生的技术。在练习一段时间之后,我的数字求和速度竟然也比计算器的速度快。事实证明,在1秒之内调整答案并不像看起来那么难。在数学课上,我的代数才刚起步;但是最终在音乐课上,我学会了正确的加法。

玛雅天文学

这是本文最后一个比较有趣的例子,让我们花几分钟时间观看一下理查德·费曼在玛雅天文学家和他的学生之间的假象讨论:

视频地址:https://youtu.be/NM-zWTU7X-k

执行良好的策略存在于局部最小值处

类似的情况非常常见。对于大多数的任务来说,都存在着多种不同效果的策略:在竞技体育中有多种不同的表现方式,多种不同的学习方式,甚至多种不同的思考人生和追求幸福的方式。

在机器学习的语言中,简单来说,现实世界的具体情境涉及多种非凸目标函数,而这些函数均具有多个局部最小值。每个局部最小值周围处的点均对应一种特定的策略,而最小值本身对应的是能够完美执行的策略。由此看来,反向传播算法是一种能够提高技巧的算法。

或许并不出人意料,上述每个示例中都有一个能够使得任务有效执行下去的次佳策略。它可能不如最佳的策略那么有效,但是却可以完成工作(否则它就不是一个策略)。这与实证研究结果类似,尽管神经网络的误差曲面具有非凸性质,但是反向传播算法通常会在表现良好的局部最小值处呈现收敛状态。你可以这样来思考这个问题,直到某个事件出现“某种作品”(即存在表面上的某些策略),此时它还没有开始收敛;你不可能熟练掌握非策略事件。

尽管次佳策略也会在一定程度上发挥作用,但上面的例子表明,一个优异的策略可以让结果明显更好些。优异的策略还可以打开以前在相关领域中不曾开启的大门(例如,我们的祖先在开发出写作功能之前需要先开发出对生拇指)。这对于创建强大的人工智能至关重要,因此此处存在一个问题:是什么促使人们去选择一种更为优越的策略?我们如何利用这一点来建立更强大的人工智能?

[注释:从那时起我就知道,此处我的想法与强化学习中的探索与开发问题相关联。稍后会再写更多内容。]

为什么随机猜测行不通?

在策略中隐含的是一个目标,这个目标可以是投篮成功,也可以是最小化任意的损失函数。

我们通常会在某种背景下执行某种策略,这样可以更容易实现目标。如果身高再高一点,投篮就会更容易;相应地,当你拥有更多的数据时,就会更容易训练一个模型。

由于环境的某些特征在我们的控制之中,通常情况下,我们的策略首先涉及的就是这些特征的开发工作。在打篮球时,你可以通过传球或越过对手实现近距离的投篮。在训练神经网络时,你可以收集更多的数据或选择更好的功能。

由于开发这些特性需要花费一段时间,而且不同的策略往往会依赖不同的特性,因此切换策略的代价非常昂贵。虽然改变小型神经网络的结构可能相对便宜,但是将律师重新培训成软件工程师会比较困难,因为要开发领域相关的专业知识需要大量的投资。因此,一般情况下,我们需要有一个绝对令人信服的理由,才能促使我们切换策略,而不仅仅是一个随机的猜测。

排除随机猜测的另一个原因正是我们需要开启反向传播算法的根本原因。我们可以做出无穷多的随机猜测,但是我们的时间却是有限的。因此,反向传播算法及其各种变体就成了我们必备的元策略,它会告诉我们如何在有效策略处收敛,我们可能会想知道是否还有其他的元策略能够告诉我们如何有效地切换策略。

通过社交学习切换策略

有一种元策略叫做社交学习,也就是通过外界影响进行学习。无论是教练的投篮训练,还是看到其他球员用手腕投三分球,亦或者是迪克·福斯伯里用他的背越式跳高创造了一个新的世界纪录,又或者是听到一个数学天才心算加法速度比计算器更快的故事,在我有限的经验中,人工智能界仍然不存在真正的平行。

[注释:我当时的经验确实非常有限:遗传算法以及相关的保留全部候选人的算法,如博内特(Bonet)等人的互信息最大化的输入集群(MIMIC)等,正是此种类型的社交学习。]

我们的机器学习模型确实会因为受到其创作者的外部影响而切换策略。例如,视觉研究在2012年提出了所谓的“AlexNet”架构(在本文中有描述),并且此后模型已经被复制并且被进一步改进过。不幸的是,这种改进不是机器自动执行的,需要人的直接干预。有些情况下,模型通过模拟过去样本的数据库而得到改进,但很难将这种程序化的模拟与自动或智能相提并论。

那么重要的问题来了,我们如何才能让机器进行社交学习?相比平均模型或复制权重变量,是否有办法在更高级的水平上进行社交学习?肯定有,因为人类可以做到这一点。

要想能够接受外部影响,机器需要具备理解产生该结果的过程的能力。我们可以看到并传达出胸部投篮和手腕投篮的精确差异,因此我们能够接受外部影响并通过模仿进行学习。但即使是人类的交流也仅限于接受者所理解的概念。一个象棋爱好者看一场大师赛可能会收获很少,而一个大师可能会学到很多东西。我认为,我们的程序肯定有能够理解更高阶概念的一天,能够通过外部影响来学习,此时我们将会非常接近人工智能。

[注释:这些想法与我在关于离散嵌入的文章中提出的第三阶段模型的想法非常相似。]

“首发命中”策略,为什么仅有社交学习是不够的?

通过社交学习,我们的机器可以站在巨人的肩膀上。但是如果没有巨人呢?

当然,第一次就能收敛至最佳策略处也是可能的,但篮球中胸部投篮的事实告诉我们,我们的第一种策略可能是带有偏见的。在孩子长大的过程中,由于他们的身体不强壮,也不够高,因此无法通过手腕进行投篮,不可避免地向胸部靠拢。当孩子们长大了的时候,他们的胸部对他们来说可能是一个局部极小的地方,但是如果没有创造力或外界帮助,他们永远无法逃脱胸部投篮。

假设我们试图将人类的图像分类为男性图像和女性图像,并通过反向传播算法来训练图像分类神经网络。从某次随机初始化开始,网络就会达到一个局部最小值。然而问题在于:我们能确定这个局部最小值接近整体的最小值吗? 对此,我们可以尝试通过重新初始化权重并重新训练网络进行测试。

假设我们重新对网络进行了一百万次的训练,每个局部最小值都达到了几乎相同的性能。那么,这一事实足够让我们得出先前的策略接近最佳策略的结论吗?我的回答是否定的; 我们不能确定一个随机的初始化会通过反向传播算法得到最佳策略。这可能是一种类似于胸部投篮的情况,为了达到最佳的策略,网络在学习了一些有用的隐藏功能后,必须重新进行训练。

例如,身高很可能是一个重要的特征,通过反向传播算法训练的神经网络会迅速学会使用这个特征,甚至严重依赖。我们知道,虽然身高与性别有关,但有些更微妙的特征如面部结构等是更加优异的预测因子。即使最终学会了使用面部结构特征,通过反向传播算法训练出的神经网络也可能永远无法彻底完全改变自己的策略,并且无法忘记使用高度这一特征。

因此,即使机器能够相互学习策略,也可能不足以产出像背越式跳高或广义相对论等这样的重大突破。同样,像猴子那样依葫芦画瓢的模仿方式也是不行的,因为猴子做不到真正的智能:智能机器必须能够独立产生新的策略。

通过创造力切换战略

在没有外部影响的情况下,切换策略的能力是智能的最终标志。

既要训练机器能够停止目前正在做的事情,又要训练机器尝试做其他完全不同的事情。你需要这样一个假设:另一种方法在你尝试之前就能变得更好。在打篮球的例子中,对手可能会在你试图投篮的时候把一只手放在你的脸上,这可能会激发出你的这一想法:“要是我能投的更高就好了。” 但是,利用反向传播算法训练出的神经网络不能对其权重和结构产生这样的想法。

独立策略相互切换的关键是假设——一个猜测。 按照费曼(Feynman)的观点,这是科学方法的核心:

视频地址:https://youtu.be/EYPapE-3FRw

然而正如费曼(Feynman)所指出的,这些猜测并不是随机的——有些猜测比另一些猜测好。我们的任务是找出一种算法来进行有效的猜测:一种创造性的算法。

[注释 :做出假设的能力非常关键。请注意,贪心算法或其他随机的探索方法仍可能发挥作用——它们是与科学方法无关的另一种社交学习形式(从自己的社交学习中学习)。]

原文地址:https://r2rt.com/skill-vs-strategy.html

每日荐文

别盲目调参!深度学习要先找到最佳策略

数学不好,也可以学习人工智能(七)——自然语言处理的奇妙之处

别盲目调参!深度学习要先找到最佳策略

AI 技术讲座精选:条件概率和贝叶斯定理简介

➤版权申明:该文章版权归AI100所有,如需转载、摘编、复制等,请后台留言征得同意。若有直接抄袭,AI100将追究其责任。

别盲目调参!深度学习要先找到最佳策略

请点击此处输入图片描述

关于AI100

AI100致力于打造人工智能技术和产业社区。为人工智能开发者提供信息和技术交流的平台;为人工智能创业者提供行业数据及智能应用的商业场景;为行业提供人工智能化的技术商业应用。

0
把吴恩达深度学习系列课程画出来,这有份诚意满满的笔记求查收
上一篇
深度学习遇上物理学:上能分析星系团,下能解码基本粒子
下一篇
评论 (0)

请登录以参与评论。

现在登录
聚合文章
Servicios profesionales Organizaciones
1年前
在Gitee收获近 5k Star,更新后的Vue版RuoYi有哪些新变化?
1年前
vue3.x reactive、effect、computed、watch依赖关系及实现原理
1年前
Vue 3 新特性:在 Composition API 中使用 CSS Modules
1年前
标签
AI AI项目 css docker Drone Elaticsearch es5 es6 Geometry Go gru java Javascript jenkins lstm mysql mysql优化 mysql地理位置索引 mysql索引 mysql规范 mysql设计 mysql配置文件 mysql面试题 mysql高可用 nginx Redis redis性能 rnn SpringBoot Tensorflow tensorflow2.0 UI设计 vue vue3.0 vue原理 whistle ZooKeeper 开源项目 抓包工具 日志输出 机器学习 深度学习 神经网络 论文 面试题
相关文章
我收集了12款自动生成器,无聊人士自娱自乐专用
输入一张图,就能让二次元老婆动起来,宛如3D:这全是为了科学啊
使用ONNX+TensorRT部署人脸检测和关键点250fps
基于 Keras 的烟火检测
松鼠乐园

资源整合,创造价值

小伙伴
墨魇博客 无同创意
目录
重大新闻 Centos CSS Docker ES5 ES6 Go Java Javascript Linux Mac MySQL Nginx Redis Springboot Tensorflow Vue Vue2.x从零开始 Windows 书籍推荐 人工智能 前端资源 后端资源 壁纸 开源项目 测试 论文
Copyright © 2018-2022 松鼠乐园. Designed by nicetheme. 浙ICP备15039601号-4
  • 重大新闻
  • Centos
  • CSS
  • Docker
  • ES5
  • ES6
  • Go
  • Java
  • Javascript
  • Linux
  • Mac
  • MySQL
  • Nginx
  • Redis
  • Springboot
  • Tensorflow
  • Vue
  • Vue2.x从零开始
  • Windows
  • 书籍推荐
  • 人工智能
  • 前端资源
  • 后端资源
  • 壁纸
  • 开源项目
  • 测试
  • 论文
热门搜索
  • jetson nano
  • vue
  • java
  • mysql
  • 人工智能
  • 人脸识别
迦娜王
坚持才有希望
1224 文章
35 评论
242 喜欢
  • 0
  • 0
  • Top