理解神经网络:神经元的概念

https://www.toutiao.com/a6671989016830673412/

在本文中,我们将介绍神经网络的简单概念。

首先,我们需要了解什么是神经网络。为了做到这一点,我们将从一个现实生活中的问题及其使用神经网络逻辑的解决方案的例子开始。

例子

假设你在你的房间里写代码,你5岁的弟弟来找你并向你展示他的画作。

理解神经网络:神经元的概念

现在你看看它,你能看出这是什么:

理解神经网络:神经元的概念

而你脑海中浮现的问题是:

理解神经网络:神经元的概念

那是什么呀?

特征

你能做的就是提出一个假设“这是一只猫”。您可以记下您看到的生物的所有特征。所有这些特征都应该影响假设,这是合乎逻辑的,对吧?

理解神经网络:神经元的概念

但是,您如何确定所有这些特征实际上是您认为的那些?你怎么知道你所看到的翅膀是真实的翅膀?你总是可以问,但是因为那太容易了,而且不是机器学习,你能做的就是把概率分配给你看到的东西。你可以肯定有2只眼睛,有4条腿,一条腿似乎变形了,所以有4条腿的生物的概率应该更低。有了尾巴你不能确定它是否真的意味着它是一个尾巴,因为它的颜色和云朵看起来比较像......让我们不再深入讨论它并提供完整的特征列表及其概率。

理解神经网络:神经元的概念

权重

那么你又要问问自己,所有这些特征同样重要吗?事实上,如果这只猫失去一只眼睛,它仍然是一只猫。然而有翅膀的生物一般都是会飞翔的,所以肯定不是猫。因此,我们的下一个目标是确定每个特征在做出最终决策时的重要性,以及它们是否会增加或减少概率。

理解神经网络:神经元的概念

现在我们已经确定了这些特征的重要性并对它们进行了适当的缩放,我们可以简单地将它们相加并得到一些结果。

Y = 0.83×(-0.87)+ 0.95×0.42 + 0.66×0.69 + 0.72×(-0.64)+ 0.5×0.35 = -0.1535

激活函数

请注意,我们写的是0.83而不是83%,但值是相同的。我们还添加了正面特征并减去负面特征乘以它们的权重。我们可以看到输出为负数,因此我们可以得出结论,这可能不是猫,但我们必须做的最后一件事,可能存在一种情况,我们有很多特征并且输出分数非常大的情况。我们希望数据的格式限制在某个区间,例如<0,1>。我们可以将其视为0-100%之间的概率。我们为什么需要这个?首先,假设我们想要根据有猫的事实预测不同的东西,那么我们函数的输出将成为其他分类中的一个特征,因此它必须与所有其他特征在同一范围内。

我们应该使用什么函数来规范化输出?那么有很多可供选择,但现在我们使用sigmoid函数。

理解神经网络:神经元的概念

它返回<0,1>范围内的输出,因此我们可以将输出视为0-100%之间的概率。现在我们可以用这种格式编写公式:

Y = sigmoid(0.83×( - 0.87)+ 0.95×0.42 + 0.66×0.69 + 0.72×( - 0.64)+ 0.5×0.35)

神经元

恭喜你,你有一个神经元!

理解神经网络:神经元的概念

那么神经元是做什么的呢?

  • 把输入值乘以它们的权重,
  • 然后将它们相加起来,
  • 之后,它将激活函数应用于求和。

神经元是如何学习的?

神经元的目标是根据大量输入和输出示例调整权重。因此,假设我们向神经元展示了一千个猫的图片和非猫图片的示例,并且我们展示了每个示例中我们展示了哪些特征以及我们确信它们在这里的确定程度。基于上千张图像神经元决定:

  • 哪些特征是重要的和正面的(例如每只猫的都有一条尾巴,因此权重必须大而且是正的),
  • 哪些特征并不重要(例如,只有少数图片有2只眼睛,因此权重很小),
  • 哪些特征是重要的和负面的(例如每个包含角的图片实际上是一只独角兽而不是猫的图片,所以权重必须大而且是负的)。

神经网络

正如我们之前所说,我们的神经元可以是其他一些神经元的输入。我们神经元的输入也可以是其他神经元的输出。

理解神经网络:神经元的概念

例如,我们想要基于照片的像素来预测是否存在诸如角,腿等的特征,然后基于它是猫的图片这一事实我们想要预测孩子喜欢什么类型的动物。

为此,激活函数特别有用,因为现在我们已经规范化了所有神经元的输出,因此它们可以作为网络下一层的输入。

请注意,通常每个神经元的输出不会连接到下一层的单个神经元,而是连接到很多神经元。这是因为神经元预测的信息对许多其他神经元有用,为什么我们不想使用它呢?

Black box

在这个例子中,我们展示了神经元决定图像是否包含基于特定特征的猫。在现实生活中,我们通常不知道哪些特征用于预测最终输出。在我们的例子中,我们说过这不是一只基于角等特征的猫。但在现实生活中,神经网络可以选择某些位置的像素等特征,并通过许多我们不知道的分类处理它们,并根据预测最终输出的分类。这被称为Blackbox方法,因为我们只看到输入和输出而不是中间完成的所有计算。因此,输入和输出层之间的层称为隐藏层。

什么是神经网络?

我认为我们已经为神经网络的最终定义做好了准备。

神经网络是一组按层次组成的神经元。每个神经元都是一个数学运算,它接受输入,乘以它的权重,然后通过激活函数将总和传递给其他神经元。神经网络正在学习如何根据前面的例子调整输入的权重来对输入进行分类。

猜你喜欢

转载自blog.csdn.net/weixin_42137700/article/details/88812138