如何使用神经网络的输出?

时间:2016-03-23 15:42:27

标签: python machine-learning neural-network

我对神经网络很陌生,我试图用python建立一个小型网络。但是,由于我是新手,我不知道如何扩展和比较输出。所以这是我的问题。

我给出的输入是这样的列表

input = [0,0,1]
desired output = 4

所以我做了所有神经网络编码,在数据通过网络之后,网络使用sigmoid函数输出-1,+ 1之间的数字。如何缩放输出以使用所需的输出4来计算误差?

这可能是一个愚蠢的问题,但我是机器学习的新手。感谢

2 个答案:

答案 0 :(得分:0)

这不是一个愚蠢的问题。您想要做的是将您想要的输出归一化到您的网络输出的范围内(或反向并缩放网络输出,但规范是反过来的。)

因此,请将您的数据通过以下函数:

def normalize_values(list_of_values, desired_min=-1., desired_max=1.):
    min_val = min(list_of_values)
    max_val = max(list_of_values)
    range = max_val - min_val
    scale = (desired_max-desired_min)/range
    return [((x-min_val)*scale)+desired_min for x in list_of_values)]

答案 1 :(得分:0)

在这种特定情况下,您可能需要线性输出节点(即不是sigmoid)。假设这是一个回归问题(如果不是,请参见下文)。通常你想要一个线性输出节点,如果它不应该是更难的'让NN预测更高的价值。

大多数机器学习模块允许您设置此项。

Sigmoid输出节点主要用于分类问题(因为神经网络越来越难以预测接近1的值,这是100%确定的类别)

如果这是一个分类问题,通常NN对每个类的输出节点表现更好(因此对每个类使用sigmoid输出节点,其输出值对应于NN认为样本的机会)属于那个特定的类。)