机器学习是什么?
机器学习是一帮计算机科学家想让计算机像人一样思考所研发出来的计算机理论。他们曾经说过,人和计算机其实本没有差别,同样都是一大批互相连接的信息传递和存储元素所组成的系统。所以有了这样的想法,加上他们得天独厚的数学功底,机器学习的前身也就孕育而生了。
机器学习的萌芽诞生于19世纪60年代,20年前开始逐渐兴起。它是一门跨学科的交融,这里面包含了概率论、统计学等等学科。随着计算机硬件的提升,计算机运算速度的不断提高,它真正开始进入我们的日常生活当中。而在不久的将来,我相信它也会成为我们生活中必不可少的组成元素。
我们说说日常生活中的机器学习应用。第一个提到的,最具代表性的公司应该就是Google。他所开发的Google Now, google photos都是基于机器学习的产物。同样在百度,图片识别也是应用到机器学习中的视觉处理系统。于此同时,各种各样的企业都开始尝试把自己的产品往机器学习上靠拢,比如金融公司的汇率预测,股票涨跌;房地产公司的房价预测等等。
机器学习不仅仅只有一种方法,实现它的方法多种多样。这里所说的方法,在程序语言中,我们叫做算法。目前所有的机器学习算法大概可以被分为4到5类。
如果在学习过程中,我们不断的向计算机提供数据和这些数据所对应的值,比如说给计算机看猫和狗的图片,告诉计算机哪些图片里的是猫,哪些是狗,然后让它学习去分辨猫和狗,通过这种指引的方式,让计算机学习我们是如何把这些图片数据对应上图片所代表的物体,也就是让计算机学习这些标签可以代表那些图片,这种方式就叫做“监督学习(supervised learning)”。预测房屋的价格,股票的涨停同样可以用监督学习来实现。大家所熟知的神经网络同样是一种监督学习的方式。
如果同样在这种学习过程中,我只给计算机提供猫和狗的图片,但是并没有告诉它哪些是猫,哪些是狗,取而代之的是,我让它自己去判断和分类,让它自己总结出这两种类型的图片的不同之处,这就是一种“非监督学习(un-supervised learning)”。在这一种学习过程中,我们可以不用提供数据所对应的标签信息,计算机通过观察各种数据之间的特性,会发现这些特性背后的规律,这些规律也就是非监督方法所学到的东西。
还有一种方法综合了监督学习和非监督学习的特征,这种叫作“半监督学习(Semi-Supervised Learning)”。它主要考虑如何利用少量有标签的样本和大量的没有标签样本进行训练和分类。
在规划机器人的行为准则方面,一种机器学习方法叫作“强化学习(reinforcement learning)”,也就是把计算机丢到了一个对于它完全陌生的环境或者让它完成一项从未接触过的任务,它自己会去尝试各种手段,最后让自己成功适应这一个陌生的环境,或者学会完成这件任务的方法途径。比如说我想训练机器人去投篮,我要只需要给它一个球,并告诉它你投进了我给你记一分,让它自己去尝试各种各样的投篮方法。在开始阶段,它的命中率可能会非常低,不过它会像人类一样自己总结和学习投篮失败或成功的经验,最后达到很高的命中率。Google 开发的 AlphaGo 也就是应用了之一种学习方式。
还有一种和强化学习类似的学习方法,叫做遗传算法(genetic algorithm)。这一种方法是模拟我们熟知的进化理论,淘汰弱者,适者生存。通过这样的淘汰机制去选择最优的设计或模型。比如这位开发者所开发的计算机学会玩超级玛丽。最开始的马里奥1代可能不久就牺牲了,不过系统会基于1代的马里奥随机生成2代的,然后在保存这些代里面最厉害的马里奥,淘汰掉比较弱的马利奥代。然后再次基于强者“繁衍和变异”生出更强的马里奥。这也就是遗传算法的基本思想。
以上就是当今比较重要的机器学习方法,我们再来总结一下:它们包括,有数据和标签的监督学习(supervised learning),只有数据没有标签的非监督学习(unsupervised learning),有结合了监督学习和非监督学习的半监督学习法。还有从经验中总结提升的强化学习(reinforcement learning),最后是和强化学习类似的,有着适者生存,不适者淘汰准则的遗传算法(genetic algorithm)。
总结:
有数据和标签的 监督学习 (supervised learning),
只有数据 没有标签的 非监督学习 (unsupervised learning)
有结合了 监督学习 和非监督学习的 半监督学习法.
还有从经验中总结提升的 强化学习 (reinforcement learning),
最后是和 强化学习类似的, 有着适者生存, 不适者淘汰准则的 遗传算法 (genetic algorithm).
如何选择机器学习方法
选择合适的估计器
解决机器学习问题最难的部分往往是为特定任务找到合适的估计器。不同的估计器更适合不同类型的数据和不同的问题。
这次我们会讲到通用的学习模式或者学习形式。具体来说,Scikit-learn把所有机器学习的模式整合,统一起来了。你懂其中一个学习模式的话,就可以通用所有的学习模式。
今天我们会讲到分类的学习。具体来说,我们会用到Iris的花的例子。这个花会有不同的特性特征。在Scikit-learn当中有一个database,数据库里面有花的练习。花是分了四个属性,比如长,高,近,直,直。这种花有四种类型,我们用classifier去分开这四个类型的花。
首先,我们要用到numpy,然后我们要from sklearn data set。Sklearn有很多的数