打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器学习入门 - 神经网络

神经网络

神经网络是深度学习的一种形式,通常被称为深度神经网络。它可能是机器学习中最先进的方法之一,深刻理解它的工作原理可能需要拥有博士学位。你可以撰写一本关于机器学习最技术化模型的整本书。

神经网络是设计成模仿人脑内通信路径的计算系统。在你的身体中,有数十亿个神经元,它们都相互连接,从你的脊髓通过脑部传递信息。它们通过类似根状的节点连接,一次通过每个神经元逐个传递消息,一直传递到达你的大脑。

虽然目前尚无法通过计算机完全复制这一过程,但我们采用了这一原理,并应用于计算机神经网络中,以模拟类似人脑学习的能力,即识别模式并通过发现新信息推断信息。

对于神经网络,与我们所有的机器学习模型一样,信息被处理为数值数据。通过提供数值数据,我们使其具备使用算法进行预测的能力。

就像大脑中的神经元一样,数据从顶部开始,然后逐层向下传递,首先经过节点分隔。神经网络使用节点在每一层之间传递信息。神经网络由三个部分组成:输入、隐藏和输出层。

在下面的图片中,我们有一个神经网络的可视表示,其中圆圈表示网络中的每个单独节点。在左侧,我们有输入层;这是数据输入的地方。数据通过输入层后,将被筛选通过多个隐藏层。隐藏层是数据通过不同特征进行排序的地方。隐藏层寻找数据集中的模式。隐藏层是“魔术”发生的地方,因为数据是按照我们可能无法手动排序的模式进行排序的。每个节点都有一个权重,将有助于确定特征的重要性。

这些神经网络的最佳应用是对人类来说很容易但对计算机来说非常困难的任务。回想一下本书开头时我们讨论的推理和归纳推理。我们的大脑在归纳推理方面非常强大;这是我们相对于可以在几秒钟内计算大量数据的先进计算机的优势。我们模仿人类思维来构建神经网络,因为我们正在尝试教会计算机如何像人类一样“思考”。这是一项相当具有挑战性的任务。神经网络的一个很好的示例是,我们应用神经网络来处理对人类来说非常容易但对计算机来说非常具有挑战性的任务。

神经网络可能需要大量的计算能力。神经网络之所以具有处理挑战,首先是因为制作准确模型所需的数据集的数量。如果你希望模型学会如何对照片进行分类,那么模型将需要学会处理这些任务的微妙差异。这也导致了下一个挑战,即神经网络正常工作所需的变量数量。使用的数据越多,分析的变量数量越高,这意味着隐藏网络的增加。在任何给定时刻,模型通过隐藏网络对数百甚至数千个特征进行分析和分类。以自动驾驶汽车为例。自动驾驶汽车有150多个用于分类的节点。这意味着自动驾驶汽车需要大量的计算能力,以在分析成千上万个输入的同时做出瞬间决策。

在分类照片的情况下,神经网络可以非常有用,数据科学家使用的方法正在迅速改进。如果我向你展示了一张狗的照片和一张猫的照片,你可以轻松告诉我哪一个是猫,哪一个是狗。但对于计算机来说,这需要复杂的神经网络和大量的数据来教会模型。

神经网络的一个常见问题是过拟合。模型可以预测训练数据的值,但当暴露于未知数据时,它对旧数据过于具体,不能对新数据进行一般化的预测。

假设你即将参加数学考试,你想要复习。你可以记住你认为会出现在考试中的所有公式,并希望在考试日到来时,你能够将新的信息插入到你已经记住的内容中。或者你可以更深入地学习;学习每个公式的工作原理,以便在条件发生变化时也能够产生良好的结果。过度拟合的模型就像是为考试背诵公式一样。如果新数据类似,它会表现得很好,但当出现变化时,它就不知道如何适应。通常,如果你的模型在训练数据上表现良好但在测试数据上表现不佳,那么你可以判断它是过度拟合的。

当我们检查模型的性能时,可以使用成本值来衡量。成本值是预测值与模型的实际值之间的差异。

神经网络的一个挑战之一是无法确定特定输入与输出之间的关系。隐藏层被称为隐藏层,是因为它们太难解释或理解。

最简单的神经网络类型被称为感知器。它之所以简单,是因为它只有一个数据经过的层。输入层通向一个分类的隐藏层,最终的预测是二进制分类。回想一下,当我们提到一个分类技术是二进制的时候,这意味着它只对0和1表示的两个不同类别进行排序。

感知器是由弗兰克·罗森布拉特首次开发的。如果你想更多地了解神经网络,熟悉感知器是一个不错的主意。感知器使用与其他神经网络模型相同的过程,但通常你将使用更多的层和更多的可能输出。当数据被接收时,感知器将输入与它们被赋予的权重相乘。然后,所有这些值的总和被输入激活函数。激活函数告诉输入它属于哪个类别,换句话说,预测输出。

如果你在图上看感知器,它的线会像这样:

感知器的图形线条看起来像一个阶梯,两个值分别位于1的两侧。阶梯的这两侧是模型将根据输入预测的不同类别。从图中你可能能够看出,它有点粗糙,因为在类别之间的线上几乎没有分隔。即使是一些输入变量的微小变化也会导致预测输出成为不同的类别。它不会在用于训练的原始数据集之外表现得很好,因为它是一个阶跃函数。

与感知器的替代方案是一种称为S形神经元的模型。使用S形神经元的主要优势在于它不是二元的。与感知器不同,后者可以将数据分类为两个类别,S形函数创建的是概率而不是分类。下面的图显示了S形神经元的曲线:

注意S形曲线在1附近的形状,感知器对数据进行分类时,阶跃函数使它难以区分具有轻微差异的数据。而使用S形神经元,数据是通过其属于给定类别的概率进行预测的。如你所见,曲线在1处呈弯曲形状,这意味着数据点属于给定类别的概率在1之后增加,但它仅代表概率。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
算法之“算法”:所有机器学习算法都可以表示为神经网络
什么是神经网络?
神经网络入门
深度学习入门指南:初学者必看!
算法知识汇总:构成/学派/算法
神经网络为何成为学习算法的通用结构?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服