我有一个可能微不足道的问题,但在我看过的任何地方都没有描述.我正在研究神经网络,我看到的是一些理论和一些简单的例子,其中有一些0和1作为输入.我想知道:我是否只需要将一个值作为一个神经元的输入值,或者它可以是一个矢量,比方说,3个值(例如RGB颜色)?
zer*_*ord 11
上述答案在技术上是正确的,但不解释简单的事实:从来没有一种情况需要给单个神经元提供一个数字向量.
从实际情况来看,这是因为(作为较早的解决方案之一显示),你可以有一个向量中每个数字神经元,然后有所有这些是输入到单个神经元.这可以在训练后获得您想要的行为,因为第二层神经元可以有效地利用整个矢量.
从数学角度来看,存在编码理论的基本定理,其表明任何数字向量都可以表示为单个数字.因此,如果您真的不想要额外的神经元层,您可以简单地将RGB值编码为单个数字并将其输入神经元.虽然,这种编码功能可能会使大多数学习问题变得更加困难,所以我怀疑这种解决方案在大多数情况下是值得的.
总结:使用人工神经网络而不向输入单元提供矢量,但由于这个原因而没有失去计算能力.
在处理多维数据时,我相信一个双层神经网络被认为可以提供更好的结果.
在你的情况下:
R[0..1] => (N1)----\
\
G[0..1] => (N2)-----(N4) => Result[0..1]
/
B[0..1] => (N3)----/
Run Code Online (Sandbox Code Playgroud)
如您所见,N4神经元可以处理3个条目.
[0..1]间隔是一个惯例,但是一个好的imo.这样,您可以轻松编写一组可以接受任意数量条目的通用神经元类(我有模板C++类,其中条目数作为模板参数个人).因此,您需要对神经元的逻辑进行一次编码,然后使用神经元内的网络结构和/或功能组合来玩具.
| 归档时间: |
|
| 查看次数: |
19948 次 |
| 最近记录: |