深度学习通过让计算机将现实世界的事物分解为一系列层级的概念来试图理解世界,层级中每一个概念都可以进一步由作为这一层的输入的更加简单的概念来定义,从而可以将复杂的现象层层拆解为简单的概念。在典型的图像识别中,这些针对图像的概念分布在网络的不同层次中,定义了什么是线条,什么是轮廓,什么是眼睛,什么是人。
This solution is to allow computers to learn from experience and understand the world in terms of a hierarchy of concepts, with each concept defined in terms of its relation to simpler concepts.
人工智能的真正挑战在于那些人类可以本能的做到,但难以正式的描述出来如何做到的事情,如类似人脸识别,字迹辨认等感知型任务。
诸如逻辑回归,朴素贝叶斯这类简单机器学习算法的表现主要取决于输入其中的数据的表示 representation 形式,这些表示通常由一系列特征构成,算法通过构建特征与结果的关系来完成任务。
The performance of these simple machine learning algorithms (such as logistic regression, naive Bayes) depends heavily on the representation of the data they are given.
尽管不同的特征表示形式对于算法操作和判断的难易程度影响巨大,例如如果想通过一条直线来区分两组点,如果将点的坐标系用笛卡尔坐标(下图左),那么这将是一个不可能完成的任务;而如果我们采用极坐标表示,那么这个任务将异常简单。但这类算法对如何定义这些特征没有掌控能力。在很多机器学习算法中,都是人类依靠自己对于知识的理解确定哪些是能够影响一个判断结果的重要特征,并且有时还事先规定了这些特征彼此间的重要性,用这些特征来一起指代一个输入,再通过算法来确定输出。而人类的经验不总是正确的,也很可能会误导算法。
表示形式对于操作的难易程度的影响的一个身边的例子就是在通过阅读学习同一系列的知识的时候,有的作者可以清晰而简明的将知识点事无巨细的耐心解读,而另一些作者则会故弄玄虚,假装高深来掩盖自己的不知所以,这些书籍的表达方式都可以被理解为知识的表示,并且这些表示水平的高低很大程度上决定了学习者的学习效率和难易程度。例如当阅读同济版《线性代数》和原版 Linear Algebra Done Right 时,对于线性代数的很多概念的定义和为何如此定义的理解绝对是不同的。
对于一部分人工智能任务来说可以通过定义适当的特征集,并将特征集输入给某些简单的机器学习算法来完成,但对另一部分任务来说,应该提取哪些特征是非常难以判断的,例如如何通过定义特征来判断图片上是否包含汽车,此时就需要算法自行决定如何定义特征并进一步完成输入与输出的关系构建。
一个多层神经网络本质上构建了一个输入数据集和输出值之间的函数关系,这个复杂的函数又可以拆解为多个更小的、相对形式更简单的函数,每一次施加不同的函数都可以理解为对于输入提供了一个新的表示形式。
A multilayer perceptron is just a mathematical function mapping some set of input values to output values. The function is formed by composing many simpler functions. We can think of each application of a different mathematical function as providing a new representation of the input.
深度学习和神经科学
深度学习的早期研究确实受到了神经科学的很多启发,其中之一就在于建立单一的可以解决不同任务的深度神经网络是可能的,最直观的参照就是人类的大脑。从哺乳动物的神经研究中还发现处理听觉的脑区兼具视觉信息的处理能力,这使得当前的人工智能研究不再简单的将不同感官的任务分离,而是试图研究不同任务的同步处理。而深度学习对于神经科学的依赖性逐渐降低的原因在于我们对于大脑的工作机理的理解过于原始,无法真正的为提高深度学习的建模能力提供帮助。