机器学习笔记-10(支持向量机)

这部分, 卡了很久。。。。一开始很不能理解这东西到底是个什么玩意儿,然后干脆不打算看了。不过,后面还是静下来,好好看了下,还是理解了这部分的大体内容。

支持向量机,也就是Support Vector Machine。咱也不知道是谁取得这么高大上的名字,一看上去就很复杂的样子。其实,它就是一种经过优化的机器学习算法。在某些情况下,它的效率会比之前提到的线性/非线性回归、逻辑回归和神经网络更快些。

之前听过这个概念,但是完全不知道做什么用,也到网上找资料补充了下,不过感觉还是很复杂的说。课程的解释倒是还好,但是感觉也不是非常全面,不过Andrew Ng教授选择的切入点,个人觉得很好入门。

一开始,教授就从之前的逻辑回归的Cost函数开始讲,然后把逻辑回归中的Cost函数做了一定改造,转换成了SVM的Cost函数。从图像来看,就是将之前的Cost曲线变换成线性的两个部分。然后对Cost方程也进行了优化和线性变换,减小了部分计算量。具体上来说,咱不喜欢去打那些符号,所以看图吧。与逻辑回归相比较,SVM并不输出概率,而是直接输出1/0,当然逻辑回归算法通过对概率进行处理,也可以二值化。

Aleternative view of ligistic regression

逻辑回归相关性质-1

继续阅读“机器学习笔记-10(支持向量机)”

机器学习笔记-9(机器学习系统的设计)

在给出了关于应用机器学习上的一些建议后,课程的第十部分介绍机器学习系统的设计。

这里使用了一个非常实际的例子来进行阐述,也就是如何建立一个垃圾邮件分类器。

首先该利用邮件里哪些信息来进行分类工作,一般来说,邮件里含有故意拼写错误的单词,因为现在很多邮件通过这种方式来避开垃圾邮件分类器的分类。

Building a spam classifier

垃圾邮件的区别

那应该如何对这种监管学习类型任务进行特征的选取呢?课程里是选取100个单词作为特征来进行垃圾/非垃圾邮件的评判特征。这100个单词使用一个特征向量进行表示,使用1/0来指示每一个单词是否出现邮件里。在实际应用中,一般是选取出现在训练集中最频繁的n个单词(10000~50000),这种方法比手工选取100个单词要好得多。 继续阅读“机器学习笔记-9(机器学习系统的设计)”

机器学习笔记-8(应用机器学习的建议)

这里是课程第九部分的内容,上面咱学习了好几种机器学习算法,基本涵盖了当前机器学习水平的大概情况。然后,下一步是什么?

事实上,或许你现在已经理解了上面所学习的几种算法,但是却不知道如何去应用它们,OK,这里就是为了机器学习应用的情况而进行的讨论。

很多时候,当你使用一个机器学习算法用某一集合的数据训练完之后,在加入新数据进行预测时,会突然发现误差很大,这就说明H函数的泛化不行,对新数据适应力不足。然后,在这种情况下,咱该怎么办呢 ?一般来说,你可以参考下列清单:

  • 获取更多的训练集
  • 尝试特征的一个小集
  • 尝试使用更多的特征
  • 尝试加入多项式特征
  • 尝试减小λ(正则参数)
  • 尝试增大λ(正则参数)

下面咱分别分析每个条目具体的应用情况。 继续阅读“机器学习笔记-8(应用机器学习的建议)”

机器学习笔记-6(神经网络的表示)

神经网络,哟呵呵~ 一看上去就很高端大气上档次 XD

最近很火的概念“Deep Learning”(深度学习),就是缘于神经网络,在上个世界70~90年代,这个概念曾经火过一段时间,但是后面发现在处理当时的问题(当时的计算机需要处理的问题,咳咳~ 是有其时代局限性的,要求不高。现在的计算机介么强大,配合“大数据”这一流弊的概念,神经网络终于再一次展现出其强大的潜力)效果居然还不如其他的一般机器学习算法,便沉寂了下来。不过时至今日,这个概念由于神经科学研究的深入,神经网络的升级版本“深度学习”开始展现出其强大的威力。神经网络由于基于生理学上的科学研究,所以跟人工智能的联系非常密切。当年吴恩达教授在刚进入大学接触到人工智能这个观念时,甚至根本就不看好人工智能的发展,还劝学生放弃这个“不切实际的梦想”,另一方面吴恩达教授从小的梦想就是发明能像人类一样思考的机器(笑)。不过直到他接触到了霍金斯(Jeff Hawikins,有神经科学研究背景的人工智能专家)的”单一演算法”假说,他重新拾起儿时的梦想。 继续阅读“机器学习笔记-6(神经网络的表示)”