我想了解为什么深度学习模型如此不稳定。假设我使用相同的数据集多次训练机器学习模型(例如逻辑回归)和多次深度学习模型(例如 LSTM)。之后,我计算每个模型的平均值及其标准差。深度学习模型的标准差会比机器学习模型高很多。为什么会这样?
这与深度学习方法中的权重初始化有什么关系吗?如果是这样,为什么模型并不总是收敛于同一点?
为什么深度学习模型与机器学习模型相比不稳定?
深度学习在评估指标性能方面存在很大差异的原因可能有很多。这里有几个想法:
初始化:深度学习模型使用随机参数值进行初始化。不同的起始参数可能会导致最终的参数值,尤其是在 epoch 很少的情况下。传统的机器学习可能没有随机参数初始化。
优化:深度学习通常使用没有收敛保证的随机梯度下降 (SGD) 进行优化。传统的机器学习算法可以用其他具有收敛保证的方法进行优化。
深度:深度学习是一堆非线性,它是一个复杂的系统,可能会在不同的运行中产生不同的解决方案。传统的机器学习可能没有相同的复杂性。
当您从知名资源中寻找信息时,
- 教程为什么会产生不同的结果:解释为什么简单的 ML 算法与神经网络相比具有更好的性能和更稳定的性能。
- 关于工业识别任务的论文:对于少量的训练数据,经典分类器为未预训练的神经网络提供了更好的性能
- 关于心力衰竭的论文:比较深度学习与逻辑回归的性能
- 滑坡敏感性评估论文:提出DLNN模型比四个基准模型具有更高的性能;多层感知器神经网络、支持向量机、C4.5-决策树模型和随机森林模型
资源 1 - 教程:
本研究在机器学习中每次都有不同的结果,将更简单的 ML 算法(线性回归和逻辑回归)与神经网络进行比较,并解释为什么结果会有所不同
算法对特定数据的敏感性
- 高方差:算法对训练期间使用的特定数据更敏感。
- 低方差:算法对训练期间使用的特定数据不太敏感。
据说线性回归和逻辑回归等更简单的算法比其他类型的算法具有更低的方差。
考虑到您的观察,具有高标准偏差的 LSTM 表明它比经典机器学习模型(逻辑回归)更敏感
确保低方差:更改超参数,更改训练数据集的大小并更改为更简单的算法。
算法的性质
确定性机器学习算法:这意味着,当算法给定相同的数据集时,它每次都学习相同的模型。一个例子是线性回归或逻辑回归算法。
随机算法(非确定性):它们的行为包含随机性元素。在学习过程中使用随机性的算法的一个例子是神经网络。它以两种方式使用随机性:随机初始权重(模型系数)和每个时期的样本随机洗牌。
神经网络(深度学习)是一种随机机器学习算法。随机初始权重允许模型尝试从每个算法运行的搜索空间中的不同起点学习,并允许学习算法在学习期间“打破对称性”。训练期间样本的随机洗牌确保每个梯度估计和权重更新都略有不同。
解决方案:控制算法使用的随机性,确保每次运行算法时获得相同的随机性
评估程序
两个最常见的评估程序是训练测试拆分和 k 折交叉验证。这些模型评估程序是随机的,过程中做出的小决定涉及随机性。
观察令
观察结果暴露于模型的顺序会影响内部决策。一些算法特别容易受到这种影响,比如神经网络
资源 2 - 关于工业识别任务的研究论文
使用来自工业应用的五个真实数据集实现的识别率进行了比较。结果表明,在给定少量训练数据的情况下,未经预训练的神经网络产生的结果比经典分类器更差。
深度神经网络需要非常大量的数据进行训练,以发展良好的泛化能力,从而提供良好的结果
即使有许多训练对象可用,深度神经网络仍然容易过度拟合。由于要处理的数据量很大,训练也占用了大量的时间,可能需要几天甚至几周的时间 10. 有效使用这些方法需要非常高的计算能力 22. 因此,此类应用应该由图形处理单元 (GPU) 而不是中央处理单元 (CPU) 处理以节省时间 10. 此外,必须设置和优化许多参数,例如初始权重、激活函数、学习率、批量大小 23 . 根据 Bengio 21,结果的质量取决于初始值。由于神经网络是黑箱,决策过程不是用户可理解的。
资源 3 - 心力衰竭研究论文
用于心力衰竭再入院预测的深度学习与逻辑回归的问题表明,带有正则化的逻辑回归与最佳神经网络性能相匹配。
资源 4 - 滑坡敏感性评估研究论文
比较深度学习神经网络模型与传统机器学习模型在滑坡敏感性评估中的预测性能
DLNN 模型的学习能力已经被评估并与使用训练数据集的多层感知器神经网络、支持向量机、C4.5 决策树模型和随机森林模型进行比较,而每个模型的预测性能已经使用验证数据集进行了评估和比较。为了评估他们对每个模型的学习和预测能力,计算了分类准确性、敏感性、特异性以及成功和预测率曲线下的面积(AUC)。结果表明,所提出的 DLNN 模型比四个基准模型具有更高的性能。虽然 DLNN 很少用于滑坡敏感性评估,
参考资料:
我可以建议尽可能将您的 ML 或 DL 模型的随机参数设置为某个常数,然后比较这两个模型。您还可以使用 GridSearch 为您的模型在这两种情况下找到最佳参数,如果您的数据是为训练/测试拆分的数据保持不变,您可以查看观察到的变化。
在稳定性方面,您的 DL 模型求解器由于具有相对大量的超参数以及它们的随机性,例如 SGD 严重依赖于步长,这意味着它可能会或可能不会基于初始化收敛,您可以尝试使用不同的这些参数的变化,以找出模型何时拟合良好而没有过度拟合/欠拟合。根据我的经验,从可以快速训练的数据中抽取一个小的随机子样本,并按照我提到的那样为 ML 和 DL 模型找到最佳参数。
考虑一个普通的线性回归(OLS,省略索引为了方便)
您可以使用矩阵代数解决这个问题 . 给定一些数据,得到的系数将永远是一样的。它没有随机元素,因为您只需最小化残差平方和。
现在,如果您查看神经网络的定义(请参阅“统计学习要素”ESL,第 11 章),您会看到存在“派生特征”(是激活函数)
用于线性模型
其中一些输出函数用于最终转换输出向量(例如分类中的 softmax,回归中的恒等函数)。参见 ESL,等式。第 11.5 页,第 392.
与一些“普通”线性回归相比,这个过程要求更高。当您跳过隐藏单元并插入时进入第二个方程你基本上有一个线性(类似)模型,与上面介绍的线性(OLS)模型非常相似。
但是,一旦您调用第一个方程(派生特征),您进行了一种基础扩展,以找到与您的目标“很好”匹配的数据表示(以“解释”它)。
因此,一旦你有了学习的“深度”方面(使用“派生特征”),你最终可能会遇到不同的情况,取决于学习路径、选择的超参数、模型规范等。很难控制或追踪这一点过程,更不用说理解[在神经网络通常大量的情况下]参数(例如,这在线性回归中很容易)。
所以本质上,你描述的问题似乎源于特征如何是派生的。与您在学习期间完全修复所有随机元素不同,您最终可能会以不同的方式“派生”特征,这将对最终结果产生影响.