了解机器学习为何重要至关重要,这样您才能了解该领域以及该领域的各种方法和未解决的问题的内在价值。
就像了解您的“为什么”一样,了解该领域的价值可以作为信息的有力筛选器,帮助您专注于那些真正兑现该领域承诺的方法。
在这篇文章中,您将了解到机器学习很重要,因为它提供了能够为复杂问题创建解决方案的方法。您会发现,有些问题无法通过手动指定程序如何解决它们。
机器学习的承诺是,它提供了工具,可以比我们手动编写解决方案更快、更准确、更可扩展地为复杂问题生成解决方案。
复杂问题
在计算机中编写程序可以概括为自动化输入数据上的过程以创建输出工件。几乎总是,它们是线性的、过程性的和逻辑性的。传统程序是根据某些规范用编程语言编写的,它具有以下特性:
- 您知道或可以控制程序的输入
- 您可以指定程序如何实现其目标
- 您可以映射出程序将做出的决策以及在何种条件下做出这些决策
- 您可以测试您的程序,并确信由于输入和输出是已知的,并且所有条件都已得到执行,因此程序将实现其目标
有些问题可以在计算机中表示,但您无法编写传统程序来解决。它们抗拒过程和逻辑解决方案。它们具有以下特性:
- 所有可能输入的范围无法提前知道
- 您无法指定程序如何实现目标,只能知道目标是什么
- 您无法映射出程序需要做出的所有决策来实现其目标
- 您可以收集程序的样本输入数据
像这样的问题会抗拒传统的程序化解决方案,因为手动指定解决方案需要不成比例的资源。
您可能是一名程序员,而且您可能是一名经验丰富的程序员。这听起来可能很奇怪,甚至令人难以置信。作为程序员,我们相信只要我们能够定义程序需要做什么,我们就有信心能够定义程序如何实现该目标。事实并非总是如此。
垃圾邮件过滤器示例
一个日常的、抗拒手动定义解决方案的决策问题是区分垃圾邮件和非垃圾邮件。
您会如何编写程序来过滤进入您电子邮件帐户的电子邮件,并决定将其放入垃圾邮件文件夹还是收件箱文件夹?
我对此的一些想法是:
- 我将收集我知道是垃圾邮件或非垃圾邮件的电子邮件示例
- 我将阅读我收集的电子邮件,并写下我在任一组中看到的任何模式
- 我将考虑将这些模式抽象成我可以编程的更通用规则
- 我将寻找我可以安全快速地归类为垃圾邮件或非垃圾邮件的电子邮件
- 我将为我的程序编写测试以确保它做出准确的决策
- 我将监控已部署的系统,并密切关注它所做的决策
我可以编写一个程序来完成这项工作,您也可以。这需要花费大量时间。必须阅读大量电子邮件。需要对问题进行非常深入的思考。在系统可以被信任到可以投入运营之前,需要大量的开发和测试时间。一旦投入运营,将会有如此多的硬编码规则,这些规则特定于我阅读过的电子邮件,这将是一个维护噩梦。
上述过程也描述了一种机器学习解决方案,用于区分垃圾邮件和非垃圾邮件。关键在于,机器学习方法可以为您自动化此过程。
专业提示:以这种方式处理复杂问题是一项非常有价值的技能,它将在您以后准备数据和选择正确的机器学习方法时为您提供极大的帮助。思考“我将如何手动编写程序来解决这个问题”的过程是一项通常被专业人士忽略和遗忘的大师级技能。
机器学习的重要性
机器学习领域提供了从数据中自动做出决策的工具,以实现某些目标或要求。研究问题集中在如何做得更好以及结果的含义。
让我们关注机器学习工具和实践的实际问题解决能力。这些机器学习的工具和实践对世界很重要。它们之所以重要,有四个原因:
- 自动:机器学习方法是自动化的过程(算法),它们会创建算法。这些方法在数据上运行并生成一个模型,该模型指定如何实现程序的目标。
- 快速:机器学习方法可以节省您的时间。这些方法可以分析样本输入数据并比您手动编写程序更快地交付程序。
- 准确:机器学习方法可以做得比您更好。作为自动化方法,它们可以在比您更多的数据上运行更长时间,以做出更准确的决策。
- 规模:机器学习方法可以为您无法解决的问题提供解决方案。这些方法可以进行扩展并互联,以实现以前无法考虑甚至无法设想的问题的解决方案。
在这篇文章中,您了解到机器学习之所以重要,是因为它提供了能够为复杂问题创建解决方案的方法。具体来说,这些是抗拒手动指定解决方案的问题。
您了解到机器学习的承诺是,它能够自动、更快、更准确地解决这些类型的问题,并且比手动指定的解决方案规模更大。
您认为有哪些复杂问题抗拒手动编程解决方案?请在下方留言。
我有一个问题。
“作为自动化方法,它们可以在比您更多的数据上运行更长时间,以做出更准确的决策。”
算法何时会知道停止?毕竟,这些是没有明确是或否解决方案的问题。那么您将如何说,“这样就足够好了”?您的算法可能会运行数年……。
Shantnu,这是一个非常敏锐的问题。
您为算法运行定义停止标准或成功标准。例如,您可以说,运行直到在测试数据集上的性能准确度达到 x。或者,您可以运行直到性能在 y 秒或 z 次迭代内没有提高。
Jason,
如果您也解释了以下现象,那将是一个好主意:
1. 过拟合(可能是过度训练的结果)
2. 假阳性(如何检查准确性的部分)
Charlie
请查看这篇关于过拟合的文章
过拟合的简单直观理解,或者为什么在训练数据上测试是个坏主意
https://machinelearning.org.cn/a-simple-intuition-for-overfitting/
请查看这篇关于准确性指标的文章
分类准确性不足:你可以使用的更多性能指标
https://machinelearning.org.cn/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/
一个问题
如果我们考虑由一堆 if else 语句组成的传统编程解决方案,那么我认为 if else 语句的顺序很重要,例如应该优先考虑哪个条件等等,那么一个人应该如何选择这些条件。
谢谢
欺诈检测
就像电子邮件的垃圾邮件示例一样,预测双胞胎的积极和消极习惯是否可以成为机器学习问题?
医学诊断,预测患者是否患有某种疾病是一个很好的机器学习领域。
我完全同意从高层次来看。具体案例可能有其优点。例如,在我们没有可靠的物理模型来解释正在发生的事情,并且 ML 被证明是最好的预测/预报解决方案的情况下。(雾预测?一些生物信息学问题也许……)。
Jason,我有一个问题。
机器学习如何用于对不同类型的攻击、恶意软件、病毒进行分类?如今,勒索软件造成了很多问题,是否有机器学习解决方案用于识别、分类这些问题?是否有相关的优秀研究论文可以提供一些想法。
请回复。
谢谢
是的,这将是机器学习在计算机安全中的应用。
这个领域不是我的专长,但可以尝试搜索“机器学习计算机安全”和“机器学习恶意软件”等术语。
我还认为,KDDCup 中有一些与计算机安全相关的数据集,您也许可以使用这些数据集进行练习。
Jason,感谢分享您的观点。
“基于 DNA 的医学机器学习”怎么样?通常 DNA 数据是高维数据。由于深度学习是活跃的研究领域,能否将“高维 DNA 数据降维”视为深度学习应用?
我想在机器学习领域(深度学习)进行研究,目前正在寻找合适的应用。
我的另一个想法是为呼叫中心员工提供推荐系统,以便向客户推荐合适的建议。特别强调印度语言/母语。
正如您建议的,基于机器学习的恶意软件分类是另一个领域。
请就此以及其他合适的/即将出现的机器学习研究领域/应用发表您的看法。
请回复。
谢谢。
嗨,Jason,
感谢分享这篇博文。
我有一个问题。您提到了检测垃圾邮件的例子。为 ML 开发的垃圾邮件检测算法的停止标准可能是什么?比如我们必须指定一定数量的关键词作为垃圾邮件,还是什么?
我在这里提到的另一篇文章是 ML 的一个例子。
我认为通过笔迹识别个性特征可以作为 ML 的一个例子。
请就此分享您的观点。
谢谢
我会建议停止标准是模型准确性或可接受的垃圾邮件误报率。
从笔迹估算个性特征听起来不错,但困难可能在于需要收集高质量的数据集进行训练。
我可以看到机器学习并不是天才才能掌握的东西,就像我之前想的那样。我下载并实现了 R 包(如 kernlab、ksvm 和 VIM……外加 RANDOMforest)中的预测……这真是太棒了。
Iris 内置数据用于 R 包来演示他的机器学习工作。
我不确定我的 R 熟练程度是否是这里的优势,但我发现机器学习内核性感/浪漫!
我现在想与他人分享这份甜蜜!
感谢 Jason 教授揭开了机器学习的神秘面纱。
不客气 Meshack,很高兴听到您取得了进展。
是的,Meshack 向我介绍了机器学习,我对此非常着迷,尤其是 R forest。这太棒了,我迫不及待地想精通它。
坚持下去!
编写自动驾驶汽车的程序是一项艰巨的任务。在这里,更新颖的机器学习算法,如卷积神经网络和循环神经网络,表现出色,比手工编写的解决方案更好。
另一个我认为从 ML 领域的快速发展中受益匪浅的领域是在线营销。有些算法非常准确,以至于有时感觉它们能读懂我们的心思!
谢谢。
你好。如上所述,我们可以使用机器学习解决人类无法手动解决的复杂问题。此外,算法会根据数据进行训练。我的问题是,有没有可能在没有任何数据的情况下进行任何模型开发?现在,如果我们直接将算法应用于真实场景输入(如电子邮件垃圾邮件),预测将如何进行?可能即使是非垃圾邮件也可能被视为垃圾邮件。
是否存在不提前喂给算法数据来开发模型以执行它?或者我们是否必须提供数据,从而构建一个预测模型?
谢谢。
监督学习需要一些数据来学习。
教授先生,请问目前机器学习领域有哪些问题陈述?我对使用 Python 和 R 进行机器学习的研究感兴趣。
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/what-research-topic-should-i-work-on
我对算法交易(自动)的研究问题很感兴趣并充满热情,请问有人可以分享一些关于这个主题的资源和论文吗?
抱歉,我不知道算法交易。
非常感谢您发表这篇博文,我想看看如何使用机器学习来优化大数据自动化分析的解决方案。
谢谢。