神经网络基础之可视化和交互式指南

本文通过一个简单的房价预测模型介绍了神经网络的基本概念,包括权重、偏差和梯度下降算法。作者通过手动训练和自动化训练过程,展示了如何调整权重以优化模型,以及如何添加多个特征来提高预测准确性。文章强调了特征选择的重要性,并提供了进一步探索神经网络的资源。
摘要由CSDN通过智能技术生成

1.动机

2015年11月谷歌开源TensorFlow的时候,我非常兴奋,知道是时候开始学习了。听起来不太戏剧化,但对我来说,这实际上有点像普罗米修斯从机器学习的奥林匹斯山把火传给人类。在我的脑海里浮现出这样一个想法:当谷歌研究人员发布他们的Map Reduce论文时,整个大数据领域和Hadoop等技术都得到了大大的加速。这一次,这不是一篇论文,而是经过多年的发展,他们在内部使用的软件。

因此,我开始尽我所能地学习这个主题的基础知识,并意识到需要为在这个领域没有经验的人提供更温和的资源。这是我的尝试。

2. 出发

让我们从一个简单的例子开始。假设你在帮助一个想买房的朋友。她以40万美元的价格买了一栋2000平方英尺(185米)的房子。这个价格合适吗?

没有参照系是不容易判断的。所以你问你的朋友谁在同一个社区买了房子,你最终得到三个数据:

v2-d906d2d8f2a9b890bcdb9baa086b89f6_b.jpg

就我个人而言,我的第一反应是得到每平方英尺180美元的平均价格。

欢迎来到你的第一个神经网络!现在它还没有达到Siri的水平,但是现在你知道了基本的构建块。看起来是这样的:

v2-4767a473c73bbf3b9992552a05ef3c46_b.jpg

像这样的图表向我们展示了网络的结构以及它是如何计算预测的。计算从左侧的输入节点开始。输入值向右流动。它乘以权重,结果就是我们的输出。

把2000平方英尺乘以180就得到36万美元。预测的计算是简单的乘法运算。但在那之前,我们需要考虑我们将要乘以的权重。这里我们从一个平均值开始,稍后我们将研究更好的算法,它可以随着我们得到更多的输入和更复杂的模型而扩展。找到权重是我们的“训练”阶段。所以,每当你听说有人“训练”神经网络时,就意味着找到我们用来计算预测的权重。

v2-7cd00ea47a3e6d791277cad5355448a4_b.jpg

这是一种预测。这是一个简单的预测模型,它接受一个输入,进行一个计算,并给出一个输出(因为输出可以是连续值,所以我们的technical名称是“回归模型”)

让我们将这个过程形象化(为了简单起见,让我们将价格单位从1美元切换到1000美元)。现在我们的重量是0.180而不是180):

v2-84735c350ca7110af12f9362229da310_b.jpg

3. 更快,更好,更快,更强

我们能做得比根据我们数据点的平均值来估计价格更好吗?让我们试试。让我们先来定义在这种情况下做得更好意味着什么。如果将我们的模型应用到我们拥有的三个数据点上,它可以做到多好?

v2-61bd69509bf57ab82175b8e38808810b_b.jpg

有点黄了。黄色不好。黄色表示错误。我们想尽量缩小黄色。

v2-64b8817ba7408bc2adcfca1ae4a4f83b_b.jpg

在这里我们可以看到实际价格,预测价格,以及它们之间的差异。然后我们需要平均这些差异,这样我们就有了一个数字,告诉我们这个预测模型有多大的误差。问题是,第三行的值是-63。如果我们想用预测值和价格之间的差异作为误差度量标准,就必须处理这个负值。这就是为什么我们要引入一个额外的列来显示误差平方,从而去掉负值。

这就是我们对“做得更好”的定义——更好的模型就是误差更小的模型。误差被测量为我们数据集中每个点的平均误差。对于每个点,通过实际值和预测值之间的差值来衡量误差,并提高到2的幂次方。这称为均方误差(mse)。以它为指导来训练我们的模型并使之成为我们的损失函数(也就是成本函数)。

既然我们已经定义了一个更好的模型的度量标准,让我们用更多的权重值进行实验,并将它们与我们的平均选择进行比较:

