也许你们已经知道了深度学习改变了传统互联网业务,例如网络搜索和广告,但深度学习也同时使得许多新产品和企业以很多方式帮助人们,深度学习做的非常好的一个方面就是读取X光图像,到生活中的个性化教育,到精准化农业,甚至到驾驶汽车以及一些其他方面

1 什么是神经网络

从一个房价预测的例子开始,假设有六间房屋的数据集,已知房屋的面积,价格。想要找到一个函数根据房屋的面积预测房屋的价格

你可能会想到用一条直线拟合这些样本

image-20220322105737579

但是价格不会有负值,所以直线不太适合,它最后会让价格为负,我们让它弯曲一点,结束于0

image-20220322105152865

图中的蓝线就是你要找的函数,可以较好的拟合样本点,这就是最简单的神经网络,一个单神经元网络

image-20220322105427723

在神经网络的文献中你经常能看到这个函数,一开始是0,然后是一条直线,这个函数被称为ReLU函数(修正线性单元),大一点的神经网络是把单个的神经元堆叠起来形成的

比如你现在不仅知道房屋的面积还有一些其他的房屋特征,比如卧室的数量,你可能会想到一个很重要的因素会影响房屋价格,就是家庭人数,这个性质与房屋大小有关还有卧室的数量能否满足住户的家庭人数需求;邮编或许也能作为一个特征说明步行化程度,是否可以步行化去杂货店,学校,是否需要开车,有些人喜欢步行;另外根据邮政编码和富裕程度,在美国邮编体现了附件学校的质量

image-20220322111022643

图中的每一个圆圈都可能是一个ReLU或者其他非线性函数,基于房屋大小和卧室数量估算家庭人口,基于邮编估算步行化程度,也可以评估学校质量。人们愿意在房屋上花多少钱和他们关注什么息息相关,在这个这个例子中家庭人数,步行化程度,学校质量都可以帮助你预测房屋的价格。

在这个例子中,x就是size,bedrooms,postal code ,wealth,y是预测的价格

image-20220322112123790

把这些独立的神经元叠加起来,有了一个稍大一点的神经网络,神将网络的的一部分神奇之处就在于你需要做的只是输入x,就能得到y,不管训练集有多大,所有的中间过程他都会自己完成,因此你实际上要做的就是,输入特征,神经网络的工作就是预测对应的价格

image-20220322120913980

同时也注意到这些圆圈(在一个神经网络中被叫做隐藏单元)的每个输入都来同时来自四个特征,

image-20220322112320136

比如说我们不会具体说第一个节点表示家庭人口,或者说家庭人口只取决于特征x1,x2。我们会这样说,神经网络你自己决定这个节点是什么,我们只给你四个特征,随便你怎么计算。

值得注意的是,只要你喂给它足够多的数据,关于x,y的数据,给到足够的x,y训练样本,神经网络非常擅长于计算从x到y的精准映射函数

2 用神经网络进行监督学习

事实上几乎所有的神经网络创造的经济价值都基于其中一种机器学习,我们称之为“监督学习”

在监督学习中输入x习得一个函数 映射到输出y,比如我们之前看到的应用于房价预测的例子,输入房屋得一些特征就能输出或预测价格y,下面是一些其他例子,这些例子中神经网络效果显著,很可能今天通过深度学习获利最大的就是在线广告,这也许不是最鼓舞人心的,但真的很赚钱。

给网站输入广告信息,网站会考虑是否给你看这个广告,神经网络在预测你是否会点击这个广告方面已经表现得非常好,通过向你展示你最有可能点开的广告这就是神经网络在很多公司赚取无法想象的高额利润的应用方式

在过去的几年里其他领域也有很大的进展,都要感谢深度学习。比如计算视觉,输入一个图像然后想输出一个指数可以是1到1000来表明这张图片是1000个不同图像中的某一个,可以用来给照片打标签;语音识别方面,可以将音频片段输入神经网络,它可以输出文本;机器翻译,输入英语句子它直接输出一个中文句子;无人驾驶技术中,你输入一幅图像汽车前方的一个快照,还有一些雷达信息,基于这个训练过的神经网络就能告诉你路上其他汽车的位置

image-20220322124609007

对于房地产和广告使用的都是相对标准的神经网络;图像领域使用CNN;对于序列数据,例如音频中含有时间成分,音频是随着时间播放的,可以理解为一维时间序列,对于序列数据经常使用RNN(循环神经网络),语言单词字母也是逐个出现的也是序列数据;对于更复杂得应用,比如无人驾驶,你需要CNN识别前方拍摄得图片,再根据雷达信息,你需要更加复杂的混合神经网络结构

image-20220322125227480

你可能听说过机器学习被应用于结构化数据和非结构化数据,下面是这些术语的含义

image-20220322125543618

