分享
深度|神经网络和深度学习简史(第一部分):从感知机到BP算法
输入“/”快速插入内容
深度|神经网络和深度学习简史(第一部分):从感知机到BP算法
🔗 原文链接:
https://mp.weixin.qq.com/s?__biz=Mz...
⏰ 发表时间:机器之心
2016年01月23日 21:45
作者:Andrey Kurenkov
机器之心编译出品
参与:chenxiaoqing、范娜Fiona、杨超、微胖、汪汪、赵巍
导读:这是《神经网络和深度学习简史》第一部分。这一部分,我们会介绍1958年感知机神经网络的诞生,70年代人工智能寒冬以及1986年BP算法让神经网络再度流行起来。
深度学习掀起海啸
如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,2015年似乎才是这场海啸全力冲击自然语言处理(NLP)会议的一年。——Dr. Christopher D. Manning, Dec 2015
整个研究领域的成熟方法已经迅速被新发现超越,这句话听起来有些夸大其词,就像是说它被「海啸」袭击了一样。但是,这种灾难性的形容的确可以用来描述深度学习在过去几年中的异军突起——显著改善人们对解决人工智能最难问题方法的驾驭能力,吸引工业巨人(比如谷歌等)的大量投资,研究论文的指数式增长(以及机器学习的研究生生源上升)。在听了数节机器学习课堂,甚至在本科研究中使用它以后,我不禁好奇:这个新的「深度学习」会不会是一个幻想,抑或上世纪80年代已经研发出来的「人工智能神经网络」扩大版?让我告诉你,说来话长——这不仅仅是一个有关神经网络的故事,也不仅仅是一个有关一系列研究突破的故事,这些突破让深度学习变得比「大型神经网络」更加有趣,而是一个有关几位不放弃的研究员如何熬过黑暗数十年,直至拯救神经网络,实现深度学习梦想的故事。
机器学习算法的百年历史
线性回归
首先简单介绍一下机器学习是什么。从二维图像上取一些点,尽可能绘出一条拟合这些点的直线。你刚才做的就是从几对输入值(x)和输出值(y)的实例中概括出一个一般函数,任何输入值都会有一个对应的输出值。这叫做线性回归,一个有着两百年历史从一些输入输出对组中推断出一般函数的技巧。这就是它很棒的原因:很多函数难以给出明确的方程表达,但是,却很容易在现实世界搜集到输入和输出值实例——比如,将说出来的词的音频作为输入,词本身作为输出的映射函数。
线性回归对于解决语音识别这个问题来说有点太无用,但是,它所做的基本上就是监督式机器学习:给定训练样本,「学习」一个函数,每一个样本数据就是需要学习的函数的输入输出数据(无监督学习,稍后在再叙)。尤其是,机器学习应该推导出一个函数,它能够很好地泛化到不在训练集中的输入值上,既然我们真的能将它运用到尚未有输出的输入中。例如,谷歌的语音识别技术由拥有大量训练集的机器学习驱动,但是,它的训练集也不可能大到包含你手机所有语音输入。
泛化能力机制如此重要,以至于总会有一套测试数据组(更多的输入值与输出值样本)这套数据组并不包括在训练组当中。通过观察有多少个正确计算出输入值所对应的输出值的样本,这套单独数据组可以用来估测机器学习技术有效性。概括化的克星是过度拟合——学习一个对于训练集有效但是却在测试数据组中表现很差的函数。既然机器学习研究者们需要用来比较方法有效性的手段,随着时间的推移,标准训练数据组以及测试组可被用来评估机器学习算法。
好了,定义谈得足够多了。重点是——我们绘制线条的联系只是一个非常简单的监督机器学习例子:要点在于训练集(X为输入,Y为输出),线条是近似函数,用这条线来为任何没有包含在训练集数据里的X值(输入值)找到相应的Y值(输出值)。别担心,接下来的历史就不会这么干巴巴了。让我们继续吧。
虚假承诺的荒唐
显然这里话题是神经网络,那我们前言里为何要扯线性回归呢?呃, 事实上线性回归和机器学习一开始的方法构想,弗兰克· 罗森布拉特(Frank Rosenblatt)的感知机, 有些许相似性。
Perceptron