2016 - 2024

感恩一路有你

卷积神经网络的应用 深度学习和普通的机器学习有什么区别?

浏览量:2902 时间:2021-03-22 05:13:05 作者:admin

深度学习和普通的机器学习有什么区别?

一张图片显示了这种关系。机器学习是人工智能的重要领域之一,而深度学习是机器学习的一个分支。深度学习之所以近年来流行起来,是因为它突破了传统机器学习无法解决的一些问题。

机器学习的意义在于代替人工完成重复性工作,识别出统一的规则(模式)。但是对于传统的机器学习来说,特征提取的难度不小(特征可以是像素、位置、方向等)。特征的准确性将在很大程度上决定大多数机器学习算法的性能。为了使特征准确,在特征工程部分需要大量的人力来调整和改进特征。完成这一系列工作的前提是,数据集中所包含的信息量是充分的,并且易于识别。如果不满足这一前提,传统的机器学习算法将在信息的杂乱中失去其性能。深度学习的应用正是基于这个问题。它的深层神经网络使它能够在杂波中学习,自动发现与任务相关的特征(可以看作是自发学习的特征工程),并提取高级特征,从而大大减少了特征工程部分任务所花费的时间。

另一个明显的区别是他们对数据集大小的偏好。传统的机器学习在处理规则完备的小规模数据时表现出良好的性能,而深度学习则表现不好。随着数据集规模的不断扩大,深度学习的效果会逐渐显现出来,并变得越来越好。对比如下图所示。

如何估算神经网络的最优学习率?

具体来说,当前主流的神经网络模型使用梯度下降算法进行训练,或学习参数。学习速率决定权重在梯度方向上成批移动的距离。理论上,学习率越高,神经网络的学习速度越快。但是,如果学习速率过高,可能会“穿越”损失函数的最小值,导致收敛失败。

上图左边是高学习率,右边是低学习率,来源:mikkel Duif(quora)

那么,如何找到最佳学习率?

方法。但是,这种方法的初始学习率(上例中为0.1)不应该太高。如果初始学习率太高,可能会“穿越”最优值。

另外,还有另外一种思路,就是逆向操作,从学习率很低开始,每批之后再提高学习率。例如,从0.00001到0.0001,再到0.001,再到0.01,再到0.1。这个想法背后的直觉是,如果我们总是以很低的学习率学习,我们总是可以学习到最好的权重(除非整个网络架构有问题),但它将非常缓慢。因此,从一个很低的学习率开始,我们可以肯定地观察到损失函数的下降。逐渐分化,直到学习率过高。该方法还避免了上述方法初始学习率过高,一次“穿越”最优值的隐患。这是Leslie n.Smith在2015年的论文《训练神经网络的循环学习率》中提出的方法。

用同一数据集训练神经网络,每次训练结果不一样,有时正确率很高,有时很低,为什么?

其实这个问题的实质是,如果我们用机器学习算法对数据集上的数据模型进行一次训练,保存模型,然后用同样的算法和同样的数据集以及数据排序对其进行再次训练,那么第一个模型和第二个模型是一样的吗?

这可能是因为神经网络用增益或权重的随机值初始化,然后每个模拟在训练阶段有不同的起点。如果您希望始终保持相同的初始权重,可以尝试为初始权重修复种子以消除问题。

如果我们深入研究这个问题,我们可以根据ml算法的“确定性”来对其进行分类。当从同一个数据集进行训练时:

一个是总是生成相同的模型,并且记录以相同的顺序呈现;

另一个是总是生成不同的模型,并且记录顺序不同。

在实践中,大多数是“不确定的”。模型变化的原因可能是机器学习算法本身存在随机游走、不同权值的随机初始化、不同分量的概率分布抽样来分配优化函数。

虽然模型的“不确定性”可能会对单个训练结果造成干扰,但我们也可以用“不确定性”来确认模型的稳定性,如决策树、支持向量机(SVM)、神经网络等,最终可以通过多次迭代来确认模型的稳定性。

卷积神经网络的应用 pnn神经网络原理 神经网络分类问题

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。