首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络中的双极性数据表示

神经网络中的双极性数据表示
EN

Stack Overflow用户
提问于 2015-08-01 02:52:27
回答 1查看 552关注 0票数 0

为什么我们在神经网络中使用双极数据表示。例如,-0.5和0.5代替0和1,或者-1和1代替0和1。如本文http://www.codeproject.com/Articles/11285/Neural-Network-OCR?fid=206868&df=90&mpp=25&noise=3&prof=True&sort=Position&view=Normal&spc=Relaxed&fr=26#xx0xx所示

EN

回答 1

Stack Overflow用户

发布于 2015-08-03 01:14:09

我猜,你的问题是由你的推荐人的这句话引起的:

但是,在许多神经网络训练任务中,最好以所谓的“双极”方式表示训练模式,将输入向量"0.5“而不是"1”和"-0.5“而不是"0”放入

在使用“双极”缩放时,有两个考虑因素:

a)在输入的分布是高斯或类似的情况下,双极范围的一般选择通常由神经网络使用的传递函数确定。大多数值都集中在某个平均值周围,只有相对较少的异常值。例如,如果您对节点使用逻辑函数(output = 0,+1 ),那么您将在0,+1之间缩放输入。类似地,如果您使用tanh函数(output = -1,+1 ),那么您将以类似的方式缩放您的输入。所有这些都假设你的输入是连续的。

b)由于学习是如何发生的,范围进一步细化。神经网络学习通常使用传递函数的导数,最好的学习发生在输入变化的导数变化最大的地方。传递函数的最陡峭部分。在传递函数的任何一个极端,曲线变平,导数很小,因此学习是最小的/缓慢的。为了避免这些区域,如果您确定输入的值范围,您可以缩放它们,使其完全位于传递函数的陡峭部分的范围内,通常为tanh()的-0.8,+0.8,但在您的参考中,'BipolarSigmoidFunction‘为-0.5,+0.5。

双极的选择由传递函数决定(您的参考使用'BipolarSigmoidFunction'),双极值是任意的,但以传递函数曲线的最陡峭部分为中心。

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

https://stackoverflow.com/questions/31753172

复制
相关文章

相似问题

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