深入机器学习需要怎样的数学水平?想成AI人才得自律学数学
AI前线指南:我们知道机器学习的特征是:将计算机用作工具和平台,数据作为研究对象以及学习方法作为中心;等待多个领域的跨学科。尽管机器学习和深度学习具有巨大的发展潜力,以掌握算法的内部工作原理并获得良好的结果,但我们必须彻底了解许多技术的数学原理。但是,就我观察到的而言,有些人缺乏必要的数学直觉和框架,无法获得有用的结果。如果您真的想成为人工智能人才,那么您必须严格掌握自己的学科,并花费大量时间来学习数学。有关更多高质量内容,请注意微信公共帐户“ AI前线”(ID:AI-FRONT)
人们不完全知道机器学习需要什么样的数学水平,尤其是那些尚未学习数学或学校统计数据的数学水平更加困惑。
本文的最初目的是介绍建立机器学习产品或机器学习学术研究所需的数学背景。我提到的建议来自与机器学习工程师,研究人员和教育工作者的对话,以及我自己在机器学习和行业工作方面的个人经验。
为了建立数学的先决条件,我首先提出了不同的思维模型和策略,以帮助每个人在传统的课堂环境之外接受数学教育。然后,我将概述不同类型的机器学习工作所需的数学背景,因为这些学科的范围非常宽,从高中级别的统计和计算到概率图模型(,PGM)。我希望在阅读本文后,您可以对数学教育有一般的了解。
我还知道,学习风格,框架和资源是针对学习者的个人需求或目标的独特之处。
关于数学焦虑的观点
许多事实表明,许多人害怕包括工程师在内的数学。首先,我想谈论关于“善于数学”的神话。
实际上,擅长数学的人经历了许多数学练习。因此,当他们遇到数学问题时,他们很难拥有“卡外壳”。与自然才能相比,学生的思维模式是学习数学能力的主要预测因素。 (正如最近的研究表明:“'我在数学上不好的神话'的神话”)
您必须知道,您需要时间和精力来实现这一领域,但是这个领域绝对不是您。在本文中,我将帮助您了解您需要哪种数学基础和学习策略。
准备开始
作为软件开发人员,我们通常具有线性代数和矩阵计算的基本知识(因此您不会因符号而感到困扰)(可以指“和”),以及概率理论的基础(请参阅“”)。当然,有基本的编程功能。这些是我们学习数学背景的工具。然后,您可以根据感兴趣的工作来确定学习方向。
如何在学校外学习数学
我个人认为,学习数学的最佳方法是作为一项完整的工作(例如成为学生)学习。因为您离开了学校的环境,所以您可能没有那种结构化的学习,也不会有积极的压力和可用的学习资源。
为了在学校外学习数学,我建议采用研究小组或午餐讨论的形式,并使用研究研讨会作为学习的重要资源。在研究实验室中,这些可能以阅读组的形式出现。小组可以讨论教科书章节或定期讨论课程。
学习氛围具有重要的作用。这项“额外”研究应受到管理层的鼓励和动机,以使其不会觉得它占据了日常工作。实际上,尽管时间短期成本,但同伴驱动的学习环境可以使您的长期工作更加有效。
数学和代码
数学和代码在机器学习工作流程中高度交织在一起。代码通常是根据数学直觉构建的,甚至共享数学符号和语法。实际上,现代数据科学框架(例如numpy)使将数学操作(例如矩阵/向量积累)转换为直观代码变得容易。
我鼓励您采用代码作为合并学习的一种方式。数学和代码都取决于概念的理解和象征。例如,执行损失函数或优化算法的手动实现可能是真正理解基本概念的好方法。
作为通过代码学习数学的一种情况,我们可以考虑一个实用的例子:神经网络中relu激活函数的反向传播(是的,即使/可以实现这一目标:)!作为条目,反向传播是通过微积分的链型规则来计算梯度的技术。为了使用链条规则,我们将将上游指南乘以Relu的梯度。
AI前线注意:Relu(单位),线性整流器功能,是人工神经网络中常用的激活功能。它通常是指由坡度函数机变化表示的非线性函数。在计算机视觉人工智能领域中广泛引用,例如图像识别。链条规则是复合函数衍生物数量的规则。
首先,我们可视化relu激活函数并将其定义如下:
https://img1.baidu.com/it/u=1500647496,509862987&fm=253&fmt=JPEG&app=120&f=JPEG?w=856&h=500
要计算梯度(直观地,是斜率),您可以想象一个分割函数,该函数如下指标函数所示:
Numpy提供了有用的直观语法,可用于构建Relu函数。可以在代码中解释Relu激活函数(蓝色曲线)。如下所示,x是我们的输入,relu是输出:
接下来是梯度值(红色曲线),其中Grad描述了上游梯度,如下所示:
如果您不首先得出梯度,则可能无法理解这些代码行。在此代码线中,梯度(GRAD)中的所有金属条件都将较高
如上所示,通过对微积分的基本理解,我们可以清楚地理解这两条线的作用。实施该神经网络的完整示例在这里:
在机器学习产品中构建数学
为了完成这一部分,我已经与机器学习工程师进行了交谈,以了解调试系统中数学时最有用的地方。以下工程师从数学的角度回答了问题:
通常,统计和线性代数可以在某些方面使用。但是,要获得令人满意的答案,通常有必要针对特定字段。如果是这种情况,如何减少学习数学的范围?
定义您的系统
现在,我们不缺乏资源(例如,用于数据分析的learn,用于深度学习的关键),这些资源将帮助您编写代码以建模系统。这样做时,您可以尝试回答有关机器学习工作流程的以下问题:您需要构建:
机器学习系统中的输入/输出是什么?
如何准备适当的数据以适合系统?
如何构建功能或数据以帮助模型推广?
如何为任务定义合理的目标函数?
您可能会感到惊讶:定义机器学习系统如此困难!建立机器学习工作流所需的项目也很重要。换句话说,建造机器学习产品需要许多复杂的工程工作,而无需深入的数学背景。
资源
根据需要学习数学
进入机器学习的工作流程,您可能会发现有些步骤会使您“卡住”,尤其是在调试期间。当您被绑在一起时,您知道应该找到什么吗?您的体重合理吗?为什么使用特定的损失函数后,模型不收敛?衡量成功的正确方法是什么?目前,数据的假设,以不同方式限制优化或尝试不同的算法可能会有所帮助。
通常,您会发现在建模/调试过程中,数学直觉(例如选择损失函数或评估指标),这些直觉可能会帮助您做出明智的工程决策。这些是您学习的好机会!
Fast.ai是这种“按需”方法的支持者。在教育学生时,他发现对于有深度学习的学生来说,走得足够远,这对对这些材料感兴趣非常重要。之后,他们的数学教育包括按需漏洞。
资源
机器学习研究的数学
https://img1.baidu.com/it/u=2504861996,2005558802&fm=253&fmt=JPEG&app=138&f=JPEG?w=800&h=1227
我现在想描述帮助研究机器学习研究的数学思维方法。机器学习研究有嘲讽的看法。这只是一个被插入和播放的系统,并将大量计算放入模型中以挤出更好的性能。在某些圈子中,研究人员仍然质疑数学缺乏严格的经验(例如某些深度学习方法)是否真的会导致我们获得人类的智慧。 (有关详细信息)
值得注意的是,研究界可能基于现有的系统和假设,这些研究界并未扩展我们对机器学习领域的基本理解。研究人员需要贡献一个新的基础架构,以建立模块,以获取新的研究方法以获得新的见解和领域目标。例如,就像深度学习教父杰夫(Geoff)提出的网络一样,重新考虑图像分类中常用的基本卷积神经网络基金会。
为了实现机器学习的下一个飞跃,我们需要提出一些基本问题。这需要掌握数学。 “深书”的作者告诉我,这是一个“有趣的探索”。在此过程中,您将被“被困”,提出问题并寻找新的观点。 “有趣的探索”允许科学家除了简单的想法/建筑的结合外,要求科学家询问 - 深度和洞察力。
显然,在机器学习研究中,仍然不可能学习所有内容!要正确进行“有趣的探索”,您需要遵循的是您的兴趣,而不是最受欢迎的新研究。
机器学习研究是一个非常丰富的研究领域。有很多问题要解决:公平,解释性和易用性。在所有学科中都是这种情况。基本想法不是按需过程。有必要耐心地想到高级数学框架的主要问题。
资源
机器学习研究的民主
我希望我不要描绘“学习数学”太深,因为使用数学的想法应以直观的形式提出!不幸的是,许多机器学习论文仍然充满复杂且矛盾的术语,这使得很难理解关键的直觉。作为一名学生,您可以为自己和这个领域做出杰出的贡献:通过博客,和其他方法,这些密集的论文被转移到可消化的直觉知识块中。这就是这个。酒吧专注于为机器学习研究提供明确的解释。换句话说,将技术的概念转变为一种清晰的解释作为一种“有趣的探索”方式,您将受益于此,机器学习领域将感谢您!
提示
最后,我希望为您提供一个起点,并考虑用于机器学习的数学教育。
祝你好运!
原始链接:
今天推荐
单击下面的图片以阅读
开源:机器学习开发加速了10次!
精品店建议
人工智能现在处于凶猛的阶段。许多程序员已转移到人工智能领域。它的优势是它拥有行业基金会。提高全面技能?我们汇集了30多位第一线技术专家,以分享他们自己的发展经验和实例,对于高级路线上的每个技术人员来说,它们都是必要的技术能力。
如果您喜欢这篇文章,或者希望看到更多类似的高质量报告,请记住留言并喜欢它!
页:
[1]