也许你们已经知道了深度学习改变了传统互联网业务,例如网络搜索和广告,但深度学习也同时使得许多新产品和企业以很多方式帮助人们,深度学习做的非常好的一个方面就是读取X光图像,到生活中的个性化教育,到精准化农业,甚至到驾驶汽车以及一些其他方面
1 什么是神经网络
先来看一个房价预测的例子,假设有一个包含六栋房子的数据集,房子的大小和价格是已知的。想找到一个函数来根据房子的大小来预测房子的价格
您可能会考虑用直线拟合这些样本
但是价格不会有负值,所以直线不太适合,它最后会让价格为负,我们让它弯曲一点,结束于0
图中蓝线就是你要找的函数,可以更好的拟合样本点。这是最简单的神经网络,单神经元网络。
在神经网络的文献中你经常能看到这个函数,一开始是0,然后是一条直线,这个函数被称为ReLU函数(修正线性单元),大一点的神经网络是把单个的神经元堆叠起来形成的
比如你现在不仅知道房子的大小,还知道其他一些房子的特性,比如卧室的数量,你可能认为影响房子价格的一个很重要的因素,就是户数,这关系到房子的大小和卧室的数量是否能满足家庭的户型需求;邮政编码也可以作为一个特征来表示步行程度,是否可以步行到杂货店、学校,是否需要开车,有些人更喜欢步行;邮政编码反映附属学校的质量
图中的每一个圆圈都可能是一个ReLU或者其他非线性函数,基于房屋大小和卧室数量估算家庭人口,基于邮编估算步行化程度,也可以评估学校质量。人们愿意在房屋上花多少钱和他们关注什么息息相关,在这个这个例子中家庭人数,步行化程度,学校质量都可以帮助你预测房屋的价格。
在这个例子中,x就是size,bedrooms,postal code ,wealth,y是预测的价格
把这些独立的神经元叠加起来,有了一个稍大一点的神经网络,神将网络的的一部分神奇之处就在于你需要做的只是输入x,就能得到y,不管训练集有多大,所有的中间过程他都会自己完成,因此你实际上要做的就是,输入特征,神经网络的工作就是预测对应的价格
另请注意,这些圆圈中的每一个(称为神经网络中的隐藏单元)的每个输入都同时来自四个特征,
比如说我们不会具体说第一个节点表示家庭人口,或者说家庭人口只取决于特征x1,x2。我们会这样说,神经网络你自己决定这个节点是什么,我们只给你四个特征,随便你怎么计算。
值得注意的是,只要你喂给它足够多的数据,关于x,y的数据,给到足够的x,y训练样本,神经网络非常擅长于计算从x到y的精准映射函数
2 用神经网络进行监督学习
几乎所有由神经网络创造的经济价值都基于一种我们称之为“监督学习”的机器学习
在监督学习中输入x习得一个函数 映射到输出y,比如我们之前看到的应用于房价预测的例子,输入房屋得一些特征就能输出或预测价格y,下面是一些其他例子,这些例子中神经网络效果显著,很可能今天通过深度学习获利最大的就是在线广告,这也许不是最鼓舞人心的,但真的很赚钱。
向网站提供有关广告的信息,该网站将考虑是否向您展示广告。神经网络非常擅长预测你是否会点击这个广告,通过向你展示你最有可能点击的广告。这就是《有多少公司获得难以想象的高利润》中的神经网络
在过去的几年里其他领域也有很大的进展,都要感谢深度学习。比如计算视觉,输入一个图像然后想输出一个指数可以是1到1000来表明这张图片是1000个不同图像中的某一个,可以用来给照片打标签;语音识别方面,可以将音频片段输入神经网络,它可以输出文本;机器翻译,输入英语句子它直接输出一个中文句子;无人驾驶技术中,你输入一幅图像汽车前方的一个快照,还有一些雷达信息,基于这个训练过的神经网络就能告诉你路上其他汽车的位置
对于房地产和广告使用的都是相对标准的神经网络;图像领域使用CNN;对于序列数据,例如音频中含有时间成分,音频是随着时间播放的,可以理解为一维时间序列,对于序列数据经常使用RNN(循环神经网络),语言单词字母也是逐个出现的也是序列数据;对于更复杂得应用,比如无人驾驶,你需要CNN识别前方拍摄得图片,再根据雷达信息,你需要更加复杂的混合神经网络结构
您可能听说过将机器学习应用于结构化和非结构化数据,这就是这些术语的含义
结构化数据是数据的数据库,每个特征都有一个非常明确的定义,相比之下,音频、图像、文本等非结构化数据中的特征可能是一个像素值,也可能是文本中的一个词。从历史上看,非结构化数据比结构化数据更难被计算机理解,但人类已经进化到非常擅长理解音频信号和图像,文本是较新的发明,但人们非常擅长破译非结构化数据。结构化数据。神经网络兴起最令人兴奋的事情之一是,多亏了神经网络,计算机现在可以比几年前更好地解释非结构化数据,这为我们创造了许多令人兴奋的应用机会,语音识别,图像识别、自然语言处理,现在可以做的事情比几年前要多得多,你可能知道神经网络在非结构化数据上的成功,尤其是媒体,当网络识别出一只猫时,那真的很酷。
神经网络创造的许多短期经济价值是基于结构化数据的,例如更好的广告系统、更好的货币化建议、更好地处理许多公司拥有的海量数据库以及使用这些数据来预测未来事件的能力。趋势。
神经网络彻底改变了监督学习,正在创造巨大的经济价值。事实上,基本神经网络背后的大部分技术概念都不是新概念,有的甚至已经有几十年的历史了,为什么现在流行起来呢?它有效吗?
3 为什么深度学习会兴起?
横轴代表数据量,纵轴代表模型的性能。可以看出,随着数据的不断增加,模型的性能趋于平缓,即这些模型无法处理海量数据,前期我们能获取的数据量非常少,这要归功于在我们的数字社会中,现在很容易收集大量数据,我们将大量时间花在电子设备上,在电脑、网站、移动软件上,数字设备上的活动可以产生数据,而且还要感谢正在建造的廉价相机进入手机和物联网中的各种传感器,我们正在收集越来越多的数据,远远超出了传统学习算法所能发挥的规模。使用神经网络模型,我们发现
随着神经网络规模的增大,性能表现得越来越好。注意两点:如果想要达到这么好的性能水平需要两个条件,1 规模足够大的神经网络以发挥数据量巨大的优点 2 要需要非常多的数据 。
所以我们一直说规模在推动深度学习的进步,而这里的规模不仅仅是神经网络的规模。我们需要一个具有许多隐藏单元、许多参数、许多连接和数据规模的神经网络。事实上,当今在神经网络上获得更好性能的最可靠方法通常是训练更大的神经网络或投入更多数据,这仅在一定程度上有效,因为最终你会用完数据或结束网络太大,训练时间太长。但是不断扩大的规模让我们在深度学习领域取得了很大进展。
当训练集不大的情况下,各种算法的性能相对排名并不是很确定,训练集不大的情况下,效果会取决于你手工设置的组件,会决定最终的表现,因此很有可能假设一个人训练出了一个SVM,可能是因为手工设计组件很厉害,在训练集不大的情况下SVM的表现更好。
深度学习的发展得益于数据,计算能力,算法(很多算法也是为了更快的计算)的发展,举一个具体的例子,神经网络方面的一个巨大突破是从sigmoid函数转变到ReLU函数
使用sigmoid函数机器学习的问题是,两端的梯度接近于0,所以学习会变得非常缓慢,因为用梯度下降法时,梯度接近0时,参数会变化得很慢,学习也变得很慢,而通过改变激活函数,神经网络使用ReLU(修正线性单元),它的梯度对于所有为正值的输入 输出都是1 因此梯度不会逐渐趋向0,左侧的梯度为0,我们发现只需将sigmoid函数换成ReLU函数,便能使梯度下降法运行的更快,这就是一个例子,有点简单的算法创新的例子,但是最终算法创新带来的影响是增加计算速度,有很多这样的例子,我们通过改进算法使代码运行的更快,这也使得我们可以训练规模更大的神经网络,或者在合理时间内完成计算即使在数据量很大网络很大的场合。
快速计算之所以重要的另一个原因是,训练神经网络的过程通常很直观,你有一个新想法,一个关于神经网络架构的想法,然后你编写代码来实现你的想法,然后运行一个实验,你可以告诉你神经网络的效果如何?知道效果后,可以修改一下,改变神经网络中的一些细节,然后继续重发这个循环
当你的神经网络需要很长时间训练,需要很长时间才能走完一圈的话,在实现神经网络时迭代速度对你的效率影响巨大,如果你有一个想法10分钟就能看到结果,如果你训练的神经网络用了1个月(有时确实需要这么久),如果10就可以看到结果就可以尝试更多的想法,那你很有可能发现适合你的应用的神经网络,所以计算速度的提升,真的有帮助提升迭代速度,让你更快的得到实验结果
文章出处登录后可见!