随着机器学习领域变得越来越受欢迎,一连串的在线课程应运而生,声称教授“在人工智能领域建立职业生涯”所需的技能。但在报名参加这样的课程之前,你应该知道所获得的技能是否会直接让你更好地应用机器学习。这些问题并不局限于在线课程,而是包括机器学习课程,这些课程已经开始挤满了许多大学的报告厅。学生们蜂拥而至的这些课程真的能帮助他们实现他们的实际目标吗?
机器学习教育的现状我在一所顶尖的人工智能大学学习了主要的机器学习课程,我发现了一个大多数课程都遵循的一般指导方针。首先,他们倾向于从线性分类器开始,引入回归和分类的概念,以及损失函数和优化的概念。之后,他们会花一到两周的时间来磨练反向传播的技能,之后他们就会完全投入到神经网络中去。如果课程的重点是深度学习,那么剩下的大部分时间都会花在深入研究不同形式的神经网络(RNN、LSTM、CNN等)和最近发表的开创性架构(ResNet、BERT等)上。如果该课程转而侧重于更一般的机器学习原理,它将引入其他方法,如无监督学习和强化学习。
因此,我们可以看到,这些课程涵盖的关键主题可以归纳为以下几个方面:监督学习概述,监督学习和神经网络基础的简要介绍,然后是深度学习方法或机器学习的其他领域的介绍。
此外,看一看这些课程作业中涵盖的主题有助于我们确定主要的学习目标。作业的结构通常如下:1)向学生提供一个结构良好的数据集2)引入一个模型或核心机器学习想法,并让学生完成概念的基础3)学生实现概念4)在给定的数据集上运行已实现的模型并进行一些轻微的超参数调整5)绘制结果以查看该想法的执行情况。
在检查了课程所涵盖的内容和作业中的内容之后,我们就有了一个理解学生期望学习的信息的基础。机器学习课程希望传授关于课程重点领域中正在使用的关键模型的知识。这是通过简要介绍上述模型的理论基础,并让学生在作业中实施主要的关键特征来实现的。
应用机器学习所需的技能与在机器学习相关行业职位上工作的同行交谈时,我发现有几个关键技能是成功所必需的。第一个相关技能是了解如何正确清理和分析数据。我的一位同学告诉我,最近的一次实习要求他在开始将模型应用到数据集之前,先花8周的时间收集和预处理数据。由于机器学习模型非常依赖于数据,因此掌握确保您知道如何利用数据集的关键特性的技能是极其重要的。
接下来,在行业级别,我们看到大型数据集不适用于大多数任务。正因为如此,许多深度学习技术由于可能存在过拟合和泛化能力差而无法应用。因此,通常使用不需要大量数据的更简单的模型,如随机森林或逻辑回归。因此,能够使用适当的库(如SCI-KIT LINE)正确应用这些模型是一项有价值的技能。事实上,一位朋友告诉我,他夏天在微软的机器学习实习只涉及逻辑回归的不同变体。此外,随着大型预训练模型在计算机视觉和NLP任务中的出现,深度学习可以结合到某些场景中进行微调。这进一步增加了熟悉开创性模型的重要性。
然而,在研究层面,更大的数据集通常很容易获得,时间限制也不是大问题,我们可以训练更大的深度学习模型。例如,考虑具有1750亿参数的Open-AI的GPT-3模型。要创建如此大型的架构,所需的关键技能是如何设计如此大规模的深度学习系统的知识。这需要熟悉PyTorch或TensorFlow之一。这样做可以让研究人员快速有效地实现理论化的模型。
虽然能够实现所需的体系结构很重要,但如果不进行超参数调优,大多数模型的性能都不会很好。因此,在创建应用机器学习系统时,不仅要执行超参数调整,而且要直观地了解某些设计决策是有益的还是有害的。以我最近在英伟达实习的一位朋友为例。在意识到他正在考虑的初始化区域导致体系结构中的大多数REU激活功能死亡并因此学习停滞之前,他在调整模型的超参数时遇到了困难。
在分析了机器学习教育的现状以及创建重要的应用机器学习系统所需的技能之后,我们现在评论一下双方之间的差距。根据课程涵盖的内容和应用程序的要求,很明显,学生们在如何正确管理他们正在使用的数据方面没有得到足够的教导。这些课程不仅为学生提供了已经经过整齐预处理的已清理数据集,而且除了可视化几个数据点之外,并没有促进太多的探索。缺乏如何规格化和探索数据集的动手学习对学生进行ML的实际能力是不利的。
此外,虽然课程提供了关键框架的数学背景的基本直觉,但还没有做足够的工作让学生充分了解为什么给定的模型在特定任务中表现良好而其他模型表现不佳的理论。虽然学生熟悉各种模型,但他们无法辨别出在给定的数据集和任务下,哪种模型是最好的。如果不详细了解关键模型和技术的数学基础,学生就不能为某些场景快速选择正确的模型。
什么已经做得很好了?我们能做些什么让它变得更好呢?当我们分析课堂知识和创建有效的应用系统所需的技能之间存在的差距时,很明显,大多数课程在向学生传授基本的机器学习知识方面做得很好。这些课程中涵盖的概念可确保您了解学习算法的工作原理以及实现收敛所需的条件。这些课程确保学生熟悉各种任务的最新算法,并接触到广泛的材料,以便他们能够在需要时继续在该领域继续学习。
然而,还有很好的改进空间。很多课程倾向于在最初的几周里学习相同的材料:线性分类器和反向传播。虽然这些无疑是关键的主题,但几乎把一节课的前三分之一都排除在外,以涵盖本应在必修课中介绍的材料,并不是最好的课堂时间利用方式。相反,在本科生和研究生课程之间明确区分内容会更有用。研究生课程应大力鼓励学生在上课前熟悉这些概念,或指导学生先修本科等同专业。这使得课堂有更多的空间来教授学生相关的概念,例如如何分析课程关注的特定领域的数据,或者进一步了解该领域的关键框架。通过这样做,我相信机器学习课程可以逐步接近在课堂上学到的知识和应用知识所需的知识之间的理想关系。显然,一系列课程中的一个机器学习课程不能孤立地做出这些改变,相反,它必须是社区的协调努力,以确保他们为学生提供尽可能新的和最有影响力的知识。
大学为什么要关心?虽然解决本文提到的差距对于提高学生的应用技能绝对至关重要,但大多数课程可能会简单地说明,教授主要用于工业的机器学习方面不在他们的范围之内。然而,这些技能远比行业知识更具可转移性--事实上,它们在大多数情况下都很有用。例如,当在研究中开发新模型时,您仍然需要知道如何正确地预处理数据,并辨别哪些技术将提供更有希望的结果。此外,这些技能通常是非常基础的,它们将使学生成为更好的机器学习实践者。对于一门课程来说,任何可以使学生的知识受益的东西都应该被认为是关键的信息,因此应该被教授。
根据机器学习课程的现状,很明显,AI课程会在你努力进行尖端研究或找到机器学习工作的过程中带你进入大门,但它们不会教给你你需要知道的一切。要填补仍然存在的知识空白,你必须投入
@文章{parmar2020ap,作者={帕玛尔,朱平德},标题={差距:哪里机器学习教育落差},期刊={梯度},年份={2020年},如何发布={\url{https://thegradient.pub/the-gap-where-machine-learning-education-falls-short/}},}。
如果你喜欢这篇文章,并想听更多,请订阅梯度版,并在Twitter上关注我们。