可扩展机器学习——概述

注:这是一份学习笔记,记录的是参考文献中的可扩展机器学习的一些内容,英文的PPT可见参考文献的链接。这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。

可扩展机器学习系列主要包括以下几个部分:

  • 概述
  • Spark分布式处理
  • 线性回归(linear Regression)
  • 梯度下降(Gradient Descent)
  • 分类——点击率预测(Click-through Rate Prediction)
  • 神经科学

一、Overview

1、处理大规模数据集

对于不断扩大的数据规模主要有两种不同的处理方法:

  • 向上扩展(Scale-up):采用更大规模的机器,如下图所示

优点:对于中等规模的问题速度会很快

缺点:1、特定硬件的价格会比较贵;2、通过升级硬件的方法会达到一个上限。

  • 向外扩展(Scale-out):采用分布式的计算方法,如下图所示

优点:仅利用一些常用的硬件便能解决大规模问题

缺点:1、需要处理网络通信的问题;2、增加了一些软件的复杂度。

2、机器学习

2.1、机器学习的定义

机器学习是一种构建和学习的方法,从数据中学习并通过数据进行预测。

Constructing and studying methods that learn from and make predictions on data.

2.2、机器学习的应用

  • 人脸识别(Face Recognition)
  • 链路预测(Link Prediction)
  • 文本分类(Text Classification)
  • 蛋白质结构预测(Protein Structure Prediction)
  • ……

2.3、机器学习中的术语

在机器学习中有一些专业的术语,常见的如下:

  • 观测数据:主要是用于训练和测试机器学习算法的样本
  • 特征:用于表征观测数据的一些属性
  • 标签:给观测样本标记的数值或者类别
  • 训练和测试数据:用于训练和评估算法的观测样本

2.4、机器学习算法的分类

在各种机器学习算法中,主要可以分为监督学习(Supervised Learning)和非监督学习(Unsupervised Learning)。

  • 监督学习:从带有标签的观测样本学习。监督学习算法通过观测样本学习到从样本到标签之间的映射。根据label是离散的还是连续的,监督学习又可以分为:分类(Classification)和回归(Regression)。
  • 非监督学习:从不带标签的观测样本学习。非监督学习主要是学习数据中隐藏的结构以及隐藏的模式。非监督学习又可以分为:聚类(Clustering)和降维(Dimensionality Reduction)。

2.5、典型的机器学习流程

2.5.1、监督学习的过程

在监督学习中,主要包括获取数据、特征提取、监督学习、评价和预测。过程可见下图:

学习的目的是为了学习到模型用于预测,而评价的目的是为了学习到较好的模型。对于一个具体的分类问题,如垃圾邮件的分类,欺诈检测,人脸识别,链路预测,点击率预估等等。

2.5.2、无监督学习的过程

对于无监督学习,无需通过样本标签训练模型,主要包括获取数据、特征提取和无监督学习过程,具体无监督学习过程如下所示:

2.5.3、垃圾邮件的分类问题

下面是垃圾邮件的分类问题。

  • Obtain Raw Data:获取包括一组带标签的观测样本

  • Feature Extraction:特征提取是指利用一组向量,向量是由实数组成,通常称为属性,去表示观测样本。

对于机器学习算法来说,成功与否通常取决于对观测样本的表示,即如何选择较好的特征表示。

如在垃圾邮件的分类任务中(文本分类),可以使用Bag of Words。简单来讲,Bag of Words是将文本使用一串向量表示,每一个位置上表示的是字典(Vocabulary)中的每个词,若该词在文本中出现,则在该位置上标记为 1 ,否则标记为0

词袋模型中的向量长度取决于字典的大小。

具体的过程可由下图表示:

  • Supervised Learning:在监督学习阶段是通过训练数据训练一个模型,主要的监督学习算法包括:Logistic回归(Logistic Regression, LR),支持向量机(Support Vector Machine, SVM),决策树(Decision Tree, DT),随机森林(Random Forest, RF)等等。对于大规模的数据集,学习的过程通常需要迭代计算。
  • Evaluation:评价一个分类器是否是一个好的分类器是指该分类器是否能够在未知的数据集上表现得较好,这便称为泛化能力(Generalization ability)。通常,我们将样本分为训练数据集(Training Data Set)和测试数据集(Testing Data Set),训练数据集主要用于训练模型,测试数据集主要用于评价模型的好坏。

在这个过程中,要避免模型的过拟合(overfitting),过拟合是指训练出来的模型较为复杂,能够在训练数据集上表现的很好,这种情况下极容易发生过拟合的情况,一般,我们希望模型要尽可能的简单,这样能够具有更好的泛化能力,复杂的模型与简单的模型如下图所示:

  • Prediction:将训练好的模型应用于新的数据。
2.5.4、分类算法的流程

