什么是神经网络中的神经元/它们如何工作?

机器算法验证 神经网络
2022-04-10 06:22:46

从我发现到现在:

神经网络中的层由可参数化数量的神经元组成。神经网络由多层组成。一个神经元由一个函数 f(x1, x2, ..., xn)、一个使用 f 作为输入并给出二进制输出的 sigmoid 函数和一个权重因子组成,该权重因子与 sigmoid 函数相乘并确定该神经元的大小被认为是层的输出。

这是正确的吗?函数是什么/它如何将输入与输出结合起来?

(我自己尝试阅读文献和一些课程材料,但他们要么忽略这部分/称其为黑匣子,要么假设你拥有理论数学博士学位,但我的大学只专注于应用信息学。所以如果你有可以理解的文献像我这样的人,我也会很感激)

4个回答

你对这个主题的整体看法是正确的。神经元只不过是一组输入、一组权重和一个激活函数。神经元将这些输入转换为单个输出,然后可以将其作为稍后另一层神经元的输入。

虽然神经网络之间的细节可能有所不同,但函数f(x1,x2,,xn)通常只是一个加权和:

f(x1,x2,,xn)=w1x1+w2x2+...+wnxn
每个神经元都有一个权重向量 w=(w1,w2,...,wn),其中n是该神经元的输入数。这些输入可以是“原始”输入特征——比如天气模型的温度、降水和风速——也可以是来自较早层的神经元的输出。

在训练阶段,每个神经元的权重会发生变化,使得最终的网络输出偏向于某个值(通常为 1)作为信号,而另一个(通常为 -1 或 0)作为背景。

神经网络中的非线性行为是通过使用激活函数(通常是 sigmoid 函数)来实现的,的输出被传递和修改。这允许神经网络描述更复杂的系统,同时仍然以简单的方式组合输入。f

我发现Tim Dettmers的Deep Learning in a Nutshell系列是对机器学习主题的一般性介绍。

在人工神经网络中,神经元是模拟生物神经元功能的数学函数。通常,一个神经元计算其输入的加权平均值,并且这个和通过一个非线性函数传递,通常称为激活函数,例如 sigmoid。我附上了一张来自 AI 课程的图片来说明它(请注意,在这种特殊情况下,加权和还包含一个偏差项)。 在此处输入图像描述 然后可以将神经元的输出作为输入发送到另一层的神经元,该神经元可以重复相同的计算(输入的加权和和激活函数的变换)。

请注意,此计算对应于将输入/激活状态向量与权重矩阵相乘(并将结果向量传递给激活函数)。

如果您对神经网络感兴趣,不仅从工程的角度来看,而且还对这些人工神经元与真实生物神经元的相似之处感兴趣,一本仍然很有趣的经典书籍是Rumelhart 和 McClelland 的 Parallel Distributed Processing

最简单的版本相当简单,尤其是回归案例。如果是您的结果,是您的数据,则模型是yX

y=Zβ
Z=σ(Xα)
σ(x)=1/(1+ex)

α是参数,由优化器选择。固定 Z 的数量与固定βα

软件工程人工神经网络中,神经元是数学函数的“容器”,通常在人工神经网络图形表示中绘制为圆圈(见下图)。一个或多个神经元形成一个层——一组通常在人工神经网络表示中垂直排列的层。在更复杂的硬件系统中,每台计算机或每组计算机都可以看作是图形表示中的单个神经元。在软件工程的范围内:

神经元可以属于输入层(下图红色圆圈)、隐藏层(蓝色圆圈)或输出层(绿色圆圈)。

在一个简单的单向人工神经网络(也称为前馈人工神经网络)中:

  • 输入层神经元接收输入信息(通常是文本、图像、音频和其他类型数据的数字表示),通过数学函数(激活函数)对其进行处理,并根据条件将输出“发送”到下一层的神经元。在通往其他层神经元的路上,该数据乘以预设权重(放置在连接一个神经元与其他神经元的图形线中)。

  • 隐藏层神经元从输入层或前一个隐藏层接收输入,将它们传递给新函数并将结果发送到下一层神经元。同样,这里的数据通常乘以途中的权重。

  • 输出层神经元接收来自前一层的输入,通过新函数处理它们并输出预期结果。结果可以是简单的二元分类(0 或 1、是或否、黑色或白色、狗或非狗)、多项选择分类(ei:猫、狗或狼)、数字预测、矩阵等。根据人工神经网络的类型,该输出可以用作最终结果,也可以用作相同或另一个神经网络上新循环的输出。

来源:https://medium.com/@datamonsters/artificial-neural-networks-for-natural-language-processing-part-1-64ca9ebfa3b2

神经元中包含的数学函数可以根据人工神经网络的类型而有所不同——它们可以是简单的回归函数、非线性 sigmoid 函数等。