deep-learning - 深度学习概念 - 超参数调整权重 RNN/LSTM
问题描述
当我们建立一个模型并训练它时,初始权重是随机初始化的,除非指定(种子)。
众所周知,我们可以调整各种参数,例如 epochs、优化器、batch_size 等,以找到“最佳”模型。
我有问题的概念是:即使我们确实在调整后找到了最好的模型,权重也会不同,产生不同的模型和结果。因此,如果我们使用“最佳参数”再次编译并运行它,那么最好的模型可能就不是最好的了。如果我们使用可重复性参数为权重播种,我们不知道这些权重是否是最佳权重。另一方面,如果我们调整权重,那么“最佳参数”将不再是最佳参数?我陷入了一个循环。是否有关于首先调整哪些参数而不是其他参数的一般指导方针?
还是整个逻辑在某个地方存在缺陷,而我想多了?
解决方案
- 我们随机初始化权重,以确保每个节点的行为与其他节点不同(不对称)。
- 根据超参数(时期、批量大小等、迭代等),权重会更新,直到迭代结束。最后,我们将更新后的权重称为模型。
- 种子用于控制初始化的随机性。如果我没有错,一个好的学习算法(目标函数和优化器)会收敛,而与种子值无关。
- 同样,一个好的模型意味着调整所有的超参数,确保模型没有欠拟合。
- 另一方面,即使模型也不应该过拟合。
- 没有什么比得上最好的参数(权重、偏差),我们需要不断地调整模型,直到结果令人满意并且主要部分是数据处理。
推荐阅读
- reactjs - react-sortable-hoc 在第一次使用 edgeOffset 移动后停止
- c# - FileHelpers 删除列表/重置
- bash - 在 lftp 中添加 shell if 语句
- javascript - 如何在javascript中转换为sql数据
- multithreading - 在多线程场景中使用 Redemption GetMessageFromID
- python - MySQL TypeError:格式字符串的参数不足
- android - [android ndk]如何获取资产文件夹中文件的绝对路径?
- node.js - Objection.js WHERE IN 查询是否会减慢我的 Node.js 应用程序速度?
- mysql - SQL按列中的数字排序
- android - 将带有嵌套对象的 JSON 对象展平为展平字段