v2-4fe028b9cc2974fb025b5908946cb4d4_b.jpg

我们的线可以更好地近似我们的值,现在我们将这个b值添加到公式中。在这种情况下,我们称之为“bias”。这使得我们的神经网络看起来像这样:

v2-8eb49970ea10db7c51be5fac102335e4_b.jpg

我们可以这样来概括,一个神经网络有一个输入和一个输出(spoiler warning:没有隐藏层)如下所示:

v2-78cce6c05951bca25bf7c315eb29655b_b.jpg

在这个图中,W和b是我们在训练过程中发现的值。X是我们插入公式中的输入(在我们的例子中,面积以平方英尺为单位)。Y是预测价格。

计算预测现在使用以下公式:

v2-4cb7ac097723e256cd4024d0d0aeaa1f_b.jpg

因此,我们当前的模型通过插入房屋面积x来计算预测,在这个公式中:

v2-b4c91e1f80768f80e837afa1b38d58a1_b.jpg

4. 训练你的Dragon

你试试训练我们的玩具神经网络怎么样?通过调整权重和偏差刻度盘来最小化损失函数。你能得到低于799的误差值吗?

v2-aedc2560dd0fdd3618bb94c7650ccc32_b.jpg

5. 自动化

恭喜你手动训练了你的第一个神经网络!让我们看看如何自动化这个训练过程。

下面是另一个带有autopilot-like功能的例子。这些是GD步骤按钮。他们使用一种称为“梯度下降”的算法,试图逐步走向正确的权重和偏差值,以最小化损失函数。

v2-e9ca91c6449ab084f980a16e1dd52a83_b.jpg

这两个新的图表可以帮助在处理模型的参数(权重和偏差)时跟踪错误值。跟踪错误是很重要的,因为训练过程都是为了尽可能减少这种误差。

梯度下降法知道它的下一步应该在哪里?知道我们要最小化的函数(我们的损失函数,所有数据点的的平均值),并且知道它当前输入(当前的权重和偏差),损失函数的导数告诉我们为了最小化误差,向哪个方向推w和b。

6. 另外两个例子

房子的大小是决定房价的唯一变量吗?显然还有很多其它因素。我们再加一个变量,看看如何调整我们的神经网络。

假设你的朋友做了更多的研究,发现了更多的数据点。她还发现每间房子有多少个浴室:

v2-f83b6b8427e1617bc1acf22e400e2ebc_b.jpg

带有两个变量的网络如下:

v2-84cfa0cd578923555d608f6e61c0e716_b.jpg

我们现在必须找到两个权重(每个输入一个)和一个偏差来创建新模型。

计算Y如下所示:

v2-3470baaf7a5850b3cb66d6ec1f325ea9_b.jpg

但是我们怎么找到w1和w2呢?这比我们只需要担心一个权重的时候要复杂一些。有一个额外的浴室会在多大程度上改变我们对房子价值的预测?

试着找出正确的权重和偏差。您将从这里开始看到,随着输入变量的增加,模型更复杂。我们开始失去创建简单2d形状的能力,这些形状可以让我们一眼就看到模型。相反,当我们调整模型参数时,我们必须主要依赖于误差值是如何变化的。

v2-52c749d32030ce02dad4683094ea0082_b.jpg

直接使用梯度下降即可。

7. 特征

现在我们已经看了具有一个和两个特征的神经网络,我们还可以想办法添加额外的特征,并使用它们来计算得到预测。权重的数量将继续增长,我们的梯度下降的实现将不得不在添加每个特征时进行调整,以便它可以更新与新特征相关联的新权重。

这里需要注意的是,我们不会盲目地向网络提供我们所知道的关于我们的examples的所有信息。我们必须有选择性地选择哪些特性提供给模型。特征选择/处理是一个完整的学科,有自己的一套最佳实践和考虑因素。如果您想查看一个示例,说明如何检查数据集以选择哪些特性来为预测模型提供数据,请查看泰坦尼克号之旅。

神经网络基础之可视化和交互式指南!

v2-071e132c7353c2be34deb925be1bf617_b.jpg
更多干货,请关注公众号:炼丹笔记

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值