对于一个具体的分类问题,为了构建一个分类学习算法,首先需要对数据集进行分类,分为训练集合测试集,训练集用于训练分类算法模型,测试集用于测试训练好的分类学习算法的性能,对于训练好的分类算法,我们的最终目的是将该算法应用在具体的任务中,因此对于新的数据集的预测是构建分类算法的根本目的,对于分类算法的具体的流程可由下图表示:

3、度量时间和空间复杂度的大 O 标记

3.1、大O标记的概念

O 标记表示的是算法对问题规模的响应,主要包括两个方面,即处理时间个空间需求,通常与复杂度是一个概念。

对于一个问题,假设有下式成立:

|f(x)|C|g(x)|

上式表示的意思是 f 增长的速度没有g快,利用大 O 记法,可以表示为:

f(x)=O(g(x))

3.2、集中常见的复杂度形式

3.2.1、 O(1) 复杂度

O(1) 复杂度是指的是常数复杂度,对于时间,则为每次执行时,算法都执行了相同的数量的操作;对于空间,则为在每次执行的过程中,需要固定大小的存储空间。

3.2.2、 O(n) 复杂度

O(n) 复杂度是指的是线性复杂度

3.2.3、 O(n2) 复杂度

O(n2) 复杂度指的是平方复杂度

3.2.4、矩阵的计算时间和空间复杂度

对于 n 维向量的内积,需要O(n)的时间复杂度去计算 n 对元素的相乘,需要O(1)的空间复杂度存储最终的结果。

对于 n×n 矩阵的求逆,需要 O(n3) 的时间复杂度,需要 O(n2) 的空间复杂度存储最终的结果。

对于 n×m 矩阵和 m×1 维向量的乘积问题,需要 O(nm) 的时间复杂度和 O(n) 的空间复杂度。

对于 n×m 矩阵和 m×p 矩阵的乘积问题,需要 O(npm) 的时间复杂度和 O(np) 的空间复杂度。

若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。

参考文献

scalable-machine-learning

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼈⼯智能与深度学习概述 ⽬录 ⼀、 什么是⼈⼯智能? ⼈⼯智能(Artificial Intelligence),英⽂缩写为AI。它是研究、开发⽤于模拟、延伸和扩展⼈的智能的理论、⽅法、技术及应⽤系统的⼀ 门新技术科学。 企图了解智能的实质,并⽣产出⼀种新的能以⼈类智能相似的⽅式做出反应的智能机器,相关研究包括机器⼈、语⾔识别、图像识别、⾃ 然语⾔处理和专家系统等。 ⼈⼯智能是对⼈的意识、思维的信息过程的模拟。⼈⼯智能不是⼈的智能,但能像⼈那样思考、也可能超过⼈的智能。 ⼈⼯智能通俗⽽⾔就是使⼀部机器的反应⽅式像⼈⼀样进⾏感知、认知、决策、执⾏的⼈⼯程序或系统。 ⼆、 ⼈⼯智能、机器学习、深度学习的关系 机器学习:⼀种实现⼈⼯智能的⽅法。 深度学习(DL):⼀种实现机器学习的技术,⼈⼯神经⽹络是机器学习中的⼀个重要的算法,"深度"就是说神经⽹络中众多的层。 也就是说三者之间是包含与被包含的关系: ⼀些熟知的深度学习领域的前驱公司如下图: 三、深度学习⼊门基础 、 深度学习优势 1.以图像识别为例,我们对于深度学习的理想⽬标是能够让计算机向⼈⼀样理解图像,⽽实际⽬标却是让计算机将语义概念相似的图像划分 为同⼀类别。 2.图像识别⾯临的挑战: 语义鸿沟(Semantic Gap)现象:the gap between low-level visual features and high-level concepts (图像的底层视觉特性和⾼层语义概念之间的鸿沟) 例如:相似的视觉特性(color, texture, shape,…) ,不同的语义概念 ⼜例如:不相似的视觉特性,相同的语义概念 3.传统⽅法是⽤全局的视觉底层特性统计量表⽰图像,但这样会导致全局特征丢掉了图像细节,导致错误匹配。⽽且传统⽅法需要⼈⼯提取 图像特征,⾮常费时费⼒。很⼤程度上靠经验和运⽓,⽽深度学习则解决了这⼀个问题,深度学习是学习特征。 、 深度学习的⼀般过程: 、深度学习的数学基础 数据表⽰——标量、向量、矩阵和张量 (1)向量的范数、常见的向量 (2)常见的矩阵、矩阵的操作 优化的基础——导数及其应⽤ (1)导数、泰勒公式 (2)拉格朗⽇乘数法 概率模型的基础——概率论 (1)概率分布、边缘概率、条件概率 (2)期望、⽅差和协⽅差 、深度学习框架 深度学习框架的优势: 易⽤性:屏蔽底层,⽤户只需关注模型结构。同时,深度学习⼯具简化了计算,降低了深度学习⼊门门槛。 ⾼效性:灵活的移植性,可将代码部署到CPU/GPU/移动端上。选择具有分布式性能的深度学习⼯具会使模型训练更⾼效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值