编者按:Statsbot深度学习开发者Jay Shah带你入门神经网络,一起了解自动编码器、卷积神经网络、循环神经网络等流行的神经网络类型及其应用。
如今,人们使用神经网络解决销售预测、客户调研、数据验证、风险管理之类的众多商业问题。例如,Statsbot中,我们将神经网络应用于时间序列预测、异常数据检测、自然语言理解。
在这篇文章中,我们将解释什么是神经网络,初学者使用神经网络将面临的主要挑战,流行的神经网络类型及其应用。我们还将描述神经网络如何应用于不同的行业和部门。
本质上,神经网络由称为神经元的计算单元层组成,层与层之间相互连接。神经网络转换数据,直到网络可以输出分类。每个神经元将一个初始值乘以一定的权重,与进入同一神经元的其他值相加,并基于神经元的偏置调整所得结果,接着使用激活函数归一化输出。
神经网络的一个关键特征是迭代学习过程,在该过程中记录(行)逐一提供给网络,每次与输入值相关的权重都进行调整。在所有情况都提供之后,这一过程常常会重复开始。在这一学习阶段,网络通过调整权重来预测输入样本的正确类别标签,以训练自身。
神经网络的优势包括对噪声数据的高耐受性,以及分类未训练过的模式的能力。最流行的神经网络算法是反向传播算法。
一旦为特定的应用确立了网络架构之后,就可以训练网络了。刚开始,初始权重(下一节具体讨论)是随机选择的。接着训练(学习)开始。
网络使用隐藏层中的权重和函数逐个处理“训练集”中的记录,接着比较实际输出与期望输出。误差在系统中反向传播,系统据此调整权重,调整后的权重将应用到下一个记录。
这个过程随着权重的调整而重复。在网络训练过程中,随着连接权重的不断改善,同一数据集会多次处理。
初学者在学习神经网络时遇到的一个挑战就是了解网络的每一层到底发生了什么。我们知道,训练之后,每个层都会提取数据集(输入)的更高层次的特征,直到最后一层决定输入特征指什么。这是如何做到的呢?
我们可以让网络来决策,而不是确切地规定我们希望网络增强的特征。比方说,我们简单地给网络传入一张任意图像或照片,让网络来分析图片。接着,我们选择一个层,并要求网络加强该层检测到的东西。网络的每一层处理不同抽象层次的特征,因此我们生成的特征的复杂性取决于我们选择增强哪一层。
在这篇面向初学者的神经网络文章中,我们将讨论自动编码器、卷积神经网络、循环神经网络。
自动编码器
自动编码器基于这样一个观察,随机初始化是一个坏主意,而基于无监督学习算法预训练每个网络层可以得到更好的初始权重。这种无监督算法的一个例子是深度性念网络(Deep Belief Networks)。最近有一些研究尝试复兴这一领域,例如使用概率自动编码器的变分方法。
实际应用很少使用它们。最近,批量归一化允许更深的网络,我们可以基于残差学习从头训练来任意深度的网络。通过适当的维度和稀疏性约束,自动编码器可以学习比PCA或其他基本技术更有趣的数据投影。
我们来看看自动编码器的两个有趣的实际应用:
基于卷积层构建的去噪自动编码器,可以高效地去除噪声。
上图中,随机毁坏过程随机地将一些输入设定为零,强迫去噪自动编码器为随机选择的缺失模式的子集预测缺失(毁坏)的值。
数据可视化的降维尝试使用主成分分析(PCA)和t分布随机近邻嵌入(t-SNE)进行降维。在神经网络训练中使用这两种方法以增加模型预测的精确性。同时,MLP神经网络预测的精确性高度依赖于神经网络的结构,数据的预处理,以及开发网络面对的问题类型。
卷积神经网络
卷积网络得名于“卷积”运算,卷积的主要用途是提取输入图像的特征。通过基于输入数据的小块学习图像的特征,卷积保留了像素间的空间关系。下面是一些成功应用卷积网络的例子:
Stevens Institute of Technology和Adobe合作的人脸识别研究使用了级联卷积神经网络高速地识别人脸。解码器在低分辨率下评估输入图像以快速剔除非面部区域,然后以更高的分辨率仔细处理关键区域以精确地检测人脸。
级联结构还引入了校正网络(calibration network)以加速识别并改善限界盒质量。
在自动驾驶汽车项目中,景深估计是自动驾驶需要考虑的重点,以确保乘客和其他载具的安全。这方面的CNN被应用于诸如NVIDIA的自动驾驶汽车这样的项目中。
CNN层可以通过多参数处理输入,因此CNN层提供了极高的灵活多变性。这些网络的子类也包括深度信念网络。传统上,卷积神经网络用于图像分析和对象识别。
顺便提一个趣味项目,使用CNN在游戏模拟器中驾驶汽车并预测驾驶方向。
循环神经网络
用于序列生成的RNN(循环神经网络)是这样训练的,处理真实的数据序列的一步并预测下一步。这里有一份如何实现该模型的指南。
假设预测是概率性的,从网络的输出分布迭代采样,然后将样本传给下一步作为输入,训练网络可以生成新的序列。换句话说,让网络把自己发明的看成是真实的,就像一个人在做梦。
RNN可以用于语言驱动的图像生成,基于给定的文本生成手写。为了应对这一挑战,将卷积文本字符串的软窗口作为额外输入传给预测网络。在网络进行预测的同时输出窗口的参数,这样,网络动态地决定文本和笔位置的对齐。简单来说,网络学习下一个要书写的字符。
给定特定的输入,经训练的神经网络可以生成预期输出。如果我们有一个拟合良好的建模已知值序列的网络,那么我们可以使用它来预测未来的结果。股票市场预测是一个明显的例子。
神经网络广泛用于真实世界的商业问题,例如销售预测、客户调研、数据验证、风险管理。
营销
精准营销涉及市场细分,根据客户行为的不同将市场分为不同的客户群。
神经网络可以根据基本特征,包括人口、经济状况、位置、购买模式、对产品的态度,细分客户。无监督神经网络可以自动基于客户属性的相似性进行分组,而监督神经网络可以通过训练基于同一组客户的特征学习客户分区间的界限。
销售
神经网络具备同时考虑多个变量的能力,例如市场需求、客户收人、人口、产品价格。对超市而言,预测销售很有帮助。
如果两个产品在一段时期内形成关联,比如购买了打印机的客户会在3到4个月内返回购买一个新的墨盒,那么零售商可以利用这一信息及时联系客户,降低客户从竞争者那里购买产品的概率。
银行和财政
神经网络成功应用于衍生证券定价和对冲,未来价格预测,汇率预测,以及股票表现。传统上,这样的软件由统计技术驱动。然而今天,神经网络成为驱动决策的底层技术。
医药
神经网络在医药领域的研究正成为潮流。人们相信,在接下来的几年,神经网络将在生物医学系统中得到广泛应用。就目前而言,大部分研究建模人体的部分,通过各种扫描识别疾病。
也许神经网络可以给我们一些关于认知的“简单问题”的洞见:大脑如何处理环境模拟?大脑如何集成信息?不过,真正的问题在于,人类的这些处理为何以及如何与内在体验的人生相伴,机器能达到这样的自我意识吗?
这让我们思考神经网络是否能帮助艺术家的工作——一种新的重组视觉概念的方式——也许甚至能够启发我们认识到通过的创造性过程的根源。
总而言之,神经网络使计算机系统更人性化了,从而使它们更加有用。所以下一次你想你可能会喜欢让你的大脑像电脑一样可靠的时候,再想一想——已经有这样一个超级神经网络安装在你的头脑里了,你该为此感恩!
我希望这个面向初学者的神经网络介绍可以帮助你创建自己的第一个神经网络项目。
原文地址:https://blog.statsbot.co/neural-networks-for-beginners-d99f2235efca