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

客服QQ:3315713922

如何学习好机器学习?

作者:课课家教育     来源: http://www.kokojia.com点击数:692发布时间: 2017-11-06 13:00:26

标签: 人工智能系统设计机器学习

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

  机器学习结构:

  表示学习系统的基本结构。环境向系统的学习部分提供某些信息,学习部分利用这些信息修改知识库,以增进系统执行部分完成任务的效能,执行部分根据知识库完成任务,同时把获得的信息反馈给学习部分。在具体的应用中,环境,知识库和执行部分决定了具体的工作内容,学习部分所需要解决的问题完全由上述3部分确定。下面我们分别叙述这3部分对设计学习系统的影响。

  影响学习系统设计的最重要的因素是环境向系统提供的信息。或者更具体地说是信息的质量。知识库里存放的是指导执行部分动作的一般原则,但环境向学习系统提供的信息却是各种各样的。如果信息的质量比较高,与一般原则的差别比较小,则学习部分比较容易处理。如果向学习系统提供的是杂乱无章的指导执行具体动作的具体信息,则学习系统需要在获得足够数据之后,删除不必要的细节,进行总结推广,形成指导动作的一般原则,放入知识库,这样学习部分的任务就比较繁重,设计起来也较为困难。

  因为学习系统获得的信息往往是不完全的,所以学习系统所进行的推理并不完全是可靠的,它总结出来的规则可能正确,也可能不正确。这要通过执行效果加以检验。正确的规则能使系统的效能提高,应予保留;不正确的规则应予修改或从数据库中删除。

  知识库是影响学习系统设计的第二个因素。知识的表示有多种形式,比如特征向量、一阶逻辑语句、产生式规则、语义网络和框架等等。这些表示方式各有其特点,在选择表示方式时要兼顾以下4个方面:

  (1)表达能力强。

  (2)易于推理。

  (3)容易修改知识库。

  (4)知识表示易于扩展。

  对于知识库最后需要说明的一个问题是学习系统不能在全然没有任何知识的情况下凭空获取知识,每一个学习系统都要求具有某些知识理解环境提供的信息,分析比较,做出假设,检验并修改这些假设。因此,更确切地说,学习系统是对现有知识的扩展和改进。

  执行部分是整个学习系统的核心,因为执行部分的动作就是学习部分力求改进的动作。同执行部分有关的问题有3个:复杂性、反馈和透明性。

  上个月,Kaggle 联合创始人兼 CTO Ben Hamner 在 Quora 上回答了有关 Kaggle、机器学习和人工智能的一系列问题。对于 Hamner 给出的机器学习的八个步骤的建议,Kaggle Team 重新整理并做了核心摘要。

