首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解释NEAT-Python的输出

如何解释NEAT-Python的输出
EN

Stack Overflow用户
提问于 2021-05-03 06:11:50
回答 1查看 204关注 0票数 1

我正在学习使用NEAT算法的神经网络。为了理解结果,我尝试使用Excel手工重现一些值的计算结果。

运行NEAT-Python的XOR演示,我得到了以下结果和相应的图形:

代码语言:javascript
复制
Fitness: 3.93262784315
Nodes:
        0 DefaultNodeGene(key=0, bias=-4.28711170619, response=1.0, activation=sigmoid, aggregation=sum)
        1197 DefaultNodeGene(key=1197, bias=-1.20497802851, response=1.0, activation=sigmoid, aggregation=sum)
Connections:
        DefaultConnectionGene(key=(-2, 0), weight=-1.83815166978, enabled=True)
        DefaultConnectionGene(key=(-2, 1197), weight=1.7368731859, enabled=True)
        DefaultConnectionGene(key=(-1, 0), weight=5.72212927441, enabled=True)
        DefaultConnectionGene(key=(-1, 1197), weight=-1.30171417401, enabled=True)
        DefaultConnectionGene(key=(1197, 0), weight=9.27762332932, enabled=True)

Output:
input (0.0, 0.0), expected output (0.0,), got [5.485892844789737e-10]
input (0.0, 1.0), expected output (1.0,), got [0.9999970321654681]
input (1.0, 0.0), expected output (1.0,), got [0.9992352946960754]
input (1.0, 1.0), expected output (0.0,), got [0.2595603437828634]

Graph of Neural Network

虽然我理解NN的基础知识,但我无法获得命令行的结果:首先,我以(0,0)为例计算节点1197的值:

代码语言:javascript
复制
-1.3 * 0 +1.7 * 0 -1.2 (bias)
= -1.2
sigmoid(-1.2) = 0.231475... (result of node 1197)

然后是最终结果:

代码语言:javascript
复制
5.7 * 0 +9.3 * 0.231475 (result node 1197) -1.8 * 0 -4.3 (bias)
=-2.147282...
sigmoid(-2.147282) = 0.104585...

这肯定不等于预期的5.485892844789737e-10。有人能在我的计算中发现错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-08 06:13:07

对于每个遇到同样情况的人:我逐行调试了代码,发现sigmoid激活函数的定义如下:

代码语言:javascript
复制
def sigmoid_activation(z):
    z = max(-60.0, min(60.0, 5.0 * z))
    return 1.0 / (1.0 + math.exp(-z))

我不能完全确定这个“规范化”的目的,但是这个5的因素造成了我的困难。注释掉第一行后,一切都像预期的那样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67361563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档