假设我试图创建一个神经网络来识别简单的5x5像素网格上的字符。我只有6个可能的字符(符号)- X,+,/,\,|
目前我有一个前馈神经网络-有25个输入节点,6个隐藏节点和一个输出节点(0到1乙状结肠之间)。
输出对应于符号。如'X' = 0.125、'+' = 0.275、'/' = 0.425等。
无论网络的输出(测试)是什么,都对应于任何数字上最接近的字符。i.e - 0.13 = 'X'
在输入时,0.1表示像素根本没有阴影,0.9表示完全阴影。
在对网络进行6个符号的训练后,我增加了一些噪声来测试它。
不幸的是,如果我给'/‘加上一点噪音,网络就会认为它是'\’。
我想,6种符号的顺序(即,e-它们对应的数字表示)可能会产生不同的效果。
可能是隐藏节点的数量导致了这个问题。
也许我把字符映射到数字的一般概念导致了这个问题。
任何帮助都将是非常感谢的,以使网络更加准确。
发布于 2016-09-21 18:01:12
输出编码是最大的问题。最好对输出使用一次热编码,以便有六个输出节点。
例如,
- 1 0 0 0 0 0
X 0 1 0 0 0 0
+ 0 0 1 0 0 0
/ 0 0 0 1 0 0
\ 0 0 0 0 1 0
| 0 0 0 0 0 1这对于神经网络来说要容易得多。在预测时,选择值最高的节点作为预测。例如,如果在每个输出节点上有以下输出值:
- 0.01
X 0.5
+ 0.2
/ 0.1
\ 0.2
| 0.1预测字符为"X“。
https://stackoverflow.com/questions/39622507
复制相似问题