因此,我正在尝试使用遗传算法实现我的第一个NN,用于训练和S形激活函数。这一切都很好,但我不太确定权重必须在什么范围内。我已经搜索了一些关于这个问题但没有运气的问题。如何选择NN中的权重范围?它取决于什么?
答案 0 :(得分:1)
权重可以看作是您尝试使用GA / NN方法解决的问题的内在属性;这些没有一般的最佳价值,所以你最好不要研究不同的体重范围(w.r.t.训练集),并修复其他参数。
例如,在
中研究参数weightSpan的不同设置weights \in [-weightSpan/2, weightSpan/2],
并让您的初始染色体描述具有此范围内随机值的权重。您的压缩函数(sigmoid)用于将NN响应分级到范围[0,1]。
找到合适的权重范围,就像设置隐藏层数量的值一样,如果是问题特定的测试则是一个过程。 ("没有免费午餐")。
编辑:
我认为我补充说,研究不同体重范围的最简单方法可能是设定一个固定的体重范围,比如[-1,1],并研究你的挤压功能(sigmoid)中的挤压常数。即,研究sigmoid中常量c
的不同(非负)值
σ(s) = 1 / (1 + e^(-c*s))