结构化数据是数据的数据库,每个特征都有非常明确的定义,相反非结构化数据比如音频,图像,文本,这里的特征可能是像素值,或者是文本中的某个单词。从历史角度来看,非结构化数据比结构化数据让计算机理解起来更难,但人类进化到现在非常擅长理解音频信号和图像,文本是一个更近代的发明,但人们真的很擅长解读非结构化数据。神经网络的兴起过程中最令人兴奋的事情之一就是,多亏了神经网络计算机现在可以更好的解释非结构化数据,和几年前对比的话,这给我们创造了很多令人兴奋的应用机会,语音识别,图像识别,自然语言处理,现在能做的事情比几年前丰富多了,你可能知道神经网络在非结构化数据上的成功,尤其是媒体,当网络识别了一只猫时,那真的很酷。

神经网络在很多短期经济价值的创造是基于结构化数据的,比如更好的广告系统,更好的获利建议,有更好的能力取处理很多公司拥有的海量数据库,并用这些数据预测未来的趋势。

神经网络彻底改变了监督学习,正创造着巨大的经济价值,其实基本的神经网络背后的技术理念,大部分都不是新概念,有些甚至有几十年的历史了,那么为什么它们现在才流行,才行之有效呢?

3 为什么深度学习会兴起?

image-20220404105525959

横轴表示数据量,纵轴表示模型性能,可以看出随着数据的不断增大,模型的性能趋于水平,那是这些模型无法处理海量数据,早期我们能获得的数据量很少,多亏的数字化社会,现在收集海量数据轻而易举,我们花费很多的时间在电子设备,在电脑上,网站上,手机软件,数字设备上的活动都能创造数据,同时也归功于便宜的相机被内置到移动电话还有物联网中的各种传感器,我们收集到了越来越多的数据,远超过传统学习算法能发挥作用的规模,神经网络模型的话我们发现

image-20220404110355170

随着神经网络规模的增大,性能表现得越来越好。注意两点:如果想要达到这么好的性能水平需要两个条件,1 规模足够大的神经网络以发挥数据量巨大的优点 2 要需要非常多的数据 。

因此我们一直说规模在推动深度学习的进步,这里的规模不仅指神经网络的规模我们需要一个有许多隐藏单元的神经网络,有许多的参数,许多的连接而且还有数据的规模。事实上要在神经网络上获得更好的表现,在今天最可靠的手段往往就是要么训练一个更大的神经网络,要么投入更多的数据,这只能在一定程度上起作用,因为最终你耗尽了数据或者最终你的网络规模太大,需要的训练时间太久。但提升规模已经让我们在深度学习得世界里获得了大量进展。

当训练集不大的情况下,各种算法的性能相对排名并不是很确定,训练集不大的情况下,效果会取决于你手工设置的组件,会决定最终的表现,因此很有可能假设一个人训练出了一个SVM,可能是因为手工设计组件很厉害,在训练集不大的情况下SVM的表现更好。

image-20220404112905636

深度学习的发展得益于数据,计算能力,算法(很多算法也是为了更快的计算)的发展,举一个具体的例子,神经网络方面的一个巨大突破是从sigmoid函数转变到ReLU函数

image-20220404113314003

使用sigmoid函数机器学习的问题是,两端的梯度接近于0,所以学习会变得非常缓慢,因为用梯度下降法时,梯度接近0时,参数会变化得很慢,学习也变得很慢,而通过改变激活函数,神经网络使用ReLU(修正线性单元),它的梯度对于所有为正值的输入 输出都是1 因此梯度不会逐渐趋向0,左侧的梯度为0,我们发现只需将sigmoid函数换成ReLU函数,便能使梯度下降法运行的更快,这就是一个例子,有点简单的算法创新的例子,但是最终算法创新带来的影响是增加计算速度,有很多这样的例子,我们通过改进算法使代码运行的更快,这也使得我们可以训练规模更大的神经网络,或者在合理时间内完成计算即使在数据量很大网络很大的场合。

快速计算很重要的另一个原因是训练神经网络的过程很多时候是凭直觉的,你有了新的想法,关于神经网络架构的想法,然后你写代码实现你的想法 然后跑一下实验,可以告诉你 你的神经网络效果怎么样,知道效果后再进行修改,去改神经网络里的一些细节,然后不断重发这个循环

image-20220404115147783

当你的神经网络需要很长时间训练,需要很长时间才能走完一圈的话,在实现神经网络时迭代速度对你的效率影响巨大,如果你有一个想法10分钟就能看到结果,如果你训练的神经网络用了1个月(有时确实需要这么久),如果10就可以看到结果就可以尝试更多的想法,那你很有可能发现适合你的应用的神经网络,所以计算速度的提升,真的有帮助提升迭代速度,让你更快的得到实验结果

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