本文主要是介绍深度学习为何起作用——关键解析和鞍点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对深度学习,包括分布式表示,深度架构和易避免鞍点的理论驱动力的讨论。
这篇文章总结了Rinu Boney最近一篇博客的关键点,基于今年蒙特利尔深度学习暑期学校上Yoshua Bengio的讲座,讲座是关于深度学习理论驱动力的讨论。
“为了局部泛化,我们需要所有相关变化的典型范例。”
深度学习是学习多层次的表示,相当于是多层次的抽象。如果我们能够学习这些多层次的表示,那么我们可以很好地对其泛化。
在上述(释义)总领全文陈述之后,作者提出了一些不同的人工智能(AI)策略,从以规则为基础的系统到深度学习系统,并指出在哪个层次它们的组件能够起作用。之后,他给出了从机器学习(ML)向真正人工智能迁移的3个关键点:大量数据,非常灵活的模型,强大的先验,而且,因为经典ML可以处理前两个关键点,所以他的博客是关于如果处理第三个关键点的。
在从如今的机器学习系统迈向人工智能的道路上,我们需要学习,泛化,避免维度灾难的方法,以及解决潜在解释因素的能力。在解释为什么非参数学习算法不能实现真正的人工智能之前,他首先对非参数下了详细的定义。他解释了为什么以平滑作为经典的非参数方法在高维度下不起作用,之后对维度做了如下解释:
“如果我们在数学上更深入地挖掘,我们学习到的是函数变种的数量,而不是维度的数量。在这种情况下,平滑度就是曲线中有多少上升和下降。”
“一条直线是非常平滑的。一条有升有降的曲线没那么平滑,但还是平滑的。”
所以,很显然,单独使用平滑度并不能避免维度灾难。事实上,平滑度甚至不适用与现代的,复杂的问题,比如计算机视觉和自然语言处理。在讨论完这种有竞争力的方法(如高斯核)的失败后,Boney将目光从平滑度上转移,并解释了它的必要性:
“我们想要达到非参数,在这个意义上,我们希望随着数据的增多所有函数能灵活地扩展。在神经网络中,我们根据数据量来改变隐藏单元的个数。”
他指出,在深度学习之中,使用了2个先验,即分布式表示和深度架构。
为什么使用分布式表示?
“使用分布式表示,可以用线性参数来表示指数数量的区域。分布式表示的奇妙之处在于可以使用较少的实例来学习非常复杂的函数(有很多上升和下降的曲线)。”
在分布式表示中,特征的意义是单独而言的,无论其他特征如何都不会改变。它们之间或许会有些互动,但是大多特征都是独立于其他特征学习得到的。Boney指出,神经网络非常善于学习表示来捕捉语义方面的东西,它们的泛化能力来源自这些表示。作为本主题的应用实例,他推荐Cristopher Olah的文章,来获取关于分布式表示和自然语言处理的知识。
对于深度的含义有许多误解
“更深的网络并不意味着有更高的生产力。更深并不意味着我们能表示更多的函数。如果我们正在尝试学习的函数有特定的特征,这些特征由许多操作的部分组成,那么使用深度神经网络来逼近这些函数可以得到更好的效果。”
之后Boney又回到原话题。他解释说,90年代后期神经网络研究被搁置(再次)的一个原因是优化问题是非凸的。80和90年代的工作成果中,神经网络在局部最小化中得到了一个指数值,同时还有内核机器的诞生,导致了神经网络的衰败,网络可能会由于不好的解决方案而失效。最近,我们有证据证明非凸问题可能不是个问题,这改变了它与神经网络的关系。
“上图展示了一个鞍点。在全局或局部最小区域,所有方向都上升,在全局或局部最大区域,所有方向都下降。”
鞍点
“我们来考虑低维度和高维度下的优化问题。在低维度中,确实存在许多局部最小。但是在高维度情况下,局部最小并不是临界点,也就是对全局来说不是关键点。当我们优化神经网络或任何高维度函数的时候,对于我们大多数优化的轨迹,临界点(点的导数是0或接近0)都是鞍点。鞍点,不像局部最小,很容易退避。”
关于鞍点的直觉是,对于靠近全局最小的局部最小,所有方向都应该是上升的;进一步下降可能性极小。局部最小存在,但是对于目标函数而言,它非常接近全局最小,理论研究结果表明,一些大函数可能集中于指标(临界点)和目标函数之间。指标相当于是各个方向上,下降的方向占所有方向的比例;如果指标不是0或1(分别是局部最小和局部最大)的,那么它是一个鞍点。
Boney继续说道,已经有经验可以验证指标和目标函数之间的关系,而没有任何证据表明神经网络优化可以得到这些结果,一些证据表明,所观察到的行为可能只是理论结果。在实践中,随机梯度下降几乎总是避开不是局部最小的表面。
这一切都表明,事实上因为鞍点的存在,局部最小可能不是问题。
Boney继续他关于鞍点的讨论,提出了一些与深度分布式表示工作的其他先验;类人学习(human learning),半监督学习,多任务学习。然后他列出了一些关于鞍点的论文。
Rinu Boney写了篇文章详细阐述深度学习的驱动力,包括对鞍点的讨论,所有的这些都很难通过简单的引用和总结来公正说明。如果想对以上讨论点进行更深的讨论,访问Boney的博客,自己读读这些具有洞察力和良好构思的文章吧。
END
碧茂课堂精彩课程推荐:
1.Cloudera数据分析课;
2.Spark和Hadoop开发员培训;
3.大数据机器学习之推荐系统;
4.Python数据分析与机器学习实战;
详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂
现在注册互动得海量学币,大量精品课程免费送!
这篇关于深度学习为何起作用——关键解析和鞍点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!