写在开头的
从今天起就要开始认真的学习Machine Learning了。在网上查找了很多的资料,也大概看了下deeplearning.net上的一些教程。但是既没有一丝的学习基础,也没有过硬的python编程能力,而且英语阅读水平也跟不上,学起来真是相当的吃力。最后觉得刚上手的话还是跟着入门级的视频教程学比较好。搜索对比下来还是Andrew Ng的视频适合我这种基础差的人看,一方面学习门槛低,一方面又能学到不错的技术,更重要的是学习资源充足。在网上找到了中国海洋大学的黄同学整理翻译的Andrew Ng 2014年最新的视频和课件(重要的是有翻译。。),终于能够好好学学了。
(分享视频以及课件下载地址:mooc学院)。
关于Andrew Ng
话说学ML的应该没人不知道Andrew Ng 吧,毕竟也是业界数的过来的大牛。他其实是一个美籍华人,中文名叫吴恩达,是斯坦福大学的副教授,主攻人工智能和机器学习,最近更是被百度挖过来担任首席科学家,主导百度大脑的深度学习工作(他之前也参加了更加厉害的谷歌大脑的研发工作),被誉为”百度请来的最强外援“。
他也是现在相当知名的mooc网站coursera的创始人之一,自己作为斯坦福大学的讲师也将自己教授的课程发布在了网上供全世界所有的人学习。从这点上来讲,他还是很值得尊重的。
什么是机器学习
其实业内对这个还没有一个统一的定义,一个挺规范的定义来自卡耐基梅隆大学的Tom Mitchell,他给机器学习定义为:
一个程序经过经验E(Experience)的学习之后,被用来解决任务T(Task),他的性能表现P(Performance)能够随着经验的增加而提高,这样的过程就是机器学习。 就像是一个通过学习来优化的下棋算法,经过大量与人的对弈学习后(经验E),当他再次与人对弈时(任务T),他的胜率(表现P)会有所提高。
这个定义还是很泛的,但也是很好理解的,这说明机器学习离我们真的非常的近,最典型的就是网站的推荐准确性啊,垃圾邮件的区分啊,还有就是根据表征进行的疾病诊断啊。。。这些东西里面都与机器学习有着很重要的关系。
总的来讲,机器学习分为两大类,即监督学习和无监督学习。
监督学习(Supervised Learning)
回归问题(Regression)
监督学习的一个基本问题大概就是:给你一个由大量自变量与其对应的函数的数据集供你学习,现在给你一个新的自变量,问你他函数的最大期望值是什么。说白了也就是函数的拟合回归问题。比较简单而典型的就是我们熟知的线性回归,这也算是一种机器学习。不过现实生活中的变量可不仅仅是单变量这么简单,这里的变量通常会有很多维度甚至是无限维;对应的关系也不会只是线性关系这么简单。
分类问题(Classification)
监督学习的另一个基本问题大概就是:给你一些数据集以及其中每一个数据对应的分类供你学习,现在给你一个新的数据,问你他最可能属于哪一个分类。也就是常说的分类了。比如给你一堆临床数据,它告诉你哪些疾病会有哪些表现,那些特征;现在给你一个特定病人的临床症状,问你他的患的是哪一种病的。当然,现实中特征这种东西也是几乎是有无限多个的。
回归问题与分类问题的实质差别是,回归问题是需要你给出一个连续的输出;而分类问题是要你给出一个离散的结果。
无监督学习(Unsupervised Learning)
无监督学习,和监督学习不同(废话),他接受一组数据集,数据集中的每个元素都有很多的特征,但是并没有任何的标签表示哪个数据属于哪一类。经过这些数据的学习,他能给出哪些数据和哪些数据是可以划分为同一类的(即给数据打上标签),就像是“物以类聚”一样,所以又叫“聚类算法”(Clustering Algorithm)。比如百度的新闻爬虫,他爬下了茫茫多的网页,却能自动的将新闻分为各种类别,这就是托聚类算法的福。无监督学习还广泛应用到了DNA的解读上,这一点应该也很好理解。