美文网首页
图解人工神经网络,一文带你明白神经网络背后的数学原理

图解人工神经网络,一文带你明白神经网络背后的数学原理

作者: 学术Fun | 来源:发表于2019-08-25 19:23 被阅读0次

    (关注'AI新视野'公众号,发送‘资料’二字,免费获取50G人工智能视频教程!)

    image

    图解人工神经网络,一文带你明白神经网络背后的数学原理

    从一个例子开始

    让从生活中一个简单的例子开始。假设您正在帮助想要买房子的朋友,看中一幢2000平方英尺的房子,售价400,000美元,这是一个好价钱吗?

    为了有个参考,所以你问问那些在同一个街区买房的朋友,最后得到三个真实的数据:

    image

    就个人而言,第一直觉是获得每平方英尺的平均价格,即每平方英尺180美元。

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

    image

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

    将2,000平方英尺乘以180得到360,000美元。在这里,先从平均值开始,稍后将研究先进的算法,这些算法可以随着更多的输入和更复杂的模型而扩展。找到权重是的“训练”阶段。因此,每当您听到某人“训练”神经网络时,它只意味着找到用来计算预测的权重。

    image

    上图是一个简单的预测模型,通过接受输入,进行计算并给出输出(因为输出可以是连续值,因此上述模型就是“回归模型”)

    想象一下这个过程(为简单起见,将价格单位从1美元换成1000美元。现在的权重是0.180而不是180):

    image

    更强的模型

    能否根据数据点平均值估算总价格?如果模型应用于拥有的三个数据点,看它的效果怎样?

    image

    上图表示预测值与真实值的差别,黄色的线越长,差别越大。

    image

    在上面,可以看到实际价格值,预测价格值以及它们之间的差异。然后需要平均这些差异,因此需要有一个数字告诉这个预测模型的好坏。其中,第3行的值为-63。如果想要使用预测和价格之间的差异作为误差测量值,因此必须处理这个负值。所以需要引入一个显示误差平方的附加列的原因之一,从而消除了负值。

    好模型的定义 - 误差更少的模型。误差测量为数据集中每个点的误差平均值。对于每个点,误差通过实际值和预测值之间的差值来测量,平方误差就称为均方误差,使用其作为训练模型的目标就是损失函数。

    既然已经为更好的模型定义了测量准则,那么尝试一些更多的权重值,并将它们与平均值进行比较:

    不能通过改变权重来改进模型。但是如果添加偏差,可以找到改善模型的值。

    为了直线可以更好地逼近真值,因为已将此b值添加到直线公式中。在这种情况下,称之为“偏差值”。这使的神经网络看起来像这样:

    20190822200121.png

    可以通过说具有一个输入和一个输出的神经网络看起来像这样来概括它:

    20190822200134.png

    在此图中,W和b是在训练过程中找到的值。X是插入公式的输入(在的示例中以sq ft为单位的区域)。Y是预测价格。

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

    image

    因此,当前的模型通过在此公式中将房屋区域插入x来计算预测:

    image

    训练你的模型

    怎么样才能训练神经网络?通过调整权重和偏置拨号最小化损失函数。你能得到低于799的误差值吗?

    image

    自动化训练

    来看看如何自动化这个训练过程。下面是另一个具有类似自动驾驶函数的示例。使用一种称为“梯度下降”的算法来尝试逐步实现正确的权重和偏差值,从而最大限度地减少损失函数。

    image

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

    梯度下降如何知道下一步应该在哪里?最小化损失函数,所有数据点的平均值(y_-y)²,并知道当前的输入(当前的权重和偏差),损失函数微调W和b的方向,以便最小化误差。

    多个变量

    上文中房子的大小是唯一的变量,房子的价格是多少显然还有很多其他因素。我们再添加另一个变量,看看神经网络如何预测房价。

    假设你的朋友为了买房做了更多的工作,找到了更多的数据。她还发现了每套房子的浴室数量,数据如下所示:

    image

    带有两个变量的神经网络如下所示:

    image

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

    房价y的计算公式如下所示:

    image

    但如何求解w1和w2?预测房屋的价值时,浴室对房价的影响又是多少?

    阅读原文,交互地找到合适的权重和偏差值。

    20190822200458.png

    梯度下降法在帮助找到合适的权重和偏差值方面仍然有效。

    从上面例子可以看出,输入越多,相应的权重就越多,每个权重其实就是对应每个输入对结果的影响,然后再通过梯度下降法就可以求出每个权重值。

    分类

    上面的例子时预测房价,房价是连续的。现在我们调整一下上面的例子。假设你的朋友给你一份房屋清单,清单里有房子的面积和浴室的数量,并给房子打上了好坏的标签:

    20190822200537.png

    她需要你用数据来创建一个模型,根据它的大小和浴室数量来预测她是否想要一所房子。您将使用上面的数据来构建模型,然后她将使用该模型对其他房屋进行分类。

    到目前为止一直在玩的神经网络都在做“回归” - 它们计算并输出一个“连续”值(输出可以是4,或100.6,或2143.342343)。然而,在实践中,神经网络更常用于“分类”类型的问题。在这些问题中,神经网络的输出来自一组离散值(或“类”),如“好”或“坏”。

    将神经网络的输出转换为分类网络的一种方法是让它输出两个值 --(“好”和“坏”),softmax可以完成这个转换。softmax函数的输出是每个类的概率。例如,假设网络层输出2表示“好”,4表示“坏”,如果将[2,4]输入softmax,它将返回[0.11,0.88]作为输出。其中表示网络是88%确定输入值是“坏”。

    20190823195020.png

    Softmax输入数组并输出相同长度的数组,它的输出都是正数,和为1。


    20190822200637.png

    总结

    人工神经包括输入输出权重,输入越多,相应的权重就越多,每个权重其实就是对应每个输入对结果的影响。训练过程就是通过输入数据,通过梯度下降法就可以求出每个权重值。权重求得后,就可以输入数据预测输出结果了,这就是测试过程。人工神经网络除了能预测房价这个“回归”任务,还能通过softmax函数把输出转换为离散值,变成分类任务,也就是预测房子的好坏!

    阅读原文在线交互人工神经网络:https://jalammar.github.io/visual-interactive-guide-basics-neural-networks/

    相关文章

      网友评论

          本文标题:图解人工神经网络,一文带你明白神经网络背后的数学原理

          本文链接:https://www.haomeiwen.com/subject/zslkectx.html