深度学习为何起作用——关键解析和鞍点

2023-12-13 10:38

本文主要是介绍深度学习为何起作用——关键解析和鞍点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对深度学习,包括分布式表示,深度架构和易避免鞍点的理论驱动力的讨论。

 

这篇文章总结了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数据分析与机器学习实战;

详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂

现在注册互动得海量学币,大量精品课程免费送!

这篇关于深度学习为何起作用——关键解析和鞍点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488152

相关文章

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali