微信号:eetop-1

介绍:EETOP电子网(中国电子顶级开发网)是国内最顶级的电子行业工程师社区,涉及:嵌入式、智能硬件、半导体集成电路设计及制造等. 为您分享论坛精华内容、行业最新资讯、产品及技术 . 网址:www.eetop.cn bbs.eetop....

浅谈常见的机器学习算法

2017-10-13 12:31 EETOP

欢迎加入 EETOP GPU&FPGA深度学习群

欢迎行业内朋友加入,加群方法:长按二维码加群主好友,发送如下信息:加群+深度学习+所在公司(或院校)

长按二维码,加群主为好友,拉你入群

加群前请务必在朋友圈分享至少一篇EETOP的微信文章


来源 | 爱生活爱趣谈/头条号

找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。

纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公司里百度,阿里,腾讯,网易,搜狐,华为(华为的岗位基本都是随机分配,机器学习等岗位基本面向的是博士)等会有相关职位,另外一些国内的中小型企业和外企也会招一小部分。当然了,其中大部分还是百度北京要人最多,上百人。阿里的算法岗位很大一部分也是搞机器学习相关的。

毫无疑问,机器学习/人工智能的子领域在过去几年越来越受欢迎。目前大数据在科技行业已经炙手可热,而基于大量数据来进行预测或者得出建议的机器学习无疑是非常强大的。一些最常见的机器学习例子,比如Netflix的算法可以根据你以前看过的电影来进行电影推荐,而Amazon的算法则可以根据你以前买过的书来推荐书籍。

在这篇文章中,分享一些最常用的机器学习算法。

机器学习算法可以分为三大类:监督学习、无监督学习和强化学习

监督学习可用于一个特定的数据集(训练集)具有某一属性(标签),但是其他数据没有标签或者需要预测标签的情况。无监督学习可用于给定的没有标签的数据集(数据不是预分配好的),目的就是要找出数据间的潜在关系。强化学习位于这两者之间,每次预测都有一定形式的反馈,但是没有精确的标签或者错误信息。因为这是一个介绍课程,我没有学习过强化学习的相关内容,但是我希望以下10个关于监督学习和无监督学习的算法足以让你感兴趣

监督学习

1.决策树(Decision Trees)

决策树是一个决策支持工具,它使用树形图或者决策模型以及可能性序列,包括偶然事件的结果、资源成本和效用。

根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

决策树

决策树的优点:

计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;

 缺点:

容易过拟合(后续出现了随机森林,减小了过拟合现象);

2.朴素贝叶斯分类(Naive Bayesian classification)

朴素贝叶斯分类器是一类简单的概率分类器,它基于贝叶斯定理和特征间的强大的(朴素的)独立假设。图中是贝叶斯公式,其中P(A|B)是后验概率,P(B|A)是似然,P(A)是类先验概率,P(B)是预测先验概率。

朴素贝叶斯

一些应用例子:

  • 判断垃圾邮件

  • 对新闻的类别进行分类,比如科技、政治、运动

  • 判断文本表达的感情是积极的还是消极的

  • 人脸识别

  • 朴素贝叶斯的优点:

  • 对小规模的数据表现很好,适合多分类任务,适合增量式训练。

  • 缺点:

  • 对输入数据的表达形式很敏感。

3.逻辑回归(Logistic Regression)

逻辑回归是一个强大的统计学方法,它可以用一个或多个解释变量来表示一个二项式结果。它通过使用逻辑函数来估计概率,从而衡量类别依赖变量和一个或多个独立变量之间的关系,后者服从累计逻辑分布。

总的来说,逻辑回归可以用于以下几个真实应用场景:

  • 信用评分

  • 计算营销活动的成功率

  • 预测某个产品的收入

  • 特定的某一天是否会发生地震

Logistic回归优点:

1、实现简单;

2、分类时计算量非常小,速度很快,存储资源低;

缺点:

1、容易欠拟合,一般准确度不太高

2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

4.线性回归:

线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化.最小二乘法是一种计算线性回归的方法。你可以将线性回归看做通过一组点来拟合一条直线。实现这个有很多种方法,“最小二乘法”就像这样:你可以画一条直线,然后对于每一个数据点,计算每个点到直线的垂直距离,然后把它们加起来,那么最后得到的拟合直线就是距离和尽可能小的直线。

线性回归优点:

实现简单,计算简单;

缺点:

不能拟合非线性数据;

5.支持向量机(Support Vector Machine,SVM)

SVM是二进制分类算法。给定N维坐标下两种类型的点,SVM生成(N-1)维的超平面来将这些点分成两组。假设你在平面上有两种类型的可以线性分离的点,SVM将找到一条直线,将这些点分成两种类型,并且这条直线尽可能远离所有这些点。

