前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5种无需数学背景也可理解机器学习算法的技巧

5种无需数学背景也可理解机器学习算法的技巧

作者头像
Bon
发布2018-02-06 14:51:37
1.1K1
发布2018-02-06 14:51:37

在一种自顶向下的研究机器学习的方法中,理论应立足于何处?

在传统的机器学习教学方案中,理论首先需要足够广泛的数学背景才能理解。在我的机器学习教学方案中,我将从一开始就教你如何解决端到端的问题并做出成果。

那么,理论更适合在哪里出现呢?

在这篇文章中,当我们谈论机器学习中的“理论”时,您将会确切地明白我们正在说什么。提示:都是关于算法的。

您会发现,一旦您能熟练地解决问题,并得出结果,您会不由自主地深入学习,以便更好地理解结果和提交更好的结果。没有人能够阻止你

最后,您将发现在标准数据集上进行机器学习时可以使用的5种技巧,以逐步增强对机器学习算法的理解。

机器学习理论
机器学习理论

Ed Brambley 提供的照片,保留部分权利

理论学习摆在最后,而不是第一位

对开发者来说,教他们如何学习机器学习是没什么用处的。

这种方式是自顶而下的教育。对您来说这没什么用的——如果您是仅想把机器学习作为工具来解决问题的开发人员,而不是想成为研究这个领域的研究人员。

传统学习方式要求您在学习算法理论之前学习线性代数,概率和统计等数学知识。如果您是研究算法的实现或讨论如何端到端地处理问题并提供可运行的,可靠的和准确的预测模型,这样来说的话,您是幸运的。

我在这里将会教您一个自顶而下的学习机器学习的方法。在这个方法中,我们将从1)学习一个系统化流程来处理端到端的问题,2)将流程映射到“最好的”机器学习工具和平台,然后3)在测试数据集上完成有针对性的实践。

您可以在“ 程序员的机器学习:从开发人员到机器学习从业人员的飞跃 ” 这篇文章中了解到更多关于自顶而下学习机器学习的方法。

那么理论应当在哪里融入这个过程呢?

如果要颠倒这个学习的流程,这种情况将在稍后讲到。但是当我们在使用测试数据集训练模型时,我们正在说着什么理论?以及您究竟该如何学习这个理论呢?

获取专属您的免费算法思维导图

示例-易用的机器学习算法思维导图
示例-易用的机器学习算法思维导图

我创建了一个方便的且按照类型来组合的内含60多个算法的思维导图。

您可以下载它,打印出来并好好使用。

免费下载

也可以享受来自电子邮件的迷你机器学习算法课程。

算法是理论的一切

机器学习的领域中充斥着理论。

它是密集的,因为这领域有一个用数学来描述和解释概念的传统。

这是很有用的,因为数学描述可以非常简洁,并减少歧义。他们也可以利用所描述的环境中的技术(例如对过程的概率性理解)进行分析。

许多这些与数学无关紧要的技术常常与机器学习算法的相关描述捆绑在一起。对于一个仅仅想要对一种方法进行较为浅层理解然后能够配置和应用它的人来说,这种感觉让人难以开心起来。而且是如此的令人沮丧。

如果您没有能够解析和理解算法的描述的底子,这会让您很沮丧。此外会让人沮丧的正因为来自计算机科学这样的领域,算法总是被描述,而不同之处在于算法的描述是为了快速理解(例如桌面检查)还是应用。

例如,我们知道,在学习哈希表是什么以及如何使用哈希表时,我们几乎不需要知道在我们的日常工作中哈希函数究竟在干嘛。但是我们也能够知道什么是哈希函数,以及知道在哪里去了解更多关于哈希函数的具体细节以及如何编写自己的哈希函数。那为什么机器学习不能像这样应用呢?

学习机器学习中遇到的大部分“理论”都与机器学习算法有关。如果您去问其他任何的初学者,他们为什么会对理论感到沮丧,那么你将会知道,这与学习如何理解或使用特定的机器学习算法有关。

在这里,研究算法比创建预测模型的过程更广泛。它指的是和选择特征,设计新特征,转换数据和估计模型在不可见数据(例如交叉验证)上的准确性的算法过程。

所以,最后学习理论意味着学习机器学习算法。

强迫钻研理论

我通常建议有针对性地练习众所周知的机器学习数据集。

因为众所周知的机器学习数据集,就会好像UCI机器学习库中的那些数据集一样易于使用。而且他们往往很小,所以他们不需要太多内存,因此也就可以在工作站上处理。他们也可以拿来进行很好的理解和研究,因此,您可以有一个比较的基准。

您可以在“ 用UCI机器学习库中的小型低消耗内存的数据库进行机器学习实践 ”文章中了解更多有关机器学习数据集实践的信息。

了解机器学习算法在这个过程的应用。原因在于当您追求获得标准机器学习算法的结果,将会遇到局限。你会想知道如何从给定的算法中获得更多的信息,或者知道如何更好地配置它,或者知道如何实际工作。

这种需要更多的知识和好奇心,而这些东西将促使您学习机器学习算法的理论。为了得到一个更好的结果,您将被迫将一些对算法的理解拼凑起来。

我们也看到了来自不同背景的年轻开发人员的相同效果,他们最终研究开源项目,教科书甚至研究论文的代码,以磨练他们的手艺。驱使他们这样去做的正是成为一个更好的,更有能力的程序员的需求。

如果您很好奇并且有想要成功的动力,您不能不去学习这个理论。

5种理解机器学习算法的技巧

您的目标实践的一部分时间将用来钻研机器学习算法

届时,您可以使用一些技巧和模板来缩短流程。

在本节中,您将发现5种技巧,可以用来快速理解机器学习算法的理论。

1)创建机器学习算法列表

当您刚开始学习的时候,你可能会被大量可用的算法所淹没。

即使现场尝试测试算法,你可能仍不能确定哪些算法将包含在你的混合算法中(提示,是多种多样的)。

跟踪您读到的算法是一个在你开始时就可以使用的很好的技巧。这些列表可以像算法的名称一样简单,也可以随着您的兴趣和好奇心的增加来增加复杂性。

您也可以捕获细节,如合适的问题类型(分类或回归),相关算法和分类的类(决策树,内核等)。当你看到新的算法的名字时,把它添加到你的列表中。当你开始一个新的问题,您可以尝试一些您以前从未使用过的算法。又或者在之前使用的算法旁边打勾等等。

控制列表中算法的名称可以提供强大的力量。这种看似可笑的简单策略可以帮助您摆脱压力。您的简单的算法列表可以为您节省大量时间和挫折,例如:

  • 在新异问题类型上尝试算法的想法(时间序列,评级系统等)
  • 您可以调查以了解更多关于如何应用的算法。
  • 可以通过类别(树,内核等)获取算法类型的句柄。
  • 避免仅注意最喜欢的算法的情况。

而您首先得创建算法列表,请打开一个电子表格并开始创建。

更多关于这个技巧的信息请参阅“ 通过创建机器学习算法的目标列表进行控制 ”这篇文章。

2)研究机器学习算法

当你想了解更多关于某一个机器学习算法的知识时,您需要开始研究它。

而学习如何配置这个算法和如何让它生效应当是您会有兴趣研究算法的主要原因。

要记住,这研究不只是为了学术。一些简单的窍门可以在收集给定机器学习算法的信息方面给您很大帮助。

关键点是信息来源的多样性。以下是您可以参考的您正在研究的算法的信息的来源类型的简短列表。

  1. 权威资源,如教科书,讲义,幻灯片和概述论文。
  2. 精髓资源,如最初描述算法的论文和文章等。
  3. 前沿资源,如在该算法上的最先进的扩展和实验的相关描述。
  4. 启发资源,如来自机器学习比赛,Q&A网站的帖子或者会议论文上。
  5. 可用资源,如工具和库的开源代码,博客文章和技术报告等。

您不必是博士,也不需要成为机器学习算法专家。

你可以节省你的时间,从你之前试图找出的集合了机器学习算法的资源中选择其中的一些。把重点放在你可以应用或者理解的实际细节上,然后将其余的抛开。

有关研究机器学习算法的更多信息,请参阅“ 如何研究机器学习算法 ”一文。

3)创建您自己的算法描述

您会在研究中发现机器学习算法的描述往往是不完整的且不一致的。

而您可以使用的方法就是把您自己的迷你算法描述集合起来。这是另一个非常简单和非常强大的策略。

您可以设计一个标准算法描述模板,其中只包含那些对您充分利用算法(如启发式算法惯例,伪代码列表,参数范围和资源列表)的有用的细节。

然后,您可以在多个关键算法中使用相同的算法描述模板,并开始构建您自己的可以在未来的项目中参考的小算法百科全书。

以下是您可能会希望在自己的算法描述模板中使用的一些问题:

  • 算法使用的标准缩写是什么?
  • 算法的目标是什么?
  • 算法的伪代码或流程图描述是什么?
  • 使用该算法的启发式或经验法则是什么?
  • 有哪些有用的资源来更深入学习算法?

您将会惊讶于这些描述的有用性和实用性。例如,我曾用这种方法写了一本我知道几年以后照样可以参考的自然界启发式的算法描述书。

