深度学习(deep learning)是机器学习的众多分支之一。它的模型是一长串的几何函数,各个都作用在数据上。这些运算组组成了模块叫做层。DL模型通常都是层的堆叠,也可以说是层组成的图。这些层由权重(weight)来参数化,权重是训练过程中需要学习的参数。模型的知识(knowledge)保存在它的权重中,学习的过程就是为这些权重找到正确的值。
在深度学习中,一切都是向量,即一切都是几何空间(geometric space)中的点(point)。首先将模型输入(文本、图像等)和目标向量化(vectorize),即将其转换为初始输入向量空间和目标函向量空间。DL模型的每一层都对通过它的数据做一个简单的几何变换。模型中的层链共同形成了一个非常复杂的几何变换,它可以分解为一系列简单的几何变换。这个复杂变换试图将输入空间映射到目标空间。,每次映射到一个点。这个变换由层的权重来参数化,权重根据模型当前表现进行迭代更新。这种几何变换有一个关键性质,就是它必须是可微的/differentiable,这样才可以通过梯度下降来学习其参数。约束条件是:从输入到输出的几何变形必须是平滑且连续的。 导数和微分的基础----数学很有魅力!
【引用原文】
Deep-learning models are mathematicalmachines for uncrumpling complicated manifolds of high-dimensional data.
深度学习模型是解开高维数据复杂流形的数学机器。
That’s the magic of deep learning:turning meaning into vectors, into geometric spaces, and then incrementallylearning complex geometric transformations that map one space to another. Allyou need are spaces of sufficiently high dimensionality in order to capture thefull scope of the relationships found in the original data.
深度学习的魅力:将意义转换为向量、几何空间,然后逐步学习将一个空间映射到另一空间的复杂几何变换。你需要的只是维度足够大的空间,以便捕捉到原始数据中能够找到的所有关系。
===============================================================================================
【机器学习的通用工作流程】
(1) 定义问题:有哪些数据可用?你想要预测什么? 你是否需要收集更多数据或雇人为数据集手动添加标签?
(2) 找到能够可靠评估目标成功的方法。对于简单任务,可以用预测精度,但很多情况都需要与领域相关的复杂指标。
(3) 准备用于评估模型的验证过程。训练集、验证集和测试集是必须定义的。验证集和测试集的标签不应该泄漏到训练数据中。举个例子,对于时序预测,验证数据和测试数据的时间都应该在训练数据之后。
(4) 数据向量化。方法是将数据转换为向量并预处理,使其更容易被神经网络所处理(数据标准化等)。
(5) 开发第一个模型,它要打败基于常识的简单基准方法,从而表明机器学习能够解决你的问题。事实上并非总是如此!
(6) 通过调节超参数和添加正则化来逐步改进模型架构。仅根据模型在验证集(不是测试集或训练集)上的性能来进行更改。请记住,你应该先让模型过拟合(从而找到比你的需求更大的模型容量),然后才开始添加正则化或降低模型尺寸。
(7) 调节超参数时要小心验证集过拟合,即超参数可能会过于针对验证集而优化。我们保留一个单独的测试集,正是为了避免这个问题!
===============================================================================================
【关键网络架构】
三种常见网络架构:密集连接网络、卷积网络和循环网络,每种类型的网络都针对于特定的输入模式,网络架构(密集网络、卷积网络、循环网络)中包含对数据结构的假设,即搜索良好模型所在的假设空间。
输入模式与之对应的网络架构选择:
输入模式 |
架构选型 |
向量数据 Vector Data |
Dense层(密集连接网络) |
图像数据 Image Data |
Conv2D (二为卷积神经网络) |