运维开发网

神经网络 – ANN多输出与单输出

运维开发网 https://www.qedev.com 2020-06-07 21:21 出处:网络 作者:运维开发网整理
我最近开始研究人工神经网络,有些东西我一直试图弄清楚我似乎无法找到答案(可能因为它太琐碎或因为我正在寻找错误的关键字……). 什么时候使用多个输出而不是单个输出?我想在最简单的1/0分类情况下,最容易使用“符号”作为输出激活函数.但在哪种情况下你使用几个输出?如果您有例如多重分类问题,那么您想要将某些内容分类为例如A,B或C,并为每个类选择1个输出神经元?你如何确定它属于哪个类? 在分类上下文中,
我最近开始研究人工神经网络,有些东西我一直试图弄清楚我似乎无法找到答案(可能因为它太琐碎或因为我正在寻找错误的关键字……).

什么时候使用多个输出而不是单个输出?我想在最简单的1/0分类情况下,最容易使用“符号”作为输出激活函数.但在哪种情况下你使用几个输出?如果您有例如多重分类问题,那么您想要将某些内容分类为例如A,B或C,并为每个类选择1个输出神经元?你如何确定它属于哪个类?

在分类上下文中,有几种情况下使用多个输出单元可能会有所帮助:多类分类和显式置信度估计.

多类

对于多类情况,正如您在问题中所写,对于您感兴趣的每类数据,您通常在网络中有一个输出单元.因此,如果您尝试将数据分类为A,B或C之一,您可以在标记数据上训练您的网络,但将所有“A”标签转换为[1 0 0],将所有“B”标签转换为[0 1 0],将“C”标签转换为[0 0 1] ]. (这称为“one-hot” encoding.)您还可能希望在输出单位上使用logistic activation将其激活值限制为间隔(0,1).

然后,当你训练你的网络时,优化“交叉熵”损失(而不是更直观的欧几里德距离损失)通常很有用,因为你基本上是在试图教你的网络输出概率给定输入的每个类.通常使用“softmax”(有时也称为Boltzmann)分布来定义该概率.

欲了解更多信息,请查看http://www.willamette.edu/~gorr/classes/cs449/classify.html(稍微理论化)和http://deeplearning.net/tutorial/logreg.html(更多针对代码方面的事情).

置信度估计

多输出的另一个很酷的用途是使用一个输出作为标准分类器(例如,仅生成0或1的一个输出单元),并使用第二个输出来指示该网络在其输入信号分类中的置信度(例如,在间隔(0,1)中生成值的另一输出单元).

如果您在每个A,B和C类数据上训练一个单独的网络,但之后也会在D类(或其他)中向系统提供数据,这可能很有用 – 在这种情况下,你我希望每个网络都表明他们不确定输出,因为他们之前从未见过D类的东西.

0

精彩评论

暂无评论...
验证码 换一张
取 消