diff --git a/MLMaterials.md b/MLMaterials.md index bbb653c..65e899a 100644 --- a/MLMaterials.md +++ b/MLMaterials.md @@ -1,10 +1,10 @@ -##机器学习的一些资料 -###1. 机器学习与概率、统计学 -####1.1 公开课 +## 机器学习的一些资料 +### 1. 机器学习与概率、统计学 +#### 1.1 公开课 1. [斯坦福机器学习入门课程](https://www.coursera.org/learn/machine-learning),讲师为Andrew Ng,适合数学基础一般的人,适合入门,但是学完会发现只是懂个大概,也就相当于什么都不懂。 2. Coursera上国立台湾大学[林轩田](https://www.coursera.org/instructor/htlin)开的两门课:[机器学习基石](https://www.coursera.org/course/ntumlone)(适合入门),[机器学习技法](https://www.coursera.org/course/ntumltwo)(适合提高)。 -####1.2 推荐书目 +#### 1.2 推荐书目 统计和概率是机器学习的基础,所以统计和概率一定要学好。 1. **推荐必读** 统计学和机器学习结合的入门书:[统计学习方法](https://github.com/jindongwang/MachineLearning/blob/master/books/2012.%E6%9D%8E%E8%88%AA.%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95.pdf),作者[李航](http://blog.sina.com.cn/u/2060750830)。这本书介绍了10个机器学习领域的代表性算法,讲的非常好,书本身也就200多页,很适合入门,强烈推荐。 @@ -18,7 +18,7 @@ 5. 学习统计不能不说的经典的[《统计学习基础》](https://github.com/jindongwang/MachineLearning/tree/master/books/Machine%20Learning),我暂时还没看过。 6. 以及业界久负盛名的PRML(模式识别与机器学习),我这里[中文英文版](https://github.com/jindongwang/MachineLearning/tree/master/books/Machine%20Learning)都有。 -####1.3. 工具 +#### 1.3. 工具 * 第三方库 机器学习有很多开源库可以直接拿来用,github是个不错的获取代码的网站,比较著名的有: * [libsvm](https://github.com/cjlin1/libsvm),作者是林轩田,是svm的标准库。 @@ -38,12 +38,12 @@ python、java以及matlab三种语言是目前比较流行的机器学习方面 * 网上的教程 这是在一个妹子的微信朋友圈看到的[文章](http://mp.weixin.qq.com/s?__biz=MjM5MjAxMDM4MA==&mid=205009516&idx=1&sn=c5b157ad3fac5c5551a210b0d7df82e6&scene=1&key=dffc561732c22651bb1642a345869d95ab71b4da7c9d7e4cbaf2b67a7b354b4fc8d6a6105171f7a8d0afde389529bb7f&ascene=1&uin=NjMzMjQzMTYw&devicetype=Windows+10&version=61020020&pass_ticket=ygVY8iy3pSYNZ2Rwe2FnXSQ5lRAKLeMmssjmRIlD4QYgBeYoE1OPVBL%2BfpjaKY0i),很不错。妹子也很不错,不过还是随缘吧。 -###2. 数据挖掘 +### 2. 数据挖掘 * 快速入门:看我去年考试写的总结[数据挖掘复习整理](https://github.com/jindongwang/MachineLearning/blob/master/books/Data%20Mining/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E5%A4%8D%E4%B9%A0%E6%95%B4%E7%90%86.pdf),可快速了解数据挖掘的相关概念。这个总结去年在雁栖湖传的很火,还有妹子给我发短信感谢。。。 * 数据挖掘领域的经典著作:[数据挖掘:概念与技术](https://github.com/jindongwang/MachineLearning/blob/master/books/Data%20Mining/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E6%A6%82%E5%BF%B5%E4%B8%8E%E6%8A%80%E6%9C%AF%EF%BC%88%E4%B8%AD%E6%96%87%E7%AC%AC%E4%B8%89%E7%89%88%EF%BC%89.pdf),作者是[韩家炜](http://baike.baidu.com/link?url=UsI-yAamHGGNoe22xOWX7XjU-8eILnF4oQTP-2dysekLxDk6FleEefGc013or725zvos5Mach2j6cWEKcv2DF_),是标准的上课教材,上一部分我的总结中对应的页码就是这个书里的。 * 上课的ppt:我们老师当时上课用的[ppt](https://github.com/jindongwang/MachineLearning/tree/master/books/Data%20Mining/ppt),可以翻看一下,也不多,就几大块,适合入门,对于理解概念非常有帮助。 -###3. 人工智能 +### 3. 人工智能 * 快速入门:可以看我们当时上课的[ppt](https://github.com/jindongwang/MachineLearning/tree/master/books/AI/ppt),大概对AI有一些了解(这个ppt有好多部分都是直接截图了李航的统计学习方法)。 * 教材:著名的教材[人工智能:一种现代方法](https://github.com/jindongwang/MachineLearning/blob/master/books/AI/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%EF%BC%9A%E4%B8%80%E7%A7%8D%E7%8E%B0%E4%BB%A3%E6%96%B9%E6%B3%95%EF%BC%88%E7%AC%AC2%E7%89%88%EF%BC%89%E9%83%A8%E5%88%861.pdf),很厚,可以翻看。 diff --git a/README.md b/README.md index e594559..5d91f7d 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,27 @@ -##一些机器学习的资源 +## 一些机器学习的资源 -####*关于行为识别的资料,请看我最新增加的这个地址*:[行为识别](https://github.com/jindongwang/activityrecognition)。 +关于迁移学习和行为识别的资料,请见我的下面两个仓库: -####1.[机器学习入门资料](https://github.com/jindongwang/MachineLearning/blob/master/MLMaterials.md) +- [行为识别](https://github.com/jindongwang/activityrecognition) +- [迁移学习](https://github.com/jindongwang/transferlearning) -####2.[东京大学同学做的人机交互报告](https://github.com/jindongwang/MachineLearning/blob/master/FieldResearchinChina927-104.pdf) -####3.[我做的人机交互简介](https://github.com/jindongwang/HCI) +- - - -####4.[我做的迁移学习学术报告](https://github.com/jindongwang/MachineLearning/blob/master/TransferLearning.pdf) +### [近200篇机器学习资料汇总!](https://zhuanlan.zhihu.com/p/26136757) -####6.[人机交互与创业论坛](https://github.com/jindongwang/MachineLearning/blob/master/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E4%B8%8E%E5%88%9B%E4%B8%9A%E8%AE%BA%E5%9D%9B.md) -####7.[迁移学习简介](https://github.com/jindongwang/MachineLearning/blob/master/%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0%E7%AE%80%E4%BB%8B.md) +#### 1.[机器学习入门资料](https://github.com/jindongwang/MachineLearning/blob/master/MLMaterials.md) -###1.关于技术本身的情况 +#### 2.[东京大学同学做的人机交互报告](https://github.com/jindongwang/MachineLearning/blob/master/FieldResearchinChina927-104.pdf) + +#### 3.[我做的人机交互简介](https://github.com/jindongwang/HCI) + +#### 4.[人机交互与创业论坛](https://github.com/jindongwang/MachineLearning/blob/master/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E4%B8%8E%E5%88%9B%E4%B8%9A%E8%AE%BA%E5%9D%9B.md) + +#### 5. [职场机器学习入门](https://github.com/jindongwang/MachineLearning/blob/master/%E8%81%8C%E5%9C%BA-%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%85%A5%E9%97%A8.md) + +1.关于技术本身的情况 1.1 Machine Learning的一些理解 * 机器学习的概念自不用多说。这里我仅提到一点,机器学习在学科分类上是属于实现人工智能的一种重要方法,注定它和AI是不可分的。其实,传统的AI一直都侧重解决三个步骤的问题:知识的表示、知识的获取和知识的学习。其中,机器学习涵盖了知识的获取和学习两大部分,是AI的核心部分。其实说白了,ML解决的就是怎么从已知推断未知,它走的是归纳(induction)这个自上而下的过程,AI中还有一个相对立的知识体系叫做演绎(deduction),这个主要是自动推理的范畴,和机器学习基本关系不大,是较独立的一支。 @@ -44,7 +51,7 @@ 基本就是确定研究问题——采集数据——人工标注——选择模型和算法——看结果调参数 -###2.数据采集方面 +2.数据采集方面 2.1 目前的情况是,需要提前想好需要采集的数据,并配合相应的设备进行采集。在人体健康方面主要的依据是医学期刊与会议文章中的特征知识,比如,根据医学知识,患有抑郁症的病人其走路会不稳当且走路很慢,这就是依据,根据这些可以基本确定要采集的数据类型及sensor。 @@ -52,3 +59,4 @@ 2.3 就目前情况而言,不知道特征量的话,有两种方面,一种我们小组之前在高效能豆瓣电影评分时用过,就是尝试不同特征与不同的模型组合以分析可能的特征值,这是笨办法,在特征值少时有用。另一种就是DL,目前我尚未接触过真正的应用,所以这里不予举例。 +> ***[文章版权声明]这篇文档是我开源到github上的,可以遵守相关的开源协议进行使用,如果使用时能加上我的名字就更好了。这个仓库中包含有很多研究者的论文、硕博士论文等,都来源于在网上的下载,我对一些文章都作了注解,有可能会很好地帮助理解。对于这些文章的版权属于相应的出版社。如果作者或出版社有异议,请联系我进行删除(本来应该只放文章链接的,但是由于时间关系来不及)。一切都是为了更好地学术!*** \ No newline at end of file diff --git a/TransferLearning.pdf b/TransferLearning.pdf deleted file mode 100644 index 3dd9248..0000000 Binary files a/TransferLearning.pdf and /dev/null differ diff --git "a/\350\201\214\345\234\272-\346\234\272\345\231\250\345\255\246\344\271\240\345\205\245\351\227\250.md" "b/\350\201\214\345\234\272-\346\234\272\345\231\250\345\255\246\344\271\240\345\205\245\351\227\250.md" new file mode 100644 index 0000000..0612942 --- /dev/null +++ "b/\350\201\214\345\234\272-\346\234\272\345\231\250\345\255\246\344\271\240\345\205\245\351\227\250.md" @@ -0,0 +1,79 @@ +## 写给职场人的机器学习入门 + +> 机器学习和人工智能是当前计算机领域最炙手可热的方向。随着深度学习和强化学习的大热,这一拨浪潮也在持续升高。本文作者是计算机领域机器学习方向在读博士生,在本文中分享自己在这个领域的一些浅见。本文主要针对职场人,帮助他们快速找到突破口,轻松入门。 + +### 本文的组织结构 + +- - - + +是什么——机器学习概念的入门 + +为什么——为什么要用机器学习 + +怎么办之一——语言与环境 + +怎么办之二——实际项目推荐 + +怎么办之三——面试问题汇总 + +#### 是什么——机器学习概念的入门 + +- - - + +1. 什么是机器学习?或者说,机器学习的本质是什么? +2. 机器学习的基本流程是什么? +3. 机器学习的分类有哪些? +4. 深度学习和机器学习的关系? +5. [机器学习的一些数学必备要点](http://www.cnblogs.com/LeftNotEasy/tag/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/):梯度下降,拉格朗日对偶,矩阵的基本概念,概率分布函数等。 +6. [偏差和方差](https://www.zhihu.com/question/27068705)、[交叉验证](http://blog.csdn.net/holybin/article/details/27185659)是什么? +7. 对特征的理解及常用的特征提取方式。——参照我的第二次知乎Live:[特征工程的PPT](http://jd92.wang/assets/files/l07_zhihu_fe.pdf) +8. 深度学习几种常用模型的[基本理解](http://blog.sciencenet.cn/blog-4099-785174.html)和中文版本的[研究综述](https://www.jianguoyun.com/p/DWHm4BkQjKnsBRjokio)。 + +以上1-4个要点全部在我的[第一次知乎live的PPT](http://jd92.wang/assets/files/l06_zhihu_ml.pdf)里可以找到答案。 + +#### 为什么——为什么要用机器学习 + +- - - + +1. 大数据、大计算资源,需要从数据中学习出模式; +2. 传统的经验方式并不可靠,目前是数据驱动。 + +也可以参照我的第一次知乎Live的PPT。 + +#### 怎么办之一——语言与环境 + +- - - + +1. 机器学习常用Python、R和Matlab作为主力语言,我们主要推荐Python; +2. 目前比较火的库:Scikit-learn,Tensorflow,Torch,Caffe,Keras,CNTK等,要大概了解它们主要用来干嘛的,能说出来一二。 +3. Python下Anaconda集成科学计算环境是比较推荐的,集成的Numpy和Scipy是做数学计算的常用库,Matplotlib是画图工具。 + +#### 怎么办之二——实际项目推荐 + +- - - + +1. Scikit-learn上的几个不同领域的自带数据集用来模拟: + +- Iris——最简单的数据集,做分类 +- Digits——数字图片识别 +- 20newsgroup——文本,做向量化后分类 + +使用这些数据集很好地练习机器学习的训练/测试集分开,调参与建模的基本能力。 + +2. Kaggle上的入门级竞赛用来练手 + +- [Python+scikit-learn基本功](https://www.kaggle.com/c/data-science-london-scikit-learn)——练习scikit-learn的基本分类问题 +- [自行车租赁](https://www.kaggle.com/c/bike-sharing-demand)——简单的回归问题,用来训练基本的预处理、特征提取、建模和说通 +- [手写体识别](https://www.kaggle.com/c/digit-recognizer)——练习简单的图片分类,可以与tensorflow结合跑一下深度学习 + +练习这些案例,从头开始做机器学习整个流程,能够有一个基本的了解。 + +#### 怎么办之三——面试问题汇总 + +- - - + +1. [具体知识点面试题及答案](http://www.codeceo.com/article/machine-learn-algorithm-interview.html) +2. [比较高层一些的面试题及答案](http://www.ppvke.com/Blog/archives/38175) +3. [特定知识点面试题及答案](http://www.jianshu.com/p/2ae170c1e0ad) +4. [科技巨头最新的常用面试题](https://zhuanlan.zhihu.com/p/25860706) +5. [知乎上的问题解答](https://www.zhihu.com/question/23259302) \ No newline at end of file diff --git "a/\350\277\201\347\247\273\345\255\246\344\271\240\347\256\200\344\273\213.md" "b/\350\277\201\347\247\273\345\255\246\344\271\240\347\256\200\344\273\213.md" deleted file mode 100644 index fd63e51..0000000 --- "a/\350\277\201\347\247\273\345\255\246\344\271\240\347\256\200\344\273\213.md" +++ /dev/null @@ -1,22 +0,0 @@ -###迁移学习简介 -迁移学习(transfer learning)通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。由于直接对目标域从头开始学习成本太高,我们故而转向运用已有的相关知识来辅助尽快地学习新知识。比如,已经会下中国象棋,就可以类比着来学习国际象棋;已经会编写Java程序,就可以类比着来学习C#;已经学会英语,就可以类比着来学习法语;等等。世间万事万物皆有共性,如何合理地找寻它们之间的相似性,进而利用这个桥梁来帮助学习新知识,是迁移学习的核心问题。 - - ![图1不同位置、不同传感器的迁移标定。已知一个房间中A点的WiFi信号与相应的人体行为,如何标定另一个房间中C点的蓝牙信号?](https://www.jianguoyun.com/c/tblv2/CI-PGRIg8OCcyhIN69Fx4AOKrc4d8pGSycAF39p7O0sISe2I3MU/zPo3YDg3eYI/l) -图1不同位置、不同传感器的迁移标定。已知一个房间中A点的WiFi信号与相应的人体行为,如何标定另一个房间中C点的蓝牙信号? - -具体地,在迁移学习中,我们已有的知识叫做源域(source domain),要学习的新知识叫目标域(target domain)。迁移学习研究如何把源域的知识迁移到目标域上。特别地,在机器学习领域中,迁移学习研究如何将已有模型应用到新的不同的、但是有一定关联的领域中。传统机器学习在应对数据的分布、维度,以及模型的输出变化等任务时,模型不够灵活、结果不够好,而迁移学习放松了这些假设。在数据分布、特征维度以及模型输出变化条件下,有机地利用源域中的知识来对目标域更好地建模。另外,在有标定数据缺乏的情况下,迁移学习可以很好地利用相关领域有标定的数据完成数据的标定。 - ![](https://www.jianguoyun.com/c/tblv2/CI-PGRIgaVsFqoJGBd3Db3Ks8YdjJN33arWAItP8zbEq2JfQezk/oROX4ZTmiYE/l) -图2 迁移学习与传统机器学习的不同。(a)传统机器学习对不同的学习任务建立不同的模型,(b)迁移学习利用源域中的数据将知识迁移到目标域,完成模型建立。插图来自:Sinno Jialin Pan and Qiang Yang, A survey on transfer learning. IEEE TKDE 2010. - -迁移学习按照学习方式可以分为基于样本的迁移,基于特征的迁移,基于模型的迁移,以及基于关系的迁移。基于样本的迁移通过对源域中有标定样本的加权利用完成知识迁移;基于特征的迁移通过将源域和目标域映射到相同的空间(或者将其中之一映射到另一个的空间中)并最小化源域和目标域的距离来完成知识迁移;基于模型的迁移将源域和目标域的模型与样本结合起来调整模型的参数;基于关系的迁移则通过在源域中学习概念之间的关系,然后将其类比到目标域中,完成知识的迁移。 -理论上,任何领域之间都可以做迁移学习。但是,如果源域和目标域之间相似度不够,迁移结果并不会理想,出现所谓的负迁移情况。比如,一个人会骑自行车,就可以类比学电动车;但是如果类比着学开汽车,那就有点天方夜谭了。如何找到相似度尽可能高的源域和目标域,是整个迁移过程最重要的前提。 -迁移学习方面,代表人物有香港科技大学的Qiang Yang教授,南洋理工大学的Sinno Jialin Pan,以及第四范式的CEO戴文渊等。代表文献是Sinno Jialin Pan和Qiang Yang的A survey on transfer learning。 - -作者网站:http://jd92.wang. - -[参考资料] -[1] Pan S J, Yang Q. A survey on transfer learning[J]. IEEE Transactions on knowledge and data engineering, 2010, 22(10): 1345-1359. -[2] Introduction to Transfer Learning: http://jd92.wang/assets/files/l03_transferlearning.pdf。 -[3] Qiang Yang: http://www.cse.ust.hk/~qyang/. -[4] Sinno Jialin Pan: http://www.ntu.edu.sg/home/sinnopan/. -[5] Wenyuan Dai: https://scholar.google.com/citations?user=AGR9pP0AAAAJ&hl=zh-CN.