Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 神经网络-输入值_Neural Network - Fatal编程技术网

Neural network 神经网络-输入值

Neural network 神经网络-输入值,neural-network,Neural Network,我有一个问题可能是琐碎的,但在我看过的任何地方都没有描述。我在研究神经网络,我看到的每一个地方都有一些理论和一些小例子,其中有一些0和1作为输入。我想知道:我是否只需要将一个值作为一个神经元的输入值,或者它可以是一个向量,比如说,3个值(例如RGB颜色)?它可以是任何你想要的,只要你相应地编写你的内部函数 您提到的示例使用[0;1]作为其域,但您可以使用R、R²或任何您想要的,只要您在神经元中使用的函数定义在此域上 在您的情况下,您可以在R3上定义函数,以允许处理RGB值 一个简单的例子:使用(

我有一个问题可能是琐碎的,但在我看过的任何地方都没有描述。我在研究神经网络,我看到的每一个地方都有一些理论和一些小例子,其中有一些0和1作为输入。我想知道:我是否只需要将一个值作为一个神经元的输入值,或者它可以是一个向量,比如说,3个值(例如RGB颜色)?

它可以是任何你想要的,只要你相应地编写你的内部函数

您提到的示例使用[0;1]作为其域,但您可以使用R、R²或任何您想要的,只要您在神经元中使用的函数定义在此域上

在您的情况下,您可以在R3上定义函数,以允许处理RGB值

一个简单的例子:使用(x1,y1,z1),(x2,y2,z2)->(ax1+x2,by1+y2,cz1+z2)作为函数将两种颜色转换为一种颜色,A b和c是您的学习系数,您将在学习阶段确定


非常详细的信息(包括你问题的答案)是可用的。

在处理多维数据时,我相信两层神经网络据说能提供更好的结果

就你而言:

R[0..1] => (N1)----\
                    \
G[0..1] => (N2)-----(N4) => Result[0..1]
                    /
B[0..1] => (N3)----/
如您所见,N4神经元可以处理3个条目


(0…1)间隔是一个约定,但却是一个很好的方法。这样,您就可以轻松地编码一组通用的神经元类,可以使用任意数量的条目(我有模板C++类,其条目的数目作为模板参数)。因此,你只需对神经元的逻辑编码一次,然后玩弄神经元内的网络结构和/或功能组合。

通常单个神经元将多个实数作为其输入,并输出一个实数,该实数的计算通常是将S形函数应用于实数之和(缩放,然后加上或减去恒定偏移)

如果你想输入,比如说,两个RGB向量(2 x 3实),你需要决定如何组合这些值。如果你把所有元素加在一起并应用sigmoid函数,这相当于得到六个实“平坦”。另一方面,如果你处理R元素,那么G元素和B元素,都是单独的(例如,求和或减法),实际上你有三个独立的神经元


简而言之,不,单个神经元不接受向量值。

上述答案在技术上是正确的,但不要解释简单的事实:从来没有一种情况需要给单个神经元一个数字向量

从实用的角度来看,这是因为(正如前面的一个解决方案所示),向量中的每个数字都可以有一个神经元,然后将所有这些都作为单个神经元的输入。这将在训练后获得您想要的行为,因为第二层神经元可以有效地利用整个向量

从数学的角度来看,有一个编码理论的基本定理表明,任何数字向量都可以表示为一个数字。因此,如果你真的不想要额外的神经元层,你可以简单地将RGB值编码为一个数字,并将其输入神经元。不过,这个编码函数可能会布莱让大多数学习问题变得更加困难,所以我怀疑在大多数情况下,这个解决方案是否值得


总而言之:使用人工神经网络时,无需向输入单元提供矢量,但不会因此损失计算能力。

使用归一化为可见光谱的光波作为输入

网上有一些近似方程式。 搜索RGB到波长转换 或
使用HSL颜色模型并提取色调分量,可能还使用饱和度和亮度。嗯…

一般来说,单个神经元的输入值为0到1之间的值。这种约定不仅是为了易于实现,而且是因为将输入值归一化到相同的范围可确保每个输入具有相似的权重。(如果有些图像具有8位颜色,像素值介于0和7之间,有些图像具有16位颜色,像素值介于0和255之间,您可能不希望因为数字值较高而喜欢24位颜色图像。同样,您可能希望图像的尺寸相同。)

就使用像素值作为输入而言,通常会尝试收集比像素更高级别的图像表示形式()。例如,给定5 x 5(标准化)灰度图像:

[1 1 1 1 1]
[0 0 1 0 0] 
[0 0 1 0 0] 
[0 0 1 0 0] 
[0 0 1 0 0]
我们可以使用以下特征矩阵来帮助发现图像的水平、垂直和对角线特征。有关更多信息,请参阅

[1 1]  [0 0]  [1 0]  [0 1]  [1 0], [0 1]
[0 0], [1 1], [1 0], [0 1], [0 1], [1 0]
为构建该图像的输入向量v,取第一个2x2特征矩阵,并将其与元素相乘“应用”到图像中的第一个位置。应用

[1 1] (the first feature matrix) to [1 1] (the first position in the image)
[0 0]                               [0 0] 
将产生2,因为1*1+1*1+0*0+0*0=2。将2附加到此图像的输入向量后面。然后将此特征矩阵移动到下一个位置,一个移动到右侧,然后再次应用,将结果添加到输入向量。对特征矩阵的每个位置和每个特征矩阵重复此操作。这将为单个图像构建输入向量。确保为每个图像以相同的顺序构建向量


在这种情况下,图像是黑白的,但使用RGB值,您可以扩展算法以执行相同的计算,但为每个像素的输入向量添加3个值——每种颜色一个。这应该为您提供每个图像一个输入向量和每个神经元一个输入。然后,在运行大致网络。

但如果一个数据集与另一个数据集保持关系,则应将它们提供给不同的神经元,不是吗?或者它可能是一个向量的输入?是的,它可以是一个向量输入;R3表示一个三成员向量(嗯,triv