diff --git a/README.md b/README.md new file mode 100644 index 0000000..a8760bd --- /dev/null +++ b/README.md @@ -0,0 +1,368 @@ +# 机器学习资源 Machine learning + + +# 本项目已更新,请移步到[这里](https://github.com/allmachinelearning/MachineLearning)参与我们最新的机器学习开源项目 + +关于机器学习和行为识别的资料,请见我的下面两个仓库: + +- [行为识别](https://github.com/jindongwang/activityrecognition) +- [迁移学习](https://github.com/jindongwang/transferlearning) + +**致力于分享最新最全面的机器学习资料,欢迎你成为贡献者!** + + + +**[Machine learning surveys](https://github.com/metrofun/machine-learning-surveys/)** + + + +**[快速入门TensorFlow](https://github.com/aymericdamien/TensorFlow-Examples)** + + + +- - - + + + +## 预备知识 Prerequisite + + + +- Python + + - [Learn X in Y minutes](https://learnxinyminutes.com/docs/python/) + + - [Python机器学习互动教程](https://www.springboard.com/learning-paths/machine-learning-python/) + + + +- Markdown + + - [Mastering Markdown](https://guides.github.com/features/mastering-markdown/) - Markdown is a easy-to-use writing tool on the GitHu. + + + +- R + + - [R Tutorial](http://www.cyclismo.org/tutorial/R/) + + + +- Python和Matlab的一些cheat sheet:http://ddl.escience.cn/f/IDkq 包含: + + - Numpy、Scipy、Pandas科学计算库 + + - Scikit-learn机器学习库、Keras深度学习库 + + - Matlab科学计算 + + - Matplotlib画图 + + + +- - - + + + + + +## 理论 Theory + + + +- ### 深度学习 Deep learning + + + +- ### [强化学习 Reinforcement learning](https://github.com/allmachinelearning/ReinforcementLearning) + + + +- ### [迁移学习 Transfer learning](https://jindongwang.github.io/transferlearning/) + + + +- ### [分布式学习系统 Distributed learning system](https://github.com/allmachinelearning/Deep-Learning-System-Design) + + + + + +- - - + + + + + +## 应用 Applications + + + +- ### 计算机视觉/机器视觉 Computer vision / machine vision + + + +- ### [自然语言处理 Natural language procesing](https://github.com/Nativeatom/NaturalLanguageProcessing) + + + +- ### 语音识别 Speech recognition + + + +- ### 生物信息学 Bioinfomatics + + + +- ### 医疗 Medical + + + +- ### [行为识别 Activity recognition](https://github.com/jindongwang/activityrecognition) + + + +- ### [人工智能(多智能体) Artificial Intelligence(Multi-Agent)](http://ddl.escience.cn/f/ILKI) + + + + + +- - - + + + +## 文档 notes + + + +- [综述文章汇总](https://github.com/jindongwang/MachineLearning/blob/master/notes/survey_readme.md) + + + +- [近200篇机器学习资料汇总!](https://zhuanlan.zhihu.com/p/26136757) + + + +- [机器学习入门资料](https://github.com/allmachinelearning/MachineLearning/blob/master/notes/MLMaterials.md) + + + +- [MIT.Introduction to Machine Learning](http://ddl.escience.cn/f/Iwtu) + + + +- [东京大学同学做的人机交互报告](https://github.com/allmachinelearning/MachineLearning/blob/master/notes/FieldResearchinChina927-104.pdf) + + + +- [人机交互简介](https://github.com/jindongwang/HCI) + + + +- [人机交互与创业论坛](https://github.com/allmachinelearning/MachineLearning/blob/master/notes/%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) + + + +- [职场机器学习入门](https://github.com/allmachinelearning/MachineLearning/blob/master/notes/%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) + + + +- [机器学习的发展历程及启示](http://mt.sohu.com/20170326/n484898474.shtml), (@Prof. Zhihua Zhang/@张志华教授) + + + +- [常用的距离和相似度度量](https://github.com/allmachinelearning/MachineLearning/blob/master/notes/distance%20and%20similarity.md) + + + +- - - + + + +## 课程与讲座 Course and talk + + + +- [斯坦福机器学习入门课程](https://www.coursera.org/learn/machine-learning),讲师为Andrew Ng,适合数学基础一般的人,适合入门,但是学完会发现只是懂个大概,也就相当于什么都不懂。省略了很多机器学习的细节 + +- [Stanford CS 229](http://cs229.stanford.edu/materials.html), Andrew Ng机器学习课无阉割版,Notes比较详细 + +- [CMU 10-702 Statistical Machine Learning](http://www.stat.cmu.edu/~larry/=sml/), 讲师是Larry Wasserman,应该是统计系开的机器学习,非常数学化,第一节课就提到了RKHS(Reproducing Kernel Hilbert Space),建议数学出身的同学看或者是学过实变函数泛函分析的人看一看 + +- [CMU 10-715 Advanced Introduction to Machine Learning](https://www.cs.cmu.edu/~epxing/Class/10715/),同样是CMU phd级别的课,节奏快难度高 + +- Coursera上国立台湾大学[林轩田](https://www.coursera.org/instructor/htlin)开的两门课:[机器学习基石](https://www.coursera.org/course/ntumlone)(适合入门),[机器学习技法](https://www.coursera.org/course/ntumltwo)(适合提高)。 + +- [Machine Learning for Data Analysis](https://www.coursera.org/learn/machine-learning-data-analysis), Coursera上Wesleyan大学的Data Analysis and Interpretation专项课程第四课。 + +- [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks), Coursera上的著名课程,由Geoffrey Hinton教授主讲。 + +- 斯坦福大学Feifei Li教授的[CS231n系列深度学习课程](http://cs231n.stanford.edu/)。Feifei Li目前是Google的科学家,深度学习与图像识别方面的大牛。这门课的笔记可以看[这里](https://zhuanlan.zhihu.com/p/21930884)。 + +- Max Planck Institute for Intelligent Systems Tübingen[德国马普所智能系统研究所2013的机器学习暑期学校视频](https://www.youtube.com/playlist?list=PLqJm7Rc5-EXFv6RXaPZzzlzo93Hl0v91E),仔细翻这个频道还可以找到2015的暑期学校视频 + +- 知乎Live:[我们一起开始机器学习吧](https://www.zhihu.com/lives/792423196996546560),[机器学习入门之特征工程](https://www.zhihu.com/lives/819543866939174912) + + + +- - - + + + + + + + + + + + +## 相关书籍 reference book + + + + + + + +- 入门读物 [The Elements of Statistical Learning(英文第二版),The Elements of Statistical Learning.pdf](http://ddl.escience.cn/ff/emZH) + + + +- [机器学习](https://book.douban.com/subject/26708119/), (@Prof. Zhihua Zhou/周志华教授) + + + +- [统计学习方法](https://book.douban.com/subject/10590856/), (@Dr. Hang Li/李航博士) + + + +- [一些Kindle读物](http://ddl.escience.cn/f/IwWE): + + + + - 利用Python进行数据分析.azw3 + + - 跟老齐学Python:从入门到精通.azw3 + + - Python与数据挖掘 (大数据技术丛书) - 张良均.azw3 + + - Python学习手册.azw3 + + - Python性能分析与优化.mobi + + - Python数据挖掘入门与实践_7242.azw3 + + - Python数据分析与挖掘实战(大数据技术丛书) - 张良均.azw3 + + - Python科学计算(第2版).azw3 + + - Python计算机视觉编程 [美] Jan Erik Solem.azw3 + + - python核心编程(第三版).azw3 + + - Python核心编程(第二版).azw3 + + - Python高手之路 - [法] 朱利安·丹乔(Julien Danjou).azw3 + + - Python编程快速上手 让繁琐工作自动化.azw3 + + - Python编程:从入门到实践.azw3 + + - Python3 CookBook中文版.mobi + + - 终极算法机器学习和人工智能如何重塑世界 - [美 ]佩德罗·多明戈斯.azw3.azw3 + + - 机器学习系统设计 (图灵程序设计丛书) - [美]Willi Richert & Luis Pedro Coelho.azw3.azw3 + + - 机器学习实践指南:案例应用解析(第2版) (大数据技术丛书) - 麦好.azw3 + + - 机器学习实践 测试驱动的开发方法 (图灵程序设计丛书) - [美] 柯克(Matthew Kirk).a.azw3 + + - 机器学习:实用案例解析 (O'Reilly精品图书系 + + + +- [Packt每日限免电子书精选](http://ddl.escience.cn/f/IS4a): + + + + - Learning Data Mining with Python + + - Matplotlib for python developers + + - Machine Learing with Spark + + - Mastering R for Quantitative Finance + + - Mastering matplotlib + + - Neural Network Programming with Java + + - Python Machine Learning + + - R Data Visualization Cookbook + + - R Deep Learning Essentials + + - R Graphs Cookbook second edition + + - D3.js By Example + + - Data Analysis With R + + - Java Deep Learning Essentials + + - Learning Bayesian Models with R + + - Learning Pandas + + - Python Parallel Programming Cookbook + + - Machine Learning with R + +--- + + + +## 其他 Miscellaneous + + + +- [机器学习日报](http://forum.ai100.com.cn/):每天更新学术和工业界最新的研究成果 + + + +- - - + + + +## 如何加入 How to contribute + + + +- 直接pull requests + +- 或者到[这里](https://github.com/allmachinelearning/MachineLearning/issues/1)留下你的Github账号我们把你加入贡献者列表 + +- PDF等大文件上传方法:登录 http://ddl.escience.cn 用户名:allmachinelearning@163.com,密码:machine123。登录后,在‘个人空间’中上传,然后将文件(夹)链接共享。 + +- 之后请在贡献者页面加入自己的信息 + + + +## 如何开始项目协同合作 + +[快速了解github协同工作](http://hucaihua.cn/2016/12/02/github_cooperation/) + + + +[及时更新fork项目](https://jinlong.github.io/2015/10/12/syncing-a-fork/) + + + +#### [贡献者 Contributors](https://github.com/allmachinelearning/MachineLearning/blob/master/contributors.md) + + + diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c741881 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-slate \ No newline at end of file diff --git a/contributors.md b/contributors.md new file mode 100644 index 0000000..eda97f4 --- /dev/null +++ b/contributors.md @@ -0,0 +1,32 @@ +## 贡献者 Contributors + +| Contributor | Affiliation | +| ----------- | ----------- | +| [Jindong Wang](http://jd92.wang) | 中国科学院计算技术研究所 | +| [Xiandong QI](https://xiandong79.github.io) | 香港科技大学 | +| [Youjie Xia](https://youjiexia.github.io) | 上海交通大学 | +| [Jiapeng Zhang](https://www.zhihu.com/people/jiapengzhang) | 三本大学生 | +| [Zhigang He](https://github.com/Hochikong) | 暨南大学 | + + + + + + + + + + + + + + + + + + + + + + + diff --git a/notes/AboutML.md b/notes/AboutML.md new file mode 100644 index 0000000..824c1d0 --- /dev/null +++ b/notes/AboutML.md @@ -0,0 +1,34 @@ +##关于机器学习的一些东西 + +1. 关于技术本身的情况 + +1.1 Machine Learning的一些理解 +* 机器学习的概念自不用多说。这里我仅提到一点,机器学习在学科分类上是数据人工智能范畴,注定它和AI是不可分的。其实,传统的AI一直都侧重解决三个步骤的问题:知识的表示、知识的获取和知识的学习。其中,机器学习涵盖了知识的获取和学习两大部分,是AI的核心部分。其实说白了,ML解决的就是怎么从已知推断未知,它走的是归纳(induction)这个自上而下的过程,AI中还有一个相对立的知识体系叫做演绎(deduction),这个主要是自动推理的范畴,和机器学习基本关系不大,是较独立的一支。 + +1.2 一些课程资料 +* 课程1:很有名的课程,你肯定知道,Andrew Ng在Stanford开的课,地址:[吴恩达的机器学习公开课](https://www.coursera.org/learn/machine-learning)。该课程的优点:简单易懂,适用于初学者,特别适合入门及数学能力一般的,不难。缺点也很明显,基本都是点到为止,讲解不够深入,只适用于初学。我目前已看完。 + +* 课程2:这个也是coursera上的课,讲师是国立台湾大学的[林轩田](https://www.coursera.org/instructor/htlin),这个老师拿过三年的KDD Cup冠军,是机器学习界讲课不错的老师。他还写了一个机器学习公开库,是matlab处理机器学习的利器,后面再说。他的课有两门,分别是[机器学习基石](https://www.coursera.org/course/ntumlone)(适合入门),[机器学习技法](https://www.coursera.org/course/ntumltwo)(适合提高)。这个老师讲课很有意思,特别是台湾普通话听着还不错。我目前在听他的机器学习基石,还没有听完。 + +1.3 瓶颈问题 +* 不知道什么特征是重要特征。所以像deep learning很有用,是因为它能自动学习特征 +* 现实世界中有label的数据太少,所以限制有监督学习算法(这个个人感觉太正常了)。 +* 计算复杂度和数据量(这个是Big Data的瓶颈) +* 局部极小值问题(算法问题) + +1.4 发展及预测 +* 我眼中未来的ML应该是,几乎没有冷启动问题(针对一个特定问题,自己获取特征进行标注作为测试),是一个不间断在线学习的系统,系统能够对新加入的数据进行自动判断其是否能进入测试样本,用户看来,这就是一个高度智能的系统,随时出反馈。 + +* 模型及算法应该是对用户透明的,所有人不需要一点有关算法的知识就可以进行运用,这一点在我之前与你提到的[DataRobot公司](http://www.datarobot.com/)已有说明,自动根据用户的数据在云端测试各种模型并给出最优参数及结果。我感觉对未来的ML而言,由于Big Data的不断发展,计算复杂性必然不能成为问题。这应当成为未来的趋势之一。 + +* 数据获取不能成为问题。现在的ML都是确定研究问题,然后想好要采集什么特征,然后用什么sensor来采集,之后必然配合大量的人工采集,劳民伤财。我认为未来的ML,在数据的获取方面,必然要具有类似自动生成数据的能力,当下没有这部分数据,我可以用已有的知识和数据分析生成一部分自动的测试数据,作为冷启动的一部分。由于未来是Big Data的时代,所以,这部分数据在今后不断学习的过程中,其权重必然会越来越低,不会对真正数据产生影响。 + +1.5 ML的基本流程方面 +* 基本就是确定研究问题——采集数据——人工标注——选择模型和算法——看结果调参数 + +2. 数据采集方面 + +2.1 目前的情况是,需要提前想好需要采集的数据,并配合相应的设备进行采集。在人体健康方面主要的依据是医学期刊与会议文章中的特征知识,比如,根据医学知识,患有抑郁症的病人其走路会不稳当且走路很慢,这就是依据,根据这些可以基本确定要采集的数据类型及sensor。 +2.2 预处理的方面比较杂乱,主要是去除脏数据并进行人工标注。预处理方面,由于针对的问题不同,所以,对脏数据的定义也不一样,需要结合一定的field study进行研究处理。在现有的条件下,基本上监督学习方面占了很大的比重,所以,人工标注是必要的。预处理的方面和数据挖掘这门课分不开,有关预处理的知识,在[这里]()(目录待完善)。 +2.3 就目前情况而言,不知道特征量的话,有两种方面,一种我们小组之前在高效能豆瓣电影评分时用过,就是尝试不同特征与不同的模型组合以分析可能的特征值,这是笨办法,在特征值少时有用。另一种就是DL,目前我尚未接触过真正的应用,所以这里不予举例。 +2.4 \ No newline at end of file diff --git a/notes/FieldResearchinChina927-104.pdf b/notes/FieldResearchinChina927-104.pdf new file mode 100644 index 0000000..422bc41 Binary files /dev/null and b/notes/FieldResearchinChina927-104.pdf differ diff --git a/notes/MLMaterials.md b/notes/MLMaterials.md new file mode 100644 index 0000000..1f00176 --- /dev/null +++ b/notes/MLMaterials.md @@ -0,0 +1,49 @@ +## 机器学习的一些资料 +### 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. **推荐必读** + - 统计学和机器学习结合的入门书:[统计学习方法](http://ddl.escience.cn/f/Iwn0),作者[李航](http://blog.sina.com.cn/u/2060750830)。这本书介绍了10个机器学习领域的代表性算法,讲的非常好,书本身也就200多页,很适合入门,强烈推荐。 + - 机器学习入门书:周志华老师的西瓜书[机器学习](https://github.com/allmachinelearning/MachineLearning/blob/master/books/Machine%20Learning/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0(%E5%91%A8%E5%BF%97%E5%8D%8E.pdf),语言简单易懂,一度登录亚马逊,京东计算机类畅销书榜首,很适合入门阅读,相比于李航老师的书,这本书更片算法和应用 (李航老师的书更篇数学),先读李航老师的书,再读这本,效果更佳。 + +2. 机器学习理论方面: + - **推荐** 著名教材《Pattern Recognition》中文版为[《模式分类》第二版](http://ddl.escience.cn/f/IwnM),从数学的角度讲了机器学习的方方面面,非常不错。这本书好的地方是,书中所有的算法都有数学推导,讲的也很全面,作者的眼光很独到,习题和上机题也非常有挑战性;不好的地方就是,对现在流行的比如boosting和SVM等,书只是略讲了一下,可能需要额外再补充知识。不过即便如此,当我最近一个月看到这书时立刻就感叹为什么我当初上课的时候没有赶上这本书! + + - 权威学者[Kevin P. Murphy](http://www.cs.ubc.ca/~murphyk/)的著作[Machine Learning:A Probabilistic Perspective(MLAPP)](http://ddl.escience.cn/f/Iwob) ,非常厚,偏重数学理论,难度高,是学习机器学习理论的教材,我们上课用书。 + +3. 用python进行数据处理的书:[利用python进行数据分析](http://dlwt.csdn.net/fd.php?i=651281517754404&s=45e7feb35741a9192c2049454658704e),适合浏览,偏重工程实践,介绍常用的python处理数据的方法和函数等,可以看看。 +4. [机器学习实战](http://ddl.escience.cn/f/IwnL),这个和第3点说的这个书配合看,效果不错,这个书很有针对性,每个算法有一个实际问题,有源程序让你去写,不错。 +5. 学习统计不能不说的经典的[《统计学习基础》](http://ddl.escience.cn/f/Iwog),我暂时还没看过。 +6. 以及业界久负盛名的PRML(模式识别与机器学习),我这里[中文英文版](http://ddl.escience.cn/f/Iwoo)都有。 + +#### 1.3. 工具 +* 第三方库 + 机器学习有很多开源库可以直接拿来用,github是个不错的获取代码的网站,比较著名的有: + * [libsvm](https://github.com/cjlin1/libsvm),作者是林轩田,是svm的标准库。 + * [scikit-learn](http://scikit-learn.org),scikit包是python中著名的处理数据的包,其中内置了几乎所有流行的机器学习算法,配合python简洁的语法操作,使用起来很方便。 + * [pandas](http://www.cnblogs.com/chaosimple/p/4153083.html),python的一个包,其中对表的处理比较出色,我只是试用过。 + * [pylearn2](https://github.com/lisa-lab/pylearn2),这个我没有接触过,不过在github上排名很靠前,应该不错。 + * [smile](https://github.com/haifengl/smile),彪悍的机器学习库,用java开发,有自然语言处理方面的库。 + * [oryx](https://github.com/cloudera/oryx),处理大规模数据很彪悍。 + * [mlpack](https://github.com/mlpack/mlpack),老牌可靠c++编写的机器学习库。 + +* 工具 +python、java以及matlab三种语言是目前比较流行的机器学习方面的语言。 + * python:强在各种包,几乎无所不能,其科学计算部分(scikit)和matlab不相上下。用Flask当作web框架,几乎可以直接部署成web项目,非常方便,强烈推荐。 + * java:强在其企业级应用能力和稳定性。 + * matlab:强在其科学计算部分上。matlab我用的不多,因为目前来看,它和python的科学计算差不多。 + +* 网上的教程 +这是在一个妹子的微信朋友圈看到的[文章](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. 数据挖掘 +* 快速入门:看我去年考试写的总结[数据挖掘复习整理](http://ddl.escience.cn/f/IwnW),可快速了解数据挖掘的相关概念。这个总结去年在雁栖湖传的很火,还有妹子给我发短信感谢。。。 +* 数据挖掘领域的经典著作:[数据挖掘:概念与技术](http://ddl.escience.cn/f/IwoF),作者是[韩家炜](http://baike.baidu.com/link?url=UsI-yAamHGGNoe22xOWX7XjU-8eILnF4oQTP-2dysekLxDk6FleEefGc013or725zvos5Mach2j6cWEKcv2DF_),是标准的上课教材,上一部分我的总结中对应的页码就是这个书里的。 + +### 3. 人工智能 +* 教材:著名的教材[人工智能:一种现代方法](http://ddl.escience.cn/f/IwnK),很厚,可以翻看。 diff --git a/notes/distance and similarity.md b/notes/distance and similarity.md new file mode 100644 index 0000000..84d94ab --- /dev/null +++ b/notes/distance and similarity.md @@ -0,0 +1,167 @@ +# 距离度量 + +- - - + +[toc] + +## 常见距离与相似度度量 + +- - - + +### 欧氏距离 + +定义在两个向量(两个点)上:点$\mathbf{x}$和点$\mathbf{y}$的欧氏距离为: + +$$ +d_{Euclidean}=\sqrt{(\mathbf{x}-\mathbf{y})^\top (\mathbf{x}-\mathbf{y})} +$$ + +### 闵可夫斯基距离 + +Minkowski distance, 两个向量(点)的$p$阶距离: + +$$ +d_{Minkowski}=(|\mathbf{x}-\mathbf{y}|^p)^{1/p} +$$ + +当$p=1$时就是曼哈顿距离,当$p=2$时就是欧氏距离。 + +### 马氏距离 + +定义在两个向量(两个点)上,这两个点在同一个分布里。点$\mathbf{x}$和点$\mathbf{y}$的马氏距离为: + +$$ +d_{Mahalanobis}=\sqrt{(\mathbf{x}-\mathbf{y})^\top \Sigma^{-1} (\mathbf{x}-\mathbf{y})} +$$ + +其中,$\Sigma$是这个分布的协方差。 + +当$\Sigma=\mathbf{I}$时,马氏距离退化为欧氏距离。 + +### 互信息 + +定义在两个概率分布$X,Y$上,$x \in X,y \in Y$.它们的互信息为: + +$$ +I(X;Y)=\sum_{x \in X} \sum_{y \in Y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)} +$$ + +### 余弦相似度 + +衡量两个向量的相关性(夹角的余弦)。向量$\mathbf{x},\mathbf{y}$的余弦相似度为: + +$$ +\cos (\mathbf{x},\mathbf{y}) = \frac{\mathbf{x} \cdot \mathbf{y}}{|\mathbf{x}|\cdot |\mathbf{y}|} +$$ + +理解:向量的内积除以向量的数量积。 + +### 皮尔逊相关系数 + +衡量两个随机变量的相关性。随机变量$X,Y$的Pearson相关系数为: + +$$ +\rho_{X,Y}=\frac{Cov(X,Y)}{\sigma_X \sigma_Y} +$$ + +理解:协方差矩阵除以标准差之积。 + +范围:[-1,1],绝对值越大表示(正/负)相关性越大。 + +### Jaccard相关系数 + +对两个集合$X,Y$,判断他们的相关性,借用集合的手段: + +$$ +J=\frac{X \cap Y}{X \cup Y} +$$ + +理解:两个集合的交集除以并集。 + +扩展:Jaccard距离=$1-J$。 + +- - - + +## 概率分布的距离度量 + +- - - + +### KL散度 + +Kullback–Leibler divergence,相对熵,衡量两个概率分布$P(x),Q(x)$的距离: + +$$ +D_{KL}(P||Q)=\sum_{i=1} P(x) \log \frac{P(x)}{Q(x)} +$$ + +非对称距离:$D_{KL}(P||Q) \ne D_{KL}(Q||P)$. + +### JS距离 + +Jensen–Shannon divergence,基于KL散度发展而来,是对称度量: + +$$ +JSD(P||Q)= \frac{1}{2} D_{KL}(P||M) + \frac{1}{2} D_{KL}(Q||M) +$$ + +其中$M=\frac{1}{2}(P+Q)$。是对称度量。 + +### MMD距离 + +Maximum mean discrepancy,度量在再生希尔伯特空间中两个分布的距离,是一种核学习方法。两个随机变量的距离为: + +$$ +MMD(X,Y)=\left \Vert \sum_{i=1}^{n_1}\phi(\mathbf{x}_i)- \sum_{j=1}^{n_2}\phi(\mathbf{y}_j) \right \Vert^2_\mathcal{H} +$$ + +其中$\phi(\cdot)$是映射,用于把原变量映射到高维空间中。 + +理解:就是求两堆数据在高维空间中的均值的距离。 + +### Principal angle + +也是将两个分布映射到高维空间(格拉斯曼流形)中,在流形中两堆数据就可以看成两个点。Principal angle是求这两堆数据的对应维度的夹角之和。对于两个矩阵$\mathbf{X},\mathbf{Y}$,计算方法:首先正交化两个矩阵,然后: + +$$ +PA(\mathbf{X},\mathbf{Y})=\sum_{i=1}^{\min(m,n)} \sin \theta_i +$$ + +其中$m,n$分别是两个矩阵的维度,$\theta_i$是两个矩阵第$i$个维度的夹角,$\Theta=\{\theta_1,\theta_2,\cdots,\theta_t\}$是两个矩阵SVD后的角度: + +$$ +\mathbf{X}^\top\mathbf{Y}=\mathbf{U} (\cos \Theta) \mathbf{V}^\top +$$ + +### HSIC + +希尔伯特-施密特独立性系数,Hilbert-Schmidt Independence Criterion,用来检验两组数据的独立性: + +$$ +HSIC(X,Y) = trace(HXHY) +$$ + +其中$X,Y$是两堆数据的kernel形式。 + +### Earth Mover’s Distance + +推土机距离,度量两个分布之间的距离,又叫Wasserstein distance。以最优运输的观点来看,就是分布$X$能够变换成分布$Y$所需要的最小代价: + +一个二分图上的流问题,最小代价就是最小流,用匈牙利算法可以解决。 + +$$ +emd(X,Y)=\min{\frac{\sum_{i,j}f_{ij}d(\textbf{x}_i,\textbf{y}_j)}{\sum_{j}w_{yj}}} +$$ + +约束条件为 + +$$ +s.t. \sum_{i}f_{ij}=w_{yj}, \sum_{j}f_{ij}=w_{xi}. +$$ + +#### References + +[1] http://blog.csdn.net/pipisorry/article/details/45651315 + +[2] http://chaofan.io/archives/earth-movers-distance-%E6%8E%A8%E5%9C%9F%E6%9C%BA%E8%B7%9D%E7%A6%BB + + diff --git a/notes/survey_readme.md b/notes/survey_readme.md new file mode 100644 index 0000000..fcfc7e6 --- /dev/null +++ b/notes/survey_readme.md @@ -0,0 +1,16 @@ +### 综述文章汇总 + +这里汇总了一些我下载过或看过的综述survey文章。 + +- 迁移学习的综述请看这里:[迁移学习综述](https://github.com/jindongwang/transferlearning#2迁移学习的综述文章) +- [多标签学习A Review on Multi-Label Learning Algorithms_Zhang_Zhou_2014.pdf](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/A%20Review%20on%20Multi-Label%20Learning%20Algorithms_Zhang_Zhou_2014.pdf) +- [多视角学习A survey of multi-view machine learning_Sun_2013.pdf](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/A%20survey%20of%20multi-view%20machine%20learning_Sun_2013.pdf) +- [随机森林用于数据挖掘Mining data with random forests - A survey and results of new tests](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/Mining%20data%20with%20random%20forests%20-%20A%20survey%20and%20results%20of%20new%20tests_Verikas%20et%20al_2011.pdf) +- [多任务学习Multi-task learning survey](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/Multi-task%20learning%20survey_.pdf) +- [半监督学习Semi-supervised learning literature survey_Zhu_2005.pdf](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/Semi-supervised%20learning%20literature%20survey_Zhu_2005.pdf) +- [稀疏子空间聚类Sparse Subspace Clustering_Elhamifar_Vidal_2013.pdf](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/Sparse%20Subspace%20Clustering_Elhamifar_Vidal_2013.pdf) +- [聚类算法Survey of Clustering Algorithms_Xu_WunschII_2005.pdf](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/Survey%20of%20Clustering%20Algorithms_Xu_WunschII_2005.pdf) +- [深度学习各种综述](https://github.com/jindongwang/MachineLearning/tree/master/papers/survey/deep%20learning) + - 最著名的综述:深度学习三巨头在2015年Nature上的[Deep learning](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/deep%20learning/LeCun%20et%20al_Deep%20learning_2015.pdf) + - 比较完整的综述:[Deep learning in neural networks - an overview](https://github.com/jindongwang/MachineLearning/blob/master/papers/survey/deep%20learning/Deep%20learning%20in%20neural%20networks%20-%20an%20overview.%20AMiner_.pdf) + - 此外,还有一些中英文的综述,都在上面目录里。 \ No newline at end of file diff --git "a/notes/\344\272\272\346\234\272\344\272\244\344\272\222\344\270\216\345\210\233\344\270\232\350\256\272\345\235\233.md" "b/notes/\344\272\272\346\234\272\344\272\244\344\272\222\344\270\216\345\210\233\344\270\232\350\256\272\345\235\233.md" new file mode 100644 index 0000000..9e5011e --- /dev/null +++ "b/notes/\344\272\272\346\234\272\344\272\244\344\272\222\344\270\216\345\210\233\344\270\232\350\256\272\345\235\233.md" @@ -0,0 +1,67 @@ +###人机交互与创业论坛 + +####1. 清华大学史元春 + +[史元春](4161c7a1f5062141349c05e916788f8ebac965de)是清华大学[人机交互与媒体集成研究所](http://pi.cs.tsinghua.edu.cn/)所长,教育部“长江学者”特聘教授。 + +讲座中提到的项目: + +- BodyRC + +- SkinMotion + - 上两部分没什么资料。 + +- Google Glass上的一维文本输入 + - Google Glass那根金属杆太细了,所以只能把26个字母映射成一维的,然后分别进行编码进行输入。实际测试输入速度达到30字/秒。 + +####2. 陈益强 + +- 智能贴件 + + 非干扰式贴件,一个贴件是一个具有多种功能的传感器,可以任意贴在杯子上、冰箱上、鞋子上、衣服上等等。提出的目的是,现有的智能设备方方面面无所不在,但是一个人不可能为了用智能设备而把他现有的非智能设备都换一遍。智能贴件是随意的,想往哪贴都能做到相应的智能,很好地完成了这个功能。 + +- 增量智能算法 + + 针对现在穿戴设备的数据多样性、特征多样性以及类别多样性提出通用的增量算法,模型会根据不同的情况作动态适应,从而达到更完备更简单的检测。 + +- 未来的趋势 + + - 侵入式->非干扰 + + - 情境感知->认知计算 + + - 云计算->海云 + + - 智能感知->劝导服务 + +####3. [小小牛创意科技有限公司](http://www.xiaoxiaoniu.net/) + +创始人:曹翔。专注于做关于儿童的智能设备。 + +讲座中提到的: + +- TellTable[CSCW 2010] + - 在大型触摸屏上实现多人协作创造内容。 + - 参考文献:[Cao X, Lindley S E, Helmes J, et al. Telling the whole story: anticipation, inspiration and reputation in a field deployment of TellTable[C]//Proceedings of the 2010 ACM conference on Computer supported cooperative work. ACM, 2010: 251-260.](http://research.microsoft.com/en-us/um/redmond/groups/connect/CSCW_10/docs/p251.pdf) + ![](https://jianguoyun.com/c/tblv2/CKi6GBIgCzNgbUdcKn-ChUs_y6iMMg4JYS2ggRURBUYLpaE78Ng/09XoNf7yPas/l) + +- ToonTastic + - 即将上市,所以暂时没资料。用iPad等和白纸结合在一起,在纸上画的东西会在iPad上显示并富有动画效果,通过在纸上用手势控制物体来达到让iPad里的东西动的效果。比如在纸上画一个矩形框再放一个弹珠,那么在iPad里弹珠真的就能在框里弹来弹去,通过笔在纸上做出遮挡的动作从而iPad里的弹珠真的就被遮挡了。类似这样的。 + +- BodyAvatar[UIST 2013] + - 利用kinect自创建动画形象并进行互动。 + - 参考文献:[Zhang Y, Han T, Ren Z, et al. BodyAvatar: Creating freeform 3D Avatars using first-person body gestures[C]//Proceedings of the 26th annual ACM symposium on User interface software and technology. ACM, 2013: 387-396.](http://delivery.acm.org/10.1145/1710000/1709942/p271-russell.pdf?ip=173.230.153.155&id=1709942&acc=ACTIVE%20SERVICE&key=33E289E220520BFB%2ED25FD1BB8C28ADF7%2EDF84FC9AE58697EA%2E4D4702B0C3E38B35&CFID=546029693&CFTOKEN=37251250&__acm__=1442364799_cb06efef017f4c54aaff490836d06661) + - ![](https://jianguoyun.com/c/tblv2/CKi6GBIgihaMdccrg3JVB_wcDE_ngoBraWZtWs7VqGWluThavUQ/8tfwbv4vwxI/l) + +- Ensewing + - 没有什么资料能查到。不过很有创新性。是用kinect检测手势运动,然后手势模拟弹奏相应的乐曲。创新性就在于,不需要任何乐器音乐的知识也能组成一个演奏团。实验的时候找了一帮孩子训练,然后真的完全不会音乐的他们完整地演奏出了卡农。惊呆了。 + +####4. [云知声科技有限公司](http://www.unisound.com/) +专注人工智能领域的语音服务,创始人等都来自中科院等单位,博士学历。一年融资1个亿,又半年5000万美元,值得关注。 + +####5. 飞跃机器人 +一个专科学生创业,带领一帮博士干,想像一下这个阵容。。。飞跃的名字来源于中科院自动化所王飞跃教授。 +没什么顶尖的技术,用的都是成熟的。强应该就强在这个专科哥们比较会忽悠吧。 + + +- \ No newline at end of file diff --git "a/notes/\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/notes/\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/notes/\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