如何学习好机器学习?_人工智能_系统设计_机器学习_课课家教育

  现在学习机器学习和人工智能比以往任何时候都更好。近年来,这一领域飞速发展并硕果累累。专家们开源了各种高质量的软件工具和库,新的线上资源和博文也层出不穷。机器学习带动了产业内数十亿美元的收入,催生出了空前的资源和海量的就业机会。但这也意味着如何入门机器学习让人有点无所适从。下面是我的入门方法。如果你在本文中的某处卡住了,请搜索 Kaggle(也许某人以前也遇到了同样问题),并在 Kaggle 论坛上提出问题(如果以前没人提问过该问题),这是找到方向并解决问题的好方法。

  1. 挑一个你感兴趣的问题

  从一个你想要解决的问题而不是令人生畏的、不系统的主题列表(你可以从谷歌上搜索到很多的机器需诶心资源列表,这里我就不在提供)出发,你会很容易地专注、主动学习。解决问题会促使你更深入更投入,而不是仅仅被动地阅读一些有关机器学习的文章。

  选择好的入门问题有几个标准:

  问题涵盖了你个人很感兴趣的某一领域

  数据随时可用且非常适宜解决问题(否则你的大部分时间将被耗掉)

  你可在单台机器上舒服地使用数据(或者数据的一些相关子集)

  没有发现问题?被担心!我们通过入门竞赛系列在 Kaggle 上提供了一些很好的机器学习问题。点击 Titanic 竞赛(https://www.kaggle.com/c/titanic)开始。

  2. 为你的问题做一个快速、劣质和笨拙的端到端解决方案

  确实很容易在实现细节中或者错误机器学习算法的调试中陷入僵局,而你想要避免它。

  在这里你的目标是尽快获得一些超级基本的内容,涵盖端到端的问题:读取数据,并将其处理为适合机器学习的形式,训练基本模型,创造结果并评估其性能。

  3. 进行并改进你的初步方案

  现在你有了一个功能基准,是时候创新了。试着改进初步方案的每一个组件,并衡量影响,看看在哪里花费时间有意义。很多时候获取更多数据或者改进数据清理和预处理步骤比优化机器学习模型本身有更高的回报率(ROI)。

  这个步骤的一部分应该包括动手使用数据——检查各行和可视化分布,以更好地理解其结构和奇特性。

  4. 写出并分享解决方案

  获得解决方案反馈的最佳方式是写下来并分享。写的过程是梳理解决方案的新方式,并带来更好的理解。这同样会使其他人理解你在做的事情并提供反馈,帮助你学习。这也启动了你的机器学习代表项目集(portfolio),有助于你展示能力并取得工作。

  Kaggle 数据集 和 Kaggle 内核 是你分享数据和解决方案、从其他人获得反馈并观察他人如何扩展你的问题的有效方式,并开始充实你的 Kaggle 文件。

Kaggle 数据集 和 Kaggle 内核 是你分享数据和解决方案

  5. 在一系列不同的问题上重复步骤 1-4

  现在你已经解决了感兴趣的单一问题,然后在一系列不同的领域中多次执行这一操作。

  你是从表格数据开始的吗?那就再解决一个涉及更少结构化文本的问题,以及另外一个处理图像的问题。

  机器学习问题最初对你而言是结构化的吗?很多创新性和有价值的工作解决的正是如何从一开始把一个松散定义的业务或者研究目标转化为明确定义的机器学习问题。通过这种方式解决一个问题类型。

  Kaggle 竞赛 和 Kaggle 数据集为明确定义的机器学习问题和适用于机器学习的原始数据资源提供了一个很好的起点。

  6. 认真地参与一场 Kaggle 竞赛(如果你还没这样做)

  对于一个数千人正致力解决的同一问题给出最佳答案是一个巨大的学习机会:它促使你对同一问题不断迭代,并使你发现什么可以有效解决问题。

对于一个数千人正致力解决的同一问题给出最佳答案是一个巨大的学习机会

  个体竞赛的论坛有着关于其他人如何使用你的方法处理和调试问题的丰富资源,内核提供了关于用简单方法开始解决问题的数据的探索性见解,并且获奖博文在最后展示最佳成果。

  Kaggle 竞赛也提供了与其他人组队的独特机会。社区人群有着不同的背景和技术,每个人皆可有教和学两种角色。你永远不会不知道,也许你未来的同事也在 Kaggle 社区中。

  7. 申请机器学习专业工作

  这使你把大部分时间花在机器学习上,并真正提升你的水平。决定你要追求的职位类型并打造与此相关个人代表项目集是一个强有力的起点。如果你还没有准备好面试机器学习职位,那就在目前的职位上接受新项目,寻求咨询机会;并且参与公民黑客马拉松,把握与数据相关的社区服务机会也是获得立足的额外途径。专业工作需要强大的编程能力,并借其极大地提升工作表现——通过重点项目带来的提升将产生很多下游收益。

  专业机器学习工作的宝贵机会包括:

  机器学习在生产系统中的应用

  聚焦机器学习研究,推动最新进展

  利用机器学习提升产品和业务决策的探索性分析

  8. 教其他人机器学习

  教学可以帮你巩固对机器学习核心概念的理解。教他人的方式有很多种,选择最适合自己的一种:

  写 研究论文

  发表演讲

  写 博文 和 教程

  在 Kaggle、Quora 和其他网站上回答问题

  个人指导和辅导

  分享代码实例(在 Kaggle 内核和 GitHub 上)

  教课

  写书

  小结:您可以不采纳我的答案,但请您一定要考虑下我的建议哦! 文章中不足及错误之处在所难免,敬请专家和读者给予批评指正。当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!

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