本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:程序员想搞机器学习?看看Nodejs之父这一年摸爬(4)

时间:2017-06-10 23:51来源:天下彩论坛 作者:118开奖 点击:
作为软件工程师,我在机器学习方面并没有什么经验。但基于过去一年对深度学习的研究,我来分享一下在该领域的总体看法,及其同范围更广的软件领域

作为软件工程师,我在机器学习方面并没有什么经验。但基于过去一年对深度学习的研究,我来分享一下在该领域的总体看法,及其同范围更广的软件领域之间的关系。

我坚信,机器学习将改变所有行业,并最终改善每个人的生活,许多行业都会因机器学习所提供的智能预测而受益。对于我,我在这个项目中,最初的目标是,在不久的将来,所有人都可以看到查理·卓别林这类老电影的4K版。

不过,我确实发现,这一模型的构建、训练和调试都相当困难。当然,大部分的困难是由于我缺乏经验,这也表明有效训练这些模型是需要相当丰富的经验的。我的工作集中在机器学习最为容易的分支上:监督式学习。但即便有着完美的标注,模型开发仍十分困难。似乎,预测的维度越大,构建模型所花的时间就越长(例如:花大把的时间进行编程、调试和训练)。因此,我推荐所有人在开始时都尽可能简化和限制你的预测。

举一个我们在着色实验中的例子:我们在开始时试图让模型预测整个的RGB图像,而非只预测颜色通道。我们认为,神经网络很容易就能处理好灰度图(intensity image)并输出出来,因为我们使用的是跳跃连接(skip connection)。只预测颜色通道依然能改进性能。

如果我以主观、本能的方式使用“工作”来描述软件:图像分类工作起来似乎很稳健。生成式模型几乎很少能工作,人们也不太了解这种模型。GAN能输出很好地图像,但是构建起来几乎是不可能的——我的经验是,对架构作出任何小改动都有可能使它无法工作。我听说强化学习更加困难。但因经验不足,我对递归神经网络不予置评。

但是,随机梯度下降算法工作起来是太过于稳定,即使是严重的数学错误也不会让它彻底失败,仅稍稍有损于性能。

因为训练模型经常需要花费很多天,这是一个非常缓慢的修改—运行循环。

测试文化尚未完全兴起。训练模型时我们需要更好的评断方法,网络的多个组成部分需要维持特定的均值和变量,不能过度摆动或者留在范围内。机器学习漏洞使系统的heisenbugs能特别轻松地通过测试。

并行计算带来的好处有限。更多的计算机数会让大规模的超参数搜索会变得更容易,但理想情况下,我们会设计出无需仔细调试也可正常工作的模型。(实际上,我的怀疑是,超参数搜索能力有限的研究人员,将不得不设计出更好更稳健的模型。)不幸的是,对很多模型而言,异步随机梯度下降算法并没有什么用处——更加精确的梯度通常用处不大。这就是为什么 DCASGD的研究方向会如此重要。

从软件维护的角度看,大家对如何组织机器学习项目鲜有共识。就像Rails出现之前的网页一样:一群杂乱PHP脚本、商业逻辑和标记符号混在一起。在TensorFlow项目中,数据管道、数学和超参数/配置管理同样豪无组织地混成一团。我认为,精美的结构/组织还有待于我们发掘。(或是说有待于重新发现,就像DHH重新发现并普及MVC那样。)我的项目结构一直在进步,但我不会认为它已足够精美。

框架将继续快速进化。虽说我一开始用的是Caffe,但也不得不感激TensorFlow所带来的好处。而今,PyTorch与Chainer之类的框架都在用动态计算图表来取悦用户。漫长的 修改—运行 循环是开发出更好模型的主要障碍——我猜测那些优先考虑快速启动和快速评估的框架将取得最后的成功。尽管有TensorBoard、iPython这类有用的工具,但检查模型在训练期间的活动仍很困难。

论文中的信噪比都很低,改进的空间依然很大。由于学术会议更看重的是准确度而非透明度,人们往往不会坦率承认他们模型上的失败之处。我希望学术会议能够接受博客作为附加材料,同时要求开源的实现。Distill在这方面的努力值得称赞。

对机器学习而言,这是一个激动人心的时代。在各个层面上都有大量的工作需要完成:从理论端到框架端,还有很多值得改进的空间。这几乎跟互联网的诞生一样令人激动。快动手加入进来吧!

  

码报:程序员想搞机器学习?看看Nodejs之父这一年摸爬

图片说明:

这就是你的机器学习系统吗?

是啊!把数据倒进这堆线性代数中,然后在另外一头接收答案就好了。

如果答案错了怎么办?

只管搅动这堆数据,直到结果开始看上去正确为止。

致谢

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容