在使用反向传播变体(如弹性反向传播)的前馈神经网络中,由于权重的随机初始化,初始位置位于误差图上的某个随机山谷中,这个山谷可能是也可能不是局部最小值。虽然有方法可以克服局部最小值,但如果这些方法没有被使用(或者在给定的地形上效果不佳),那么神经网络似乎就无法立即重复。也就是说,其中涉及到一些运气的成分。
在一个有100万个山谷且只有一个全局最小值的图表上,要找到那个唯一的全局最小值,最多需要进行100万次不重复的权重初始化(假设每次初始化都落在完全不同的山谷中)。因此,如果我偶然发现了一个全局最小值的收敛点(解决方案),但不小心丢失了权重(数据损坏或其他原因),我可能无法再次找到这个收敛点。考虑到这一点,我是否应该在同一数据集上同时运行多个神经网络,然后一旦达到我期望的误差率就停止并保存网络?我知道同时运行多个网络是一种常见的做法,但这似乎使得这种半强力技术成为必需的。
回答:
正确
你确实需要将这些计算出的权重存储在安全的地方。考虑到搜索景观的难度,你无法保证再次发现同样的(可能)最优解。
多次重启
使用随机重启并跟踪当前最佳解决方案是非常常见的做法。
关于神经网络学习的文献
请参阅这本优秀的书籍摘录:系统性介绍