从规模上看,使用SVM(经过适当的修改)解决的一些最大的问题包括显示广告、人类剪切位点识别(human splice site recognition)、基于图像的性别检测,大规模图像分类……

SVM算法优点:

可用于线性/非线性分类,也可以用于回归;

低泛化误差;

容易解释;

计算复杂度较低;

缺点:

对参数和核函数的选择比较敏感;

原始的SVM只比较擅长处理二分类问题;

6.集成方法(Ensemble methods)

集成方法是学习算法,它通过构建一组分类器,然后通过它们的预测结果进行加权投票来对新的数据点进行分类。原始的集成方法是贝叶斯平均,但是最近的算法包括纠错输出编码、Bagging和Boosting。

那么集成方法如何工作?并且为什么它们要优于单个模型?

  • 它们平均了单个模型的偏差:如果你将民主党的民意调查和共和党的民意调查在一起平均化,那么你将得到一个均衡的结果,不偏向任何一方。

  • 它们减少了方差:一组模型的总体意见比其中任何一个模型的单一意见更加统一。在金融领域,这就是所谓的多元化,有许多股票的组合比一个单独的股票的不确定性更少,这也为什么你的模型在数据多的情况下会更好的原因。

  • 它们不太可能过拟合:如果你有单个的模型没有过拟合,那么把这些模型的预测简单结合起来(平均、加权平均、逻辑回归),那么最后得到的模型也不会过拟合。

无监督学习

7.聚类算法(Clustering Algorithms)

聚类是将一系列对象分组的任务,目标是使相同组(集群)中的对象之间比其他组的对象更相似。

根据聚类思想划分:

1. 基于划分的聚类:

K-means, k-medoids(每一个类别中找一个样本点来代表),CLARANS.

k-means是使下面的表达式值最小:

k-means算法的优点:

(1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。

(2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法通常局部收敛。

(3)算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,且簇与簇之间区别明显时,聚类效果较好。

缺点:

(1)k-平均方法只有在簇的平均值被定义的情况下才能使用,且对有些分类属性的数据不适合。

(2)要求用户必须事先给出要生成的簇的数目k。

(3)对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。

(4)不适合于发现非凸面形状的簇,或者大小差别很大的簇。

(5)对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。

2. 基于层次的聚类:

自底向上的凝聚方法,比如AGNES。

自上向下的分裂方法,比如DIANA。

3. 基于密度的聚类:

DBSACN,OPTICS,BIRCH(CF-Tree),CURE.

4. 基于网格的方法:

STING, WaveCluster.

5. 基于模型的聚类:

EM,SOM,COBWEB.

每一种聚类算法都不相同,下面是一些例子:

  • 基于质心的算法

  • 基于连接的算法

  • 基于密度的算法

  • 概率

  • 降维

  • 神经网络/深度学习

8.主成分分析(Principal Component Analysis,PCA)

PCA是一个统计学过程,它通过使用正交变换将一组可能存在相关性的变量的观测值转换为一组线性不相关的变量的值,转换后的变量就是所谓的主分量。

PCA的一些应用包括压缩、简化数据便于学习、可视化等。请注意,领域知识在选择是否继续使用PCA时非常重要。 数据嘈杂的情况(PCA的所有成分具有很高的方差)并不适用。

9.奇异值分解(Singular Value Decomposition,SVD)

在线性代数中,SVD是复杂矩阵的因式分解。对于给定的m * n矩阵M,存在分解使得M=UΣV,其中U和V是酉矩阵,Σ是对角矩阵。

实际上,PCA是SVD的一个简单应用。在计算机视觉中,第一个人脸识别算法使用PCA和SVD来将面部表示为“特征面”的线性组合,进行降维,然后通过简单的方法将面部匹配到身份,虽然现代方法更复杂,但很多方面仍然依赖于类似的技术。

10.独立成分分析(Independent Component Analysis,ICA)

ICA是一种统计技术,主要用于揭示随机变量、测量值或信号集中的隐藏因素。ICA对观测到的多变量数据定义了一个生成模型,这通常是作为样本的一个大的数据库。在模型中,假设数据变量由一些未知的潜在变量线性混合,混合方式也是未知的。潜在变量被假定为非高斯分布并且相互独立,它们被称为观测数据的独立分量。

ICA与PCA有关,但是当这些经典方法完全失效时,它是一种更强大的技术,能够找出源的潜在因素。 其应用包括数字图像、文档数据库、经济指标和心理测量。

11.神经网络(Neural Networks)

Neural Networks 适合一个input可能落入至少两个类别里

NN 由若干层神经元,和它们之间的联系组成

第一层是 input 层,最后一层是 output 层

在 hidden 层 和 output 层都有自己的 classifier

input 输入到网络中,被激活,计算的分数被传递到下一层,激活后面的神经层,最后output 层的节点上的分数代表属于各类的分数,下图例子得到分类结果为 class 1

同样的 input 被传输到不同的节点上,之所以会得到不同的结果是因为各自节点有不同的weights 和 bias

这也就是 forward propagation

12.马尔科夫(Markov Chains)

Markov Chains 由 state 和 transitions 组成

栗子,根据这一句话 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain

步骤,先给每一个单词设定成一个状态,然后计算状态间转换的概率

这是一句话计算出来的概率,当你用大量文本去做统计的时候,会得到更大的状态转移矩阵,例如 the 后面可以连接的单词,及相应的概率

生活中,键盘输入法的备选结果也是一样的原理,模型会更高级



关注EETOP公众号,后台输入 百宝箱 查看更多人工智能|机器学习|深度学习精品文章

  1. 10分钟!用初中数学知识看懂深度学习!

  2. AI芯片|浅析Yann LeCun提到的两款Dataflow Chip

  3. 走进深度学习,你需要先了解这25个概念和术语...

  4. AI芯片踏入红海

  5. 解读AI:快速获取样本将成重点研究方向

  6. 机器学习和深度学习的最佳框架大比拼

  7. 深入浅出机器学习

  8. 机器学习和深度学习的最佳框架大比拼

  9. 哪些国家和大学人工智能研究领先?中国第一?

  10. 人工智能的“脑洞”有多大?院士:目前太依赖计算

  11. 浅说深度学习:核心概念

  12. 深度学习简易入门

  13. 几张图读懂机器学习:基本概念、五大流派与九种常见算法

  14. 通过生活案例读懂机器学习五大算法思维

  15. 腾讯云FPGA的深度学习算法

  16. 如何在单块GPU上训练超大型深度学习模型

  17. AI芯片怎么降功耗?从ISSCC2017说起

  18. AI驾临人间 四大芯片流派华山论剑

  19. 机器学习追根溯源:和计算机技术一样久远

  20. [透析] 卷积神经网络CNN究竟是怎样一步一步工作的?

  21. 中国正在引领人工智能?纽约时报说:“是的!”

  22. Nvidia是如何成为AI圈的弄潮儿

  23. 人工智能芯片: AI巨轮的引擎

  24. 李开复|如何给非专业人士讲解什么是深度学习

  25. 神经网络入门

  26. 从人工智能能机器学习到深度学习,不容错过的人工智能简史

  27. 浅析:人工智能的前沿—机器视觉的种类

  28. 浅析深度学习

  29. 在机器学习中机器是怎么从资料中「学」到东西的?

  30. 12张图生动地告诉你,深度学习中的卷积网络是怎么一回事?

  31. 从人工智能机器学习到深度学习,不容错过的人工智能简史

  32. 【高盛AI研究报告】人工智能是时代的拐点

  33. 一文带你理解深度学习的局限性

  34. 无解的神经网络内在逻辑

  35. FPGA是如何实现30倍速度的云加速的?都加速了哪些东西

  36. 深度学习 语音识别 FPGA 实现

  37. 2017年人工智能行业分析:芯片企业最少,计算机视觉与图像企业数量最多

  38. 关于人工智能的七大常见误解与七个真相!

  39. 一个故意不通过图灵测试的人工智能-Part 1

  40. 最适合人工智能开发的5种编程语言

  41. 一文说清楚机器学习、深度学习、人工智能的区别与联系

  42. 机器学习与人工智能究竟有何区别?

  43. 机器学习算法比较

  44. 云中的机器学习:FPGA 上的深度神经网络

  45. 什么是机器学习?

  46. 机器学习导入芯片设计领域

  47. AI技术大爆发背景下,开源深度学习框架的发展趋势如何?

  48. 中国初创公司在AI芯片(IP)领域的机会

  49. 深度学习简易入门

  50. 浅谈Alpha Go所涉及的深度学习技术

  51. 深度学习 语音识别 FPGA 实现

点击阅读原文查看更多

 
EETOP 更多文章 《财富》发布2017年最受赞赏的中国公司,选一下你自己的排名 高通在台湾地区被重罚234亿新台币!被判不公平竞争! 英特尔推出17个量子位测试芯片,一步可运行2的17次方!未来可碾压现有任何超算! 张忠谋:中国半导体产业还需要时间,真正的技术不见得是大量投资就可以获得 干货!NB-IoT芯片RF_Analog前端架构与电路设计要点
猜您喜欢 【译文】为什么说一个EC2实例并不是一台服务器 Twitter发布更快的大数据实时分析系统Heron 你为了 MacBook Pro 等了多少个发布会? 几种经典的网络服务器架构模型的分析与比较 我们希望用这8个公众号,照亮你的程序人生!