加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

掌握这十大机器学习方法,你就是圈子里最靓的崽

发布时间:2019-06-15 11:34:20 所属栏目:建站 来源:读芯术
导读:不论是在科研中还是在工业领域,机器学习都是个热门话题,新的机器学习方法也层出不穷。机器学习发展迅速又很复杂。对初学者而言,紧跟其发展无疑十分困难,即便是对专家们来说也非易事。 图片来自Unsplash网站,chuttersnap摄 为揭开机器学习的神秘面纱,

下图将K均值聚类法应用于建筑物的数据集。图中的每一列都表明了每栋建筑的效率。这四项测量的量涉及空调、插入式设备(微波炉,冰箱等)、家用燃气和可燃气体。选择K值为2进行聚类,这样就很容易地将其中一个聚类解释为高效建筑群,另一个则为低效建筑群。左图中可以看到建筑物的位置,右图可以看到两个输入值:插入式设备和可燃气体。

线性回归模型

将建筑聚类成高效建筑群(绿色)和低效建筑群(红色)

聚类方法中会涉及到一些非常有用的算法,比如具有噪声的基于密度的聚类方法(DBSCAN)、均值漂移聚类、聚合层次聚类、基于高斯混合模型的期望最大化聚类等。

4. 降维

顾名思义,降维可用来删除数据集中最不重要的数据。实践中常会遇到包含数百甚至数千列(也称为特征)的数据集,因此减少总量至关重要。例如,图像中数千个像素中并不是所有的都要分析;或是在制造过程中要测试微芯片时,如果对每个芯片都进行测试也许需要数千次测试,但其实其中很多芯片提供的信息是多余的。在这些情况下,就需要运用降维算法以便对数据集进行管理。

主成分分析(PCA)是最常用的降维方法,通过找出最大化数据线性变化的新向量来减小特征空间的维数。在数据的线性相关性很强时,主成分分析法可以显著减小数据的维度,且不会丢失太多信息。(其实,还可以衡量信息丢失的实际程度并进行相应调整。)

t-分布邻域嵌入(t-SNE)是另一种常用的方法,可用来减少非线性维数。t-分布邻域嵌入通常用于数据可视化,但也可以用于减少特征空间和聚类等机器学习任务。

下图显示了手写数字的MNIST数据库分析。MNIST包含数千个从0到9的数字图像,研究人员以此来测试聚类和分类算法。数据集的每一行是原始图像的矢量化版本(大小为28×28 = 784)和每个图像的标签(0,1,2,3,......,9)。注意,因此将维度从784(像素)减至2(可视化维度)。投影到二维使得能够对高维原始数据集进行可视化。

掌握这十大机器学习方法,你就是圈子里最靓的崽

手写数字MNIST数据库的t-分布邻域嵌入迭代

5. 集成方法

假设你对市面上的自行车都不满意,打算自己制作一辆,也许会从寻找各个最好的零件开始,然后最终会组装出一辆最好的自行车。

集成方法也是利用这一原理,将几个预测模型(监督式机器学习方法)组合起来从而得到比单个模型能提供的更高质量的预测结果。随机森林算法就是一种集合方法,结合了许多用不同数据集样本训练的决策树。因此,随机森林的预测质量会高于单个决策树的预测质量。

集成方法可理解为一种减小单个机器学习模型的方差和偏差的方法。任何给定的模型在某些条件下可能是准确的,但在其他条件下有可能不准确,因此这种方法十分重要。如果换用另一个模型,相对精度可能会更低。而组合这两个模型,就可以平衡预测的质量。

绝大多数Kaggle竞赛的获胜者都会使用集成方法。最为流行的集成算法有随机森林、XGBoost和LightGBM。

6. 神经网络与深度学习

与线性模型的线性回归和逻辑回归相比,神经网络的目标是通过向模型添加参数层来捕获数据中的非线性模式。下图中,简单神经网络有四个输入,一个带有五个参数的隐藏层和一个输出层。

掌握这十大机器学习方法,你就是圈子里最靓的崽

具有一个隐藏层的神经网络

其实,神经网络的结构十分灵活,可以构建出我们所熟知的的线性回归和逻辑回归。深度学习一词来自具有多个隐藏层的神经网络(见下图),是对各种体系结构的一个概括。

跟上深度学习发展的步伐尤为困难,部分原因在于研究和工业方面投入了大量精力来研究深度学习,使得不断有新方法涌现出来。

神经网络

深度学习:具有多个隐藏层的神经网络

为达到最佳效果,深度学习技术需要大量的数据,同时也需要强大的计算能力作为支撑,因为该方法是在大型体系架构中对许多参数进行自我调整。鉴于此,就不难理解为什么深度学习从业者要用配备强大图形处理单元(GPU)功能的计算机了。

深度学习技术在视觉(图像分类)、文本、音频和视频领域的应用最为成功。最常见的深度学习软件包有Tensorflow和PyTorch。

7. 迁移学习

假设你是个零售业的数据科学家,已经花了几个月的时间训练高质量模型,用来将图像分为衬衫、T恤和Polo衫这三类。新任务是建一个类似的模型,把服装图像分为牛仔裤、工装裤、休闲裤和正装裤这几类。那么能不能把第一个模型中已建立的知识转移到第二个模型中呢?当然可以,迁移学习可以做到。

迁移学习是指重复使用先前训练的神经网络的一部分,并使其适应类似的新任务。具体来说就是,使用先前任务中训练过的神经网络,可以传输一小部分训练过的图层,并将它们与用于新任务数据训练的几个图层组合在一起。通过添加图层,新的神经网络就能快速学习并适应新的任务。

迁移学习的主要优点是训练神经网络所需的数据较少,这点尤为重要,因为深度学习算法的训练既耗时,(计算资源上)花费又高。而且,通常也很难找到足够的标记数据来供培训使用。

还是回到上文的例子,假设衬衫模型中,你用了一个有20个隐藏层的神经网络,几次尝试后,发现可以迁移其中的18个衬衫模型层,并能把它们与用来训练裤子图像的某个新的参数层相结合。此时,裤子模型将有19个隐藏层。这两个任务的输入和输出不同,但一些概括与两者都有关的信息如布料、衣服上扣件和形状等方面的参数层可重复使用。

迁移学习正变得越来越流行,现在已经有很多固定的预训练的模型,可以用来完成一些常见的像图像和文本分类的深度学习任务。

8. 强化学习

试想,迷宫中有只老鼠,在试图寻找藏在某处的奶酪。老鼠进迷宫的次数越多,它就越有可能找到奶酪。一开始,老鼠可能会随机走动,但一段时间后,它就能意识到怎样走可以找到奶酪。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读