暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

机器学习基本概念及资料汇总

机器学习记事本 2018-09-08
612

要学习“机器学习”,首先要了解什么是机器学习。本文主要介绍机器学习基本概念、分类,算法分类以及我在学习过程中觉得受益匪浅的一些资料汇总。


什么是机器学习?

维基百科中文中列举了几个定义:

·        机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

·        机器学习是对能通过经验自动改进的计算机算法的研究。

·        机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。

我觉得这几个定义都比较玄乎,维基百科英文版定义要实在一些:

Machine Learning is afield of computer science that uses statistical techniques to give computersystems the ability to "learn" (e.g., progressively improveperformance on a specific task) with data, without being explicitly programmed.

别人问我机器学习是什么的时候,我说如果要在一分钟内解释清楚,就是初三或高一学习的y=f(x)。你扔给计算机一堆x和对应的y,让它学习(训练)一个函数f尽量符合y=f(x),下次你要有新的x,用这个f函数算出f(x),就得到对应的预测, 这就是机器学习。计算机通过大量数据学习训练得到一个模型,然后根据这个模型来预测新的数据。以上函数f就是学习得到的模型(model),用于训练的数据x叫训练数据(training data),对应的y是训练数据的标签(label).

当然,上面的说法不够严谨,其解释的只是我们常见的带标签的监督学习,那么机器学习有哪些分类呢?


机器学习分类

废话不多说,下图一目了然

监督学习是最常见的方式,如何得到带标签的数据是一个很重要的问题。以我们team为例,我们软件的主要功能是分析其他软件的缺陷(Vulnerability),有专门的安全工程师团队多年全职分析各类软件缺陷问题,同时记录下所有数据并做标注,作为机器学习训练数据。

因为工作的关系,最近对PU LearningTransfer Learning(迁移学习)有基本的了解:

1)半监督学习中有一类叫PU Learning(Positive and Unlabeled Data Learning), 即只有带正例的数据和不带标签的数据学习。有不少论文对此有研究,以后我会就我学习过的内容单独介绍和总结。

2)迁移学习是指利用数据、任务、或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。我们组目前有一部分数据集D1经过训练后能得到性能不错的模型M1,另一部分数据集D2结构类似但不相同,训练结果精确度比较低,下一步打算通过迁移学习把模型M1应用于D2看看效果。


算法分类

网上有各种机器算法分类方法,比如基于概率统计的算法,基于树的算法等等。当下深度学习十分火热,便于理解,我将算法分为两类:传统算法和深度学习算法。

1)传统算法种类繁多,比如常用的支持向量机(SVM),随机森林(RandomForest),朴素贝叶斯(Naive Bayes),梯度提升树(GradientBoosting Tree)等。我们组里内目前主要用传统算法加集成算法,实践证明不用深度学习算法也可以取得不错的效果。

2)深度学习网上资料太多,不再累述。我们打算以后用深度学习算法应用于同样的数据,和传统算法比较一下性能是否有提升。


学习资料列表

以下是在我学习过程中觉得受益匪浅的一些资料链接,找对了资料事倍功半,能节约很多时间,希望对想入门学习机器学习的同学有所帮助:

1.    http://www.cnblogs.com/pinard/  对各种常见机器学习算法都有分析和解释,细节程度恰到好处,作者功底很深厚

2.   http://lamda.nju.edu.cn/weixs/book/CNN_book.pdf,南大博士魏秀参(旷视科技南京负责人)写的卷积神经网络实践手册,看了此手册后对CNN能有一个全方位的了解

3.    https://www.coursera.org/learn/machine-learning#syllabus 吴恩达Andrew Ngcoursera的课程,相对于他在斯坦福的CS229课程要简单

4.    http://web.stanford.edu/class/cs224n/syllabus.html 

https://www.youtube.com/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6 斯坦福自然语言处理和深度学习课件及讲课视频,新加坡国立大学上课也用这个课件

5.    https://morvanzhou.github.io/ 周沫凡个人网站,手把手教你如何使用tensorflow, pytorch等工具

6.    https://bloomberg.github.io/foml/#lectures 彭博社机器学习内部培训视频,我只看了前几集,还没学完

7.    http://tutorial.transferlearning.xyz/ 中科院计算所博士王晋东的迁移学习手册,类似#2中的卷积神经网络实践手册,看完后对迁移学习有个全方位的基本了解

8.    https://developers.google.com/machine-learning/guides/rules-of-ml/ google机器学习原则最佳实践

9.    最后当然要列一下两本大家认为必读的书:南大周志华西瓜书《机器学习》和李航《统计学习方法》,不过后一本书我买了一直放书架上没读


文章转载自机器学习记事本,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论