有关如何创建有效的算法描述模板的更多信息,请参阅“ 如何学习机器学习算法 ”一文。

有关使用标准算法描述模板描述的算法书的更多信息,请参阅“ 高级算法:自然编程的食谱 ”。

4)研究算法的行为

机器学习算法是复杂的系统,而有时他们在实际数据集上的行为能帮您最好地理解它们。

通过使用小型数据集设计机器学习算法的小型实验,您可以了解到算法是如何工作的,和它的局限性,以及如何通过可能转移到其他问题的异常结果的方式进行配置。

您可以使用一个简单的程序来研究机器学习算法,如下所示:

  1. 选择一个你想深入了解的算法(例如随机森林)。
  2. 确定一个关于这个算法的你想要回答的问题(例如,树的数量的影响)。
  3. 设计一个实验来找到这个问题的答案(例如,在几个二元分类问题上尝试不同数目的树,并绘制与分类准确性的关系)。
  4. 执行实验并写出结果,以便将来可以使用它们。
  5. 重复这个过程。

这是应用机器学习的真正令人兴奋的方面之一,通过您自己的简单研究,您可以得到令人惊讶和最先进的成果。

有关如何从这些算法的行为中学习算法的更多信息,请参阅“ 如何研究机器学习算法行为 ”一文。

5)机器学习算法的实现

您不能比完全实现一个机器学习算法还要熟悉它了。

在从零开始实现机器学习算法时,您将面临进入给定实现的无数微观决策。您可以决定是否用一些经验法则来把它们全部作为参数呈现给用户。

以下是您可以用来从头开始实现机器学习算法的可重复的过程。

  1. 最好选择一种您最熟悉的编程语言。
  2. 选择一个算法来实现,从一些简单的事情开始(见下面的列表)。
  3. 在开发过程中选择一个问题来测试你的实现,而2D数据易于可视化(甚至在Excel中)。
  4. 研究算法并利用许多不同的信息资源(例如阅读教程,论文,其他实现等)。
  5. 单元测试算法,以确认您的理解和验证您的实现。

从小处着手,建立信心。

例如,您从头开始选择作为您的第一个机器学习算法实现的3个算法是:

有关如何实现机器学习算法的更多信息,请参阅文章“ 如何实现机器学习算法 ”。

另见帖子:

理论不仅仅针对数学家

机器学习不仅仅是为了数学精英准备的。您可以了解机器学习算法如何工作,以及如何在不深入多元统计的情况下充分利用机器学习算法。

您不需要擅长数学。

正如我们在上述技巧部分可以知道的,您可以从算法列表开始,并逐渐深入到算法研究,描述和算法行为中。

你可以用这些方法走得很远,而不会因为数学造成太大的影响。

你不需要成为一名学术型研究员。

研究不只是为了学术。任何人都可以阅读书籍和论文,并编撰自己对某个主题的理解,如特定的机器学习算法的描述。

而当您扮演“ 科学家 ” 的角色时,您将开始您自身的最大突破,并开始机器学习算法的实验,好像他们是需要研究的复杂系统一样。您会发现算法行为中的各种有趣的特性,即使那些甚至可能不会被记录下来。

采取行动

选择上面列出的技巧之一,并开始你的行动。

我的意思是今天开始,现在开始。

不确定从哪里开始?

以下是您可以从哪里开始的5个好点子:

  1. 列出十个机器算法的分类(看看我的算法之旅,以获得一些想法)。
  2. 找到五本书,详细描述随机森林。
  3. 使用自己的算法描述模板创建一个关于Naive Bayes的五张幻灯片的演示文稿。
  4. 打开Weka,看看“k”参数如何影响虹膜花数据集中的k-最近邻的精度。
  5. 使用随机梯度下降实现线性回归。

你有没有采取行动?喜欢这个帖子?在下面留言。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理论学习摆在最后,而不是第一位
  • 获取专属您的免费算法思维导图
  • 算法是理论的一切
  • 强迫钻研理论
  • 5种理解机器学习算法的技巧
    • 1)创建机器学习算法列表
      • 2)研究机器学习算法
        • 3)创建您自己的算法描述
          • 4)研究算法的行为
            • 5)机器学习算法的实现
            • 理论不仅仅针对数学家
            • 采取行动
            相关产品与服务
            TI-ONE 训练平台
            TI-ONE 训练平台(以下简称TI-ONE)是为 AI 工程师打造的一站式机器学习平台,为用户提供从数据接入、模型训练、模型管理到模型服务的全流程开发支持。TI-ONE 支持多种训练方式和算法框架,满足不同 AI 应用场景的需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档