繁体   English   中英

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

[英]How to work with an output of a neural network?

我是神经网络的新手,我正在尝试使用python建立一个小型网络。 但是由于我是新手,所以我不知道如何缩放和比较输出。 所以这是我的问题。

我提供的输入是这样的列表

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

因此,我进行了所有的神经网络编码,数据通过网络传递后,网络使用S型函数输出了-1,+ 1之间的数字。 如何缩放输出以计算期望输出为4的误差?

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

这不是一个愚蠢的问题。 您想要做的是将所需的输出规格化在网络输出的范围内(或反比例放大网络输出,但范数相反)。

因此,将数据通过类似以下的函数:

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)]

在这种特定情况下,您可能需要线性输出节点(即非S型)。 假设这是一个回归问题(如果不是,请参见下文)。 通常,如果不希望NN预测更高的值“更难”,则需要一个线性输出节点。

大多数机器学习模块都允许您进行设置。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM