从宏观上秒懂机器学习(上)
从宏观上秒懂机器学习(上)
码农读书 发表于4个月前
从宏观上秒懂机器学习(上)
  • 发表于 4个月前
  • 阅读 737
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

    最近机器学习概念炒的很热,有很多产品进入我们的生活,也成了很多公司融资重要筹码。传统计算机工作是通过接受输入指令,根据逻辑代码,给出输出 ,是一种因果关系。而机器学习不接受输入指令,接受我们输入的数据,给出决策结果,是一种统计思想。看到这里很多人不禁会问,到底什么是机器学习,有什么重要性?

    我们也许听说过机器学习、数据挖掘、自然语言处理、模式识别、统计学习、概率论、计算机视觉、语音识别...如果从事相关工作,可能还听说过决策树、线性回归、最小二乘、梯度下降、逻辑回归、神经网络、SVM、核函数、聚类算法、降维算法...还没入行,已经别这些概念拒绝在千里之外了,奔溃!

    本文从最简单的生活实例讲起,详细介绍机器学习的脉络,可以让没有机器学习概念的朋友有一个清晰的认识,让刚入门的小伙伴知道自己所学习的算法都处于机器学习这片森林中的什么位置。本文大纲如下:
    一、生活故事帮助了解机器学习
    二、机器学习相关学科(相关概念理解)
    三、机器学习例子(房价预估)
    四、机器学习经典算法
    五、总结

  • 生活故事

    下面我想通过一个故事来讲解什么是机器学习。我相信大家都有跟别人相约等人的情况,如果你跟一个朋友约了某时在某个餐厅见面,在出门之前你会想:我现在出发合适么?他会跟往常一样迟到半个小时么?
    这时候你会根据与他以往的相约的经历,猜测一下他这次会不会迟到。比如以前跟他约过10次,他迟到了6次,不迟到比例40%,如果我心中能接受的阈值是70%,那么我认为他这次很可能会迟到,决定晚点过去。机器学习的思想跟这个故事根据历史数据预测未来的思想是一致的。实际情况可能根据以往经验总结了一下他迟到的因素,当聚会地点离他太远,他迟到概率更大,我可以建立一个模型。

    这样一个简单的机器学习模型称为决策模型。事实上可能会有更多的因素,比如下雨天他更容易迟到,一起出去喝酒娱乐他经常迟到,有正经事不大会迟到,这个时候我们就找到了三个因素(距离、天气、事情重要程度),称为自变量,他是否迟到这个结果称为因变量
    如果想更准确的预计他迟到多长时间,我们还要根据历史聚会中他迟到的时间(因变量用f表示)与聚会地址与他家具体距离(x表示)、雨量的大小(x表示)、聚会事情重要性(z表示)这三个自变量的关系建立模型,预测本次聚会他可能迟到的时间。这时候决策树就不好解决这个问题了,因为决策树只能预测离散值,这时候我们会想到用回归模型解决问题建立模型,f = a*x + b*y + c*z + d,通过求解参数a,b,c,d就可以预测朋友迟到时间,下文中会再对回归模型进行详细介绍。
    通过上面的分析,可以看出机器学习与人类思考的经验过程是类似的,不过它能考虑更多的情况,执行更加复杂的计算。事实上,机器学习的一个主要目的就是把人类思考归纳经验的过程转化为计算机通过对数据的处理计算得出模型的过程。经过计算机得出的模型能够以近似于人的方式解决很多灵活复杂的问题。

  • 机器学习相关学科

    如果你有朋友从事机器学习相关工作,你可能还听说过模式识别、统计学习、数据挖掘、计算机视觉、语音识别、自然语言处理...有时候我也会困惑到底有什么区别,想来想去好像所有的东西都差不多,下面谈谈我的理解,有想法可以交流,希望在找工作的时候能够对各个岗位做什么事情心里大致有个数。

    模式识别 = 机器学习
    前者概念起源于工业界,后者概念诞生于计算机科学,有本机器学习经典著作《Pattern Recognition And Machine Learning》,作者直接把模式识别和机器学习看成相同的领域两个方面的不同知识,在过去的10年间,它们都有了长足的发展
    统计学习 ≈ 机器学习 
    前者偏数学理论、后者偏实践,故机器学习注重效率和准确性研究。但两者高度重叠,机器学习大多方法源于统计学,现在有很多想做机器学习算法岗位都是从李航的《统计学习方法》开始。
    数据挖掘 = 机器学习 + 数据库 
    这几年数据挖掘火的不行,甚至很多数据挖掘概念几乎是炒作,被很多公司用来吹嘘自己技术的有多高端。数据挖掘能挖出来的不一定是金子,有可能是土呢。它是一种思考方式,不是有数据啥都能做,拥有数据思维才能指引业务改善。
    计算机视觉 = 图像处理 + 机器学习 
    图像处理技术用于将图像处理为适合进入机器学习模型中的输入
    语音识别 = 语音处理 + 机器学习 
    语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术
    自然语言处理 = 文本处理 + 机器学习
    自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。说来说去,这些领域学科的概念,都是统计学方法/机器学习方法 加上各个领域前期的处理技术而已。

  • 机器学习例子——预测房价

    现在假设你手里有一栋房子需要售卖,应该给它标上多大的价格?房子的面积是100平方米,价格是100万,200万,还是300万。很显然,你希望获得房价与面积的某种规律。于是你调查了周边一些类似房源,获得一组数据。这组数据中包含了大大小小房子的面积与价格,如果我能从这组数据中找出面积与价格的规律,那么我就可以得出房子的价格。

房价面积与价格拟合

    对规律的寻找很简单,拟合出一条直线,让它“穿过”所有的点,并且与各个点的距离尽可能的小。通过这条直线,可得到一个能够最佳反映房价与面积规律的规律。这条直线同时也是一个下式所表明的函数,房价 = 面积 * a + b,现在你可以预测出你的房子大概值多少钱了。这条直线是机器算出来的,跟人以史为鉴的思想非常相似,叫做机器学习。

机器学习与人类大脑学习对比图

  • 机器学习经典算法

    刚刚听说机器学习的时候,被各种算法给绕的糊里糊涂,又线性回归、拟合、梯度下降、牛顿法,什么机器学习算法、Sigmoid函数、SVM、聚类算法、协相关、核函数低维变高维、降维算法、推荐算法...感觉这片森林声不见底,也不清楚这些算法之间有什么关系,分别解决什么问题。下面将从机器学习发展过程遇到的问题,逐步讲解这些算法所处这片森林的位置,帮助初学者拜托对概念的误区。

    1. 回归算法
    回归算法分线性回归和逻辑回归,前者主要预测数字,后者用于离散分类
    线性回归:上面预测房价的例子就是利用线性回归来解决问题的。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。

    计算机科学何等牛逼,岂能被这个求极值这点小困难难倒,有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。严格意义上讲,大多数神经网络与推荐算法中都有线性回归因子,梯度下降法常用(简单有效)。
    逻辑回归:线性回归是解决连续的数字预测问题,比如预测房价是多少?而逻辑回归用于离散分类,比如判断一封邮件是否是垃圾邮件,看肿瘤是否是良性?我们可以将线性回归取值范围转换到0~1之间的概率,大于某个阈值分为一类,通常的做法是加上Sigmoid函数。Sigmoid函数直接从图上看不大直观,你只需要知道它可以成功的将无穷大的连续取值映射到0~1之间的概率。

区分良性还是恶性肿瘤

    逻辑回归算法划分出的分类线基本是线性的,也有非线性,有些复杂的非线性模型逻辑回归算法解决问题会遇到瓶颈,回归的模型不够准确,而神经网络可以解决这个问题。

    2. 神经网络算法 

        80年代人工神经网络(ANN)非常流行,后来又有BP神经网络加速训练数值算法,神经网络进入热潮,但是90年代中途没落,这两年随着“深度学习”卷土重来,也算是绝处逢生,可喜可贺。
        神经网络学习机理就是分解与整合。比方说一个正方形,可以拆解为四个折线,用四个神经元分别处理,一个折线拆成两条直线,最后拆解到一个一个点处理,最终又整合起来还原为正方形。每个神经元为一个处理单元,每个处理单元事实上就是一个逻辑回归。神经网络算法可以完成非常复杂的非线性分类。90年代瓶颈,主要原因是尽管有BP神经网络,训练过程仍然困难。于是90年代后期SVM取代了神经网络地位。

     3. 支持向量机(SVM)

     SVM诞生于统计学习界,同时在机器学习界大放光彩。从某种意义上来说SVM是逻辑回归算法的强化,解决分类问题:通过给予逻辑回归算法更严格的优化条件,可以获得更好的分类界线。如果没有某类函数技术(核函数),SVM顶多是一种更好的线性分类技术。因此提到SVM,一般都会涉及到核函数,核函数是将低维特征转换到高维空间,从而更方便得到分类超平面(对应二维的分类线)。昨天听同事给另一个同事科普什么是核函数,比喻恰到好处,这里也借来让大家体会一下。
     假设有一堆黄豆,怎么区分是好黄豆还是坏的黄豆?黄豆有体积、颜色等特征,但是这两个特征(2维)我们还是区分不出来。我们可能会想到加水,上浮的就是坏黄豆。没错这就是核函数的思想。由于水的加入,自然引入了密度这个特征,也就是从原来2维特征变成了3维特征,从而将好黄豆和坏黄豆区分开来。

挑出坏黄豆

    “核”事实就是一种特殊的函数,将低维空间映射到高维空间。通过SVM与高斯核函数结合,从而达成很好的分类效果。以上三类算法训练数据都有标签,训练模型可以预测标签。下面的学习算法中,训练数据不含标签。

    4. 聚类算法

    简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。又分为监督聚类和非监督聚类,监督聚类是事先知道类别数,常用的算法有K-Means算法。非监督聚类是事先不知道类别数量,直接根据距离聚成不同类别,常用的算法有Mean-Shift算法。

mean-shifit聚类算法示意图

    5. 降维算法(特征)
    通过降维算法我们就可以去除冗余信息,将数据从高维降低到低维,不仅利于表示,同时加速计算,常用的用的算法有PCA算法
    例如,房价包含房子的长、宽、面积与房间数量四个特征,可以看出,长与宽事实上与面积表示的信息重叠了,可从4维的数据压缩到2维。

PCA降维 (将XOY二维降维φ1一维) 

    6. 推荐算法
    推荐算法是目前电商界非常火的算法,如亚马逊,天猫,京东等得到了广泛的运用。推荐算法有两个主要的类别:一是基于商品内容推荐,二是基于用户相似度推荐。
   基于商品内容推荐:根据购买的内容近似的物品推荐给用户,每个物品贴上若干标签,优点是关联程度大,缺点是每个物品贴不同标签工作量大。
    基于用户相似度推荐:将A用户购买的商品推荐给与A用户特征相似的B用户,优点是灵活,缺点是关联程度不那么大,一般电商两者混合使用,推荐算法中最有名的是协同过滤。

    7. 其他算法
    除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。

  • 总结

    监督学习算法:线性回归,逻辑回归,神经网络,SVM
    无监督学习算法:聚类算法,降维算法
    特殊算法:推荐算法

    除了这些算法以外,有一些算法的名字在机器学习领域中也经常出现。但他们本身并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你可以理解他们为以上算法的子算法,用于大幅度提高训练过程。其中的代表有:梯度下降法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在线型回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。

    后记:说了半天,耽误的大家的时间,欢迎大家有想法提出来交流。

    

共有 人打赏支持
粉丝 0
博文 1
码字总数 4212
×
码农读书
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: