深度学习的高度推理

嗨,朋友们。今天的资料专门用于基础高级课程“数据科学的数学” 中的下一组课程的启动




今天,我们将探讨有关深度学习方法的一些想法。我们首先回顾在科学环境中应用深度学习的模板方法,然后我们将讨论端到端设计过程以及简短的替代机器学习方法的功能,这些方法对于解决特定问题可能更有希望。

科学深度学习模板


科学界通常如何使用深度学习方法?在较高的层次上,您可以制定几种模板方法,通过这些方法可以在以下任务中使用深度学习:

  1. 预测. , – (). . , , , , . , « / ». – , , . , ( ) (, ), .
  2. . , , . . , . , , , . , . , .
  3. . , (, , , ), . , , , , .

Workflow


使用上述深度学习应用程序模板,我们将从头到尾研究设计深度学习系统的工作流程。在图1中,您可以看到典型的深度学习工作流的外观。


图1:典型的深度学习工作流程图。

典型的深度学习应用程序开发过程可以被认为包括三个主要步骤:(i)数据处理步骤,(ii)培训组件,(iii)验证和分析。这些阶段中的每个阶段都包括几个阶段以及与之关联的方法,该阶段也在图中显示。在本文中,我们将介绍大多数培训阶段的方法以及几种验证和数据分析技术。请注意,虽然自然顺序包括首先处理数据,然后训练和最终验证,但是标准开发过程可能会导致多个阶段的迭代,也就是说,将审查在特定阶段做出的方法或选择根据稍后阶段的结果。

选择了您感兴趣的预测问题后,您可以考虑设计和使用深度学习系统的三个阶段:(i)数据处理阶段,例如,收集,标记,预处理,可视化等,(ii)训练阶段,例如,选择模型神经网络,定义模型的任务和方法的定义,(iii)验证和分析的阶段,其中根据获得的数据对有效性进行评估,以及对隐藏表示的分析和解释以及通用方法的烧蚀研究。

当然,这三个阶段是相继的。但是,创建深度学习系统的第一个尝试通常是失败的。为了解决这些问题,重要的是要记住设计过程的迭代性质,在该过程中,各个阶段的结果将成为审查体系结构和重新执行其他阶段的基础。

图1上显示了带有双边连接箭头的常见迭代的示例:(i)箭头迭代(1),它对应于过程数据集合中的迭代,因为恰好在数据可视化过程之后,可能需要调整原始数据,因为结果也是如此嘈杂或未捕获所需目标; (ii)箭头迭代(2),它对应于学习过程中的迭代,例如,如果另一个目标或方法更合适,或者学习过程需要划分为多个阶段,首先进行自我监督,然后与老师一起进行培训,则对应于学习过程中的迭代(iii)迭代箭头(3),该箭头负责根据训练阶段的结果更改数据处理步骤;(iv)箭头迭代(4)负责根据在验证阶段获得的结果来更改学习过程的体系结构,以减少培训时间或使用更简单的模型;(v)迭代箭头(5)是基于验证/分析结果的数据处理步骤的改编,例如,当模型依赖错误的数据属性时,必须重新组合数据以避免这种情况。

研究重点和术语


在本节中,我们将讨论训练阶段使用的许多方法,以及数据处理和验证阶段所特有的一些方法(例如,扩充,可解释性和表示分析)。

在培训阶段,我们考虑流行的模型,任务和方法。通过模型(有时也称为架构),我们可以了解深度学习神经网络的结构-层数,层的类型,神经元数等。例如,在对图像进行分类的任务中,输入图像,然后输入不同类别(或类别)的(离散)集合上的概率分布。通过方法,我们是指用于训练系统的训练类型。例如,当神经网络接收带标签的数据(其中标签表示观察结果)时,与老师一起学习是一种流行的学习过程。

与各种模型和任务不同,方法可以是其他方法的子集。例如自我监督-这是一种在数据实例和标签上训练神经网络的方法,其中在数据实例上自动创建标签,该方法也可以归因于老师的教学方法。这听起来有点令人困惑!但是,在此阶段,至少具有模型,问题和方法的一般概念就足够了。

是否使用深度学习?


在深入研究各种深度学习方法之前,重要的是要提出问题并了解深度学习是否将提供解决问题的正确工具。强大的神经网络基本模型提供了许多复杂的功能,例如复杂的图像转换。但是,在许多情况下,深度学习可能不是最好的第一步,或者可能不适合解决问题。下面我们简要回顾最常见的机器学习方法,尤其是在科学环境中。

降维和聚类。在科学界,数据分析的最终目标是了解在数据中生成模式的基本机制。当目标是这样时,降维和聚类是显示隐藏数据属性的简单但极其有效的方法。事实证明,它们通常在研究和可视化数据的步骤中很有用(即使以后使用更复杂的方法)。

尺寸缩小。降维方法是线性的,也就是说,它们基于线性变换来减小数据的维数,或者是非线性的,即通过近似保留非线性数据结构来减小维数。降低维数的流行线性方法是主成分法和非负矩阵分解,而非线性方法是具有t分布和UMAP的邻居的随机嵌入。许多维方法已经在scikit-learn或github(例如github.com/oreillymedia/t-SNE-tutorialgithub.com/lmcinnes/umap等软件包中实现了高质量的实现

聚类。通常与降维结合使用的聚类技术提供了一种强大的方法来识别数据集中的相似性和差异。常用的方法有k-means方法(通常是改进的k-means方法),高斯分布的混合模型,层次聚类和谱聚类。与降维方法一样,聚类方法在scikit-learn之类的程序包中也具有良好的实现

线性回归,逻辑回归(和变化)。在数据有限和一组明确的(可能经过预处理)功能的情况下,也许最基本的方法可以解决老师的教学问题,例如分类和回归,线性和逻辑回归及其变化(例如Lasso和ridge回归),这些方法可能特别有用。 (例如,以表格数据的形式)。这些方法还可以评估问题提出的适当性,并且可以作为检查所解决问题的简化版本的良好起点。由于其简单性,线性和逻辑回归可以高度解释,并提供执行属性归因的简单方法。

决策树,随机森林和梯度提升。其他流行的方法类别是决策树,随机森林和梯度增强。这些方法还可以与回归/分类问题结合使用,非常适合对输入和输出之间的非线性关系进行建模。在数据具有低信噪比的情况下,作为决策树集合一部分的随机森林通常比深度学习方法更可取。这些方法的解释性可能不如线性/逻辑回归,但在最近的工作中,我们着眼于正在开发的解决此问题的软件库

其他方法和资源。上述所有方法,以及许多其他流行的方法,如图形模型,高斯过程,贝叶斯优化,进行了详细多伦多的机器学习课程的大学或斯坦福CS229讨论,在详细的文章towardsdatascience.com和互动式教学等d2l.ai /index.html(称为“深入学习”)和github.com/rasbt/python-machine-learning-book2nd-edition



数据科学家可以解决什么任务?您需要了解哪些数学部分以及哪些任务?对数据科学家有哪些要求?需要什么数学知识才能脱颖而出并确保职业发展这些问题的答案不仅可以在我们将于5月6日举行的免费网络研讨会上获得赶快注册



All Articles