machine-learning - 如果 ANN 产生完全不同的结果,该怎么办?
问题描述
我正在尝试训练一个人工神经网络,我知道之前有人问过这个问题,为什么结果会有所不同,答案是权重的初始化是随机的。
我目前正在尝试进行一些网格搜索来调整参数,但我发现我在完全相同的参数搜索上得到了非常不同的结果。
我的问题是调整超参数的最佳实践是什么?我在想一种方法是锁定随机种子,但我担心如果我锁定我的随机种子并以这种方式进行调整,那么如果我选择一个好的种子或者不是能够找到绝对最小值,这只是运气。
那么接下来的方法是只运行几次并找到最佳结果范围,然后使用这些权重吗?(如果是这样,有人知道该怎么做吗?我通过 sklearn 包装器使用 Keras 是KerasRegressor
)
任何帮助将不胜感激。如果需要,很乐意提供代码示例!
解决方案
使用交叉验证来评估样本外的结果。从所有评估模型中选择最佳模型。此外,您应该有一个用于最终性能估计的测试集。
不用担心随机初始化权重担心过拟合。
推荐阅读
- python - Python 线程和套接字
- java - 自定义读取、拆分和添加到大文件中的对象列表
- ios - Objective-C中如何在AVAudioSession的setCategory方法中设置几个选项?
- android - 为 ARM 编译 32 位二进制文件
- xamarin.forms - 如果绑定数组没有项目,则隐藏 Xamarin 表单 StackLayout
- git - Git commit --amend 别名挂起
- php - 使用三元运算符和引用值的 foreach 中的意外行为
- python - pandas 语法错误在多个条件下返回
- arrays - 类型末尾的双问号是什么意思?
- sql - ms sql server如何检查表是否有“id”列并在“id”存在时计算行数