下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

关于机器学习入门阶段易犯的错误

作者:课课家教育     来源: http://www.kokojia.com点击数:1103发布时间: 2017-10-28 16:00:51

标签: 系统计算机机器学习

  欢迎各位阅读本篇,本篇文章讲述了关于机器学习入门阶段易犯的错误,它是人工智能的核心,是使计算机具有智能的根本途径。它的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

关于机器学习入门阶段易犯的错误_系统_计算机_机器学习_课课家教育

  怎样进入机器学习领域没有定式。我们的学习方式都有些许不同,学习的目标也因人而异。 但一个共同的目标就是要能尽快上手。 如果这也是你的目标,那么这篇文章为你列举了程序员们在通往机器学习高手道路上常见的五种错误。

  1. 将机器学习看得高不可攀

  机器学习不过是另一堆技术的集合,你可以用它来解决复杂问题。这是一个飞速发展的领域,因此,机器学习的学术交流一般出现在学术期刊及研究生的课本里,让它看起来高不可攀又难于理解。

  要想高效掌握机器学习,我们需要转变观念,从技术转到方法,由精确变为“足够好”,这也同样适用于程序员感兴趣的其它复杂技术。

  2. 编写机器学习程序代码

  由编码开始入门机器学习会很困难,因为你需要解决的问题从一个变成两个:了解一项技术以便你实现它以及对于给定问题如何应用该项技术。一次解决一个问题,并利用机器学习、统计分析环境以及算法库来学习如何将一项技术应用于某一问题,这样就会容易很多。这能让你对于若干算法进行相对快速的抽查和调整,而无需花上大量时间阅读研究论文中含糊的算法描述再将其编码。

  实现一个算法可以作为一个单独的项目晚些再完成,比如作为一个练习或是等到原型系统需要投入运行时。一时只学一事,我建议从有 GUI 的机器学习框架开始入门,不论你是不是程序员。

  3. 手动搞定工作

  实用机器学习包括问题定义、数据准备、结果表达等步骤,它们与算法的测试和调整都能够并应该实现自动化

  在现代软件开发的编译、测试和部署中,自动化操作占有重要地位。对数据准备、算法测试调试、结果的表达编写自动脚本可以在准确性和改进速度方面获得巨大的优势。在专业软件开发课程中学习的知识要牢记于心并不断应用。

可能很多学习机器学习的程序员看的书、上的课对于这一领域的应用本质关注不多

  可能很多学习机器学习的程序员看的书、上的课对于这一领域的应用本质关注不多,导致很多人入门阶段没有使用自动化手段。实际上,将自动化技术应用到实用机器学习的方方面面会是程序员的巨大机遇。

  4. 对常见问题重复求解

  你正要实现的算法,或是与你正在求解的问题相似的问题,可能早有千百人解决了,就利用他们的经验吧。

  解决机器学习问题的知识非常多,当然它们可能都在书本或学术出版物中,但你可以访问它们。做好你的功课,在谷歌谷歌图书谷歌学术上搜索,还可以去机器学习的网络社区。

  如果你正要实现一个算法:

  必须实现它吗?可不可以在某个库或工具中找到开源的实现复用呢?

  你的实现必须从头做起吗?可不可以对现有的开源实现进行代码审查,从中学习或是移植呢?

  你必须对标准算法描述编码吗?在其它书论文或是帖子中没有别的算法描述可供代码审查及借鉴呢?

  如果你正要求解某个问题:

  你必须测试针对这个问题的所有算法吗?这一问题或是同一大类相似问题有没有研究成果显示一些算法或算法类表现良好可供利用?

  你必须自己搜集数据吗?有没有公开的数据集或是 API 你可以直接使用或是作为你问题的替代,以快速弄清哪种方法可以有良好表现?

  你必须优化算法的参数吗?在对算法的研究和论文中有没有可用的启发式方法来配置算法呢?

  如果你在编程函数库或是特定某一数据结构方面遇到问题,你会选择什么策略,在机器学习领域就用相同的策略吧。参与网络社区并寻求可供利用的资源,可以加速你的学习和项目开发进程。入门阶段可以考虑论坛和问答网站,之后可以与学者和专家联系。

  5. 忽视数学

  起步阶段你并不需要数学理论,但是数学在机器学习中地位重要。因为它能提供最有效、最清晰的方法描述问题及系统的行为。

  忽略算法中的数学方法会导致诸多问题,如对某一方法理解有限或是对算法编码时受到限制。举个例子,很多机器学习算法的核心优化是增量式的演进。如果你能明白优化的本质(凸函数),你就能利用这些知识来使用高效的优化算法。

  将算法的数学方法内化于心过程缓慢,但你的功力却也随之提升。特别是如果你要从零开始实现高级算法,包括算法的内部优化,多多花时间从数学角度来理解算法吧。

  总结

  你从本帖学到了程序员在机器学习的入门阶段容易犯的 5 个错误。5 个教训是:

  别把机器学习看得高不可攀

  别写机器学习的代码

  别手动搞定一切

  别对常见问题重复求解

  别忽视数学

  知识分享:机器学习的意义

  学习是人类具有的一种重要智能行为,但究竟什么是学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都各有其不同的看法。

  比如,Langley(1996) 定义的机器学习是“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。(Machine learning is a science of the artificial. The field's main objects of study are artifacts, specifically algorithms that improve their performance with experience.')

  Tom Mitchell的机器学习(1997)对信息论中的一些概念有详细的解释,其中定义机器学习时提到,“机器学习是对能通过经验自动改进的计算机算法的研究”。(Machine Learning is the study of computer algorithms that improve automatically through experience.)

  Alpaydin(2004)同时提出自己对机器学习的定义,“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。”(Machine learning is programming computers to optimize a performance criterion using example data or past experience.)

  尽管如此,为了便于进行讨论和估计学科的进展,有必要对机器学习给出定义,即使这种定义是不完全的和不充分的。顾名思义, 机器学习是研究如何使用机器来模拟人类学习活动的一门学科。稍为严格的提法是:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是计算机,电子计算机,中子计算机、光子计算机或神经计算机等等。

  机器能否象人类一样能具有学习能力呢?1959年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题。

  机器的能力是否能超过人的,很多持否定意见的人的一个主要论据是:机器是人造的,其性能和动作完全是由设计者规定的,因此无论如何其能力也不会超过设计者本人。这种意见对不具备学习能力的机器来说的确是对的,可是对具备学习能力的机器就值得考虑了,因为这种机器的能力在应用中不断地提高,过一段时间之后,设计者本人也不知它的能力到了何种水平。

机器的能力是否能超过人的,很多持否定意见的人的一个主要论据是

  小结:相信最后大家阅读完毕本篇文章,肯定学到了不少知识吧?其实大家私下还得多多自学,当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!

赞(20)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程