当前位置: 首页 > 科技观察

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

时间:2023-03-18 00:54:15 科技观察

本质上,深度学习提供了一套技术和算法来帮助我们参数化深度神经网络结构——人工神经网络中有很多隐藏层和参数。深度学习背后的一个关键思想是从给定的数据集中提取高级特征。因此,深度学习的目标是克服特征工程繁琐任务的挑战,并帮助参数化传统神经网络。现在,为了介绍深度学习,让我们看一个更具体的示例,这个示例涉及多层感知器(MLP)。在MLP中,“感知器”这个词可能有点令人困惑,因为我们不想在我们的网络中只使用线性神经元。使用MLP,我们可以学习复杂的函数来解决非线性问题。因此,我们的网络通常由连接输入层和输出层的一个或多个“隐藏”层组成。这些隐藏层通常具有某种sigmoid激活函数(logs-sigmoid或双曲正切等)。例如,在我们的网络中,一个逻辑回归单元,返回0-1范围内的连续值。一个简单的MLP看起来像这样:其中y是最终的类标签,我们返回的是基于输入x的预测,“a”是我们激活的神经元,“w”是权重系数。现在,如果我们向这个MLP添加多个隐藏层,我们也称该网络为“深度”网络。这种“深度”网络的问题在于,越来越难以为该网络学习“好的”权重。当我们开始训练我们的网络时,我们通常会为初始权重分配随机值,这与我们想要找到的“***”解决方案有很大的不同。在训练期间,我们使用流行的反向传播算法(将其视为反向模式自动微分)来传播从右到左的“错误”并计算每个权重的偏导数,从而增加成本(或“错误”)梯度的相反方向。现在,深度神经网络的问题就是所谓的“梯度消失”——我们添加的层数越多,“更新”我们的权重就越难,因为信??号变得越来越弱。由于我们网络的权重一开始可能非常糟糕(随机初始化),因此几乎不可能通过反向传播对具有“深度”的神经网络进行参数化。这就是深度学习发挥作用的地方。粗略地说,我们可以将深度学习视为帮助我们训练这种“深度”神经网络结构的“聪明”技巧或算法。有许多不同的神经网络结构,但为了继续MLP示例,让我介绍一下卷积神经网络(CNN)的概念。我们可以将其视为MLP的“附加组件”,帮助我们检测对MLP“有益”的输入。在一般的机器学习应用中,通常会强调特征工程部分;算法学习的模型只能和输入数据一样好。当然,我们的数据集必须有足够的判别信息,然而,当信息被淹没在无意义的特征中时,机器学习算法的性能将受到严重影响。深度学习的目的是从杂乱的数据中自动学习;它是一种算法,为我们提供了一个有意义的深度神经网络结构,使其能够更有效地学习。我们可以把深度学习看作是自动学习“特征工程”的算法,或者我们可以简单地称之为“特征检测器”,它可以帮助我们克服一系列挑战,促进神经网络的学习。让我们在图像分类的背景下考虑卷积神经网络。在这里,我们使用传递我们图像的所谓“接受域”(将它们视为“窗口”)。然后,我们将这些“接受域”(例如大小为5x5像素)与下一层中的一个单元连接起来,这被称为“特征图”。在这个映射之后,我们构建了一个所谓的卷积层。请注意,我们的特征检测器基本上是彼此的副本——它们共享相同的权重。这个想法是,如果一个特征检测器在图像的一个部分有用,它很可能在其他地方有用,同时它允许图像的各个部分以不同的方式表示。接下来,我们有一个“池化”层,我们将特征图中的相邻特征减少到一个单元(例如,通过获取最佳特征,或对它们进行平均)。我们在许多测试中都这样做,并最终得到我们图像的几乎不变的表示(准确地说是“等变”)。这非常强大,因为我们可以检测图像中的对象,无论它们位于何处。本质上,CNN插件在我们的MLP中充当特征提取器或过滤器。使用卷积层,我们可以从图像中提取有用的特征,使用池化层,我们可以使这些特征以不同的方式缩放和变换。