我想用人工神经网络玩Tic-tac-toe.我对网络的配置如下:对于9个字段中的每个字段,我使用2个输入神经元.当然,我有18个输入神经元.对于每个场,我有1个输入神经元用于一个玩家1和1个神经元用于一个玩家2.除此之外,我有1个输出神经元,它给出了当前电路板位置的评估.输出值越高,玩家1的位置越好.玩家2的位置越低,玩家2的位置越好.
但我的问题是:我怎么能编码神经网络?我的想法是使用Array [1-18]作为输入神经元.此数组的值是输入权重.我将使用循环遍历数组.每当有神经元被激活时,我都会将权重加到输出值上.所以输出值是激活的输入神经元的权重之和:
Output = SUM(ActivatedInputNeurons)
你认为这是一种编程网络的好方法吗?你有更好的想法吗?
我希望你能帮助我.提前致谢!
那么,你有一个18个神经元的输入层,以及1个神经元的输出层.没关系.但是,您需要为神经网络提供将输入置于关系中的机会.为此,您至少需要一个中间层.我建议在中间层使用9个神经元.每个都应连接到每个输入神经元,输出神经元应连接到每个中间体.每个这样的连接具有权重,并且每个神经元具有激活水平.
然后,你经历所有神经元,一次一层.输入层只是在板状态下激活.对于所有其他神经元,您将遍历其各自的连接,并总结连接神经元的激活水平和连接权重的乘积.最后,通过在此总和上应用sigmoid函数来计算激活级别.
这是工作原理.现在,您需要训练此网以获得更好的结果.有几种算法,你必须做一些谷歌搜索和阅读.最后,当结果没有足够令人信服时,您可能希望调整神经元和层的数量.例如,您可以将输入层减少到9个神经元并激活它们,其中X表示+1,O表示-1.也许添加另一个中间层会产生更好的结果,或者增加图层的神经元数量.
我并不特别了解您希望如何从一个输出神经元中获得有关董事会情况的有意义的总结.我会更多地看到:
I I I O O O I I I x O O O I I I O O O 9 input neurons 9 output neurons
在完全连接的网络中,即81个权重.然后训练输出神经元以获得在该位置上比赛的相对可取性.