机器学习基础学习笔记(一)

声明:笔记均来源于邱锡鹏xpqiu@fudan.edu.cn的《神经网络与深度学习》一书,开源资源见:https//nndl.github.io/nndl-book.pdf
一.绪论
基本的深度学习相当于函数逼近问题,即函数或曲面的拟合,所不同的是,这里用作基函数的是非线性的神经网络函数,而原来数学中用的则是多项式、三角多项式、B-spline、一般spline以及小波函数等的线性组合。
由于神经网络的非线性和复杂性(要用许多结构参数和连接权值来描述),它有更强的表达能力,即从给定的神经网络函数族中可能找到对特定数据集拟合得更好的神经网络。
贡献度分配问题(CreditAssignment Problem,CAP):样本的原始输入到输出目标之间的数据流经过多个线性或非线性的组件(component),因为每个组件都会对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时, 我们并不清楚其中每个组件的贡献是多少。
人工神经网络(Artificial Neural Network,ANN):一种可以比较好解决贡献度分配问题的模型是人工神经网络(Artificial Neural Network,ANN)。人工神经网络,也简称神经网络,是由人工神经元以及神经元之间的连接构成,神经网
络的参数可以通过机器学习的方式来从数据中学习。
二.人工智能
目前,人工智能的主要领域大体上可以分为以下几个方面:
(1) 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工.主要研究领域包括语音信息处理和计算机视觉等。
(2) 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中进行学习。主要研究领域包括监督学习、无监督学习和强化学习等。
(3) 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理解、推理、规划、决策等。
1.人工智能的发展历史
1)推理期
2)知识期:Expert system
3) 学习期:机器学习的主要目的是设计和分析一些学习算法,让计算机可以从数据(经验)中自动分析并获得规律,之后利用学习到的规律对未知数据进行预测,从而帮助人们完成一些特定任务,提高开发效率。
1-1
2.人工智能的流派
1)符号主义(Symbolism):两个基本假设:a)信息可以用符号来表示;b)符号可以通过显式的规则(比如逻辑运算)来操作。优点是具有可解释性。
2)连接主义(Connectionism):连接主义模型的主要结构是由大量简单的信息处理单元组成的互联网络,具有非线性、分布式、并行化、局部性计算以及自适应性等特性。高效但缺乏可解释性。

三.机器学习
1.机器学习概念:指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法。
2.传统机器学习关注重点:如何学习一个预测模型
这类机器学习可以看作浅层学习(Shallow Learning).浅层学习的一个重要特点是不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取。
在实际任务中使用机器学习模型一般会包含以下几个步骤:
(1) 数据预处理:经过数据的预处理,如去除噪声等。比如在文本分类中,去除停用词等。
(2) 特征提取:从原始数据中提取一些有效的特征。比如在图像分类中,提取边缘、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)特征等。
(3) 特征转换:对特征进行一定的加工,比如降维和升维。 很多特征转换方法也都是机器学习方法,降维包括特征提取(Feature Extraction)和特征选择(Feature Selection)两种途径.常用的特征转换方法有主成分分析(Principal Components Analysis,PCA)、线性判别分析(Linear Discriminant Analysis,LDA)等。
(4) 预测:机器学习的核心部分,学习一个函数并进行预测。
1-2
特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征,即人工设计的特征,并最终提高机器学习系统的性能。
四.表示学习
为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性地称为表示(Representation)
表示学习(Representation Learning):可以自动地学习出有效的特征,并提高最终机器学习模型的性能的学习方式。
语义鸿沟(Semantic Gap): 表示学习的关键是解决语义鸿沟问题.语义鸿沟问题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性。比如对于人脸识别中的输入数据,图片中人脸的形态、肤色等不尽相同,对应的在像素级别上的底层特征差距较大,但是对于识别理解中用到的是抽象的高层次语义概念。
综上:找到在某种程度上能够反映出原数据的高层语义特征,有利于后续预测模型的构建。
表示学习的核心问题:1)一是“什么是一个好的表示”;2)“如何学习到好的表示”。
1.局部表示和分布式表示
1)好的表示的优点
(1) 一个好的表示应该具有很强的表示能力,即同样大小的向量可以表示更多信息.
(2) 一个好的表示应该使后续的学习任务变得简单,即需要包含更高层的语义信息.
(3) 一个好的表示应该具有一般性,是任务或领域独立的。
在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation).
2)局部表示(Local Representation)/离散表示/符号表示
局部表示通常可以表示为one-hot 向量的形式。
局部表示有两个优点:
(1)离散的表示方式具有很好的解释性,有利于人工归纳和总结特征,并通过特征组合进行高效的特征工程;
(2)通过多种特征组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常高。、
缺点:
(1)one-hot向量的维数很高,且不能扩展。出现新性状,就需要增加一维。
(2)不同性状之间的相似度都为0.
3)分布式表示(Distributed Representation)
分布式表示通常可以表示为低维的稠密向量
优点:(1)表示能力要强很多;(2)分布式表示的向量维度一般都比较低;(3)性状之间的相似度容易计算。
4)举例:
1-3
5)嵌入
嵌入:通常指将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能保持不同对象之间的拓扑关系。
我们可以使用神经网络来将高维的局部表示空间ℝ|𝒱| 映射到一个非常低维的分布式表示空间 ℝ𝐷, 𝐷 ≪ |𝒱|.在这个低维空间中,每个特征不再是坐标轴上的点,而是分散在整个低维空间中。如下图所示:
1-3
图中有三个样本 𝑤1,𝑤2 和 𝑤3.在 one-hot 向量空间中,每个样本都位于坐标轴上,每个坐标轴上一个样本.而在低维的嵌入空间中,每个样本都不在坐标轴上,样本之间可以计算相似度。好的高层语义表示一般为分布式表示。
2.表示学习
要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特征开始,经过多步非线性转换才能得到.
连续多次的线性转换等价于一次线性转换.
**** 深层结构的优点是可以增加特征的重用性,从而指数级地增加表示能力.因此,表示学习的关键是构建具有一定深度的多层次特征表示。
五.深度学习
“ 深度”是指原始数据进行非线性特征转换的次数。(非线性转换将原始特征转换为高层次、抽象特征
深度学习是机器学习的一个子问题,其主要目的是从数据中自动学习到有效的特征表示。数据处理流程如下:
1-4
深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,可以替代人工设计特征。
深度学习需要解决的关键问题是
贡献度分配问题**(Credit Assignment Problem,CAP),即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响.,每个内部组件并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性.
目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题.只要是超过一层的神经网络都会存在贡献度分配问题,因此可以将超过一层的神经网络都看作深度学习模型.随着深度学习的快速发展,模型深度也从早期的5 ∼ 10层增加到目前的数百层.随着模型深度的不断增加,其特征表示的能力也越来越强,从而使后续的预测更加容易.
1.端到端的学习
1)子模块多阶段训练存在问题:
(1)每一个模块都需要单独优化,并且其优化目标和任务总体目标并不能保证一致;
(2)错误传播,即前一步的错误会对后续的模型造成很大的影响.
2)端到端的学习
是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标。
中间过程不需要人为干预,训练数据为“输入-输出”对的形式,中间无需提供额外信息。也是解决贡献度分配问题。
六.神经网络
1.人脑神经网络
一个神经元可被视为一种只有两种状态的细胞:兴奋和抑制.神经元的状态取决于从其他的神经细胞收到的输入信号量,以及突触的强度(抑制或加强).当信号量总和超过了某个阈值时,细胞体就会兴奋,产生电脉冲.电脉冲沿着轴突并通过突触传递到其他神经元。
2.人工神经网络
人工神经元网络是由大量神经元通过极其丰富和完善的连接而构成的自适应非线性动态系统。
人工神经网络可以被用到于深度学习中的原因?
其可以用作一个通用的函数逼近器(一个两层的神经网络可以逼近任意的函数),因此我们可以将人工神经网络看作一个可学习的函数,并将其应用到机器学习。
理论上,只要有足够的训练数据和神经元数量,人工神经网络就可以学到很多复杂的函数。我们可以把一个人工神经网络塑造复杂函数的能力称为网络容量(Network Capacity),这与可以被储存在网络中的信息的复杂度以及数量相关.
3.神经网络的发展历史
五阶段:1)模型提出
2)冰河期
3) 反向传播算法的兴起:
梯度消失问题(Vanishing Gradient Problem)阻碍神经网络的进一步发展,特别是循环神经网络.为了解决这个问题,[Schmidhuber, 1992]采用两步来训练一个多层的循环神经网络:(1)通过无监督学习的方式来逐层训练每一层循环神经网络,即预测下一个输入;(2)通过反向传播算法进行精调.
4)流行度降低
5)深度学习的崛起
[Hinton et al., 2006] 通过逐层预训练来学习一个深度信念网络, 并将其权重作为一个多层前馈神经网络的初始化权重,再用反向传播算法进行精调.这种**“预训练 + 精调”**的方式可以有效地解决深度神经网络难以训练的问题。
计算能力:GPU+大规模并行计算 海量数据规模是深度学习崛起的重要原因。
七.知识体系
1-6

八.常用的深度学习框架
支持自动梯度计算,无缝CPU和GPU切换功能。比较有代表性的框架包括:Theano、Caffe、TensorFlow、Pytorch、飞桨(PaddlePaddle)、Chainer和MXNet等.
(1) Theano2:由蒙特利尔大学的 Python 工具包, 用来高效地定义、优化和计算张量数据的数学表达式.Theano 可以透明地使用 GPU 和高效的符号微分Theano 项目目前已停止维护.
(2) Caffe3:由加州大学伯克利分校开发的针对卷积神经网络的计算框架,主要用于计算机视觉.Caffe 用 C++ 和 Python 实现,但可以通过配置文件来实现所要的网络结构,不需要编码.
(3) TensorFlow1:由 Google 公司开发的深度学习框架,可以在任意具备CPU或者GPU的设备上运行.TensorFlow的计算过程使用数据流图来表示.TensorFlow 的名字来源于其计算过程中的操作对象为多维数组,即张量(Tensor),TensorFlow 1.0版本采用静态计算图,2.0 版本之后也支持动态计算图。
(4) PyTorch2:由 Facebook、NVIDIA、Twitter 等公司开发维护的深度学习框架,其前身为 Lua 语言的 Torch3.PyTorch 也是基于动态计算图的框架,在需要动态改变神经网络结构的任务中有着明显的优势。
(5) 飞桨(PaddlePaddle)4:百度开发的一个高效和可扩展的深度学习框架,同时支持动态图和静态图.飞桨提供强大的深度学习并行技术,可以同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训练,支持千亿规模参数和数百个节点的高效并行训练.
(6) Chainer5:一个最早采用动态计算图的深度学习框架,其核心开发团队为来自日本的一家机器学习创业公司 Preferred Networks.和 Tensorflow、Theano、Caffe 等框架使用的静态计算图相比,动态计算图可以在运行时动态地构建计算图,因此非常适合进行一些复杂的决策或推理任务.
(7) MXNet6:由亚马逊、华盛顿大学和卡内基·梅隆大学等开发维护的深度学习框架.MXNet支持混合使用符号和命令式编程来最大化效率和生产率,并可以有效地扩展到多个GPU和多台机器.
在这些基础框架之上,还有一些建立在这些框架之上的高度模块化的神经网络库,使得构建一个神经网络模型就像搭积木一样容易.其中比较有名的模块化神经网络框架有:1)基于 TensorFlow 和Theano 的 Keras 2)基于 Theano
的Lasagne8;3)面向图结构数据的DGL9 .
九.学习资料
1.深度学习会议
(1) 国际表示学习会议(International Conference on Learning Representations,ICLR):主要聚焦于深度学习.
(2) 神经信息处理系统年会(Annual Conference on Neural Information Processing Systems,NeurIPS):交叉学科会议,但偏重于机器学习.主要包括神经信息处理、统计方法、学习理论以及应用等.
(3) 国际机器学习会议(International Conference on Machine Learning,ICML):机器学习顶级会议,深度学习作为近年来的热点,也占据了 ICML的很大比例.
(4) 国际人工智能联合会议(International Joint Conference on Artificial Intelligence,IJCAI):人工智能领域最顶尖的综合性会议.历史悠久,从1969年开始举办.
(5) 美国人工智能协会年会(AAAI Conference on Artificial Intelligence,AAAI):人工智能领域的顶级会议,每年二月份左右召开,地点一般在北美.
2.专业学术会议
CV:计算机视觉与模式识别大会(IEEE Conference on Computer Visionand Pattern Recognition,CVPR)和国际计算机视觉会 议(International Comference on Computer Vision,ICCV).
NLP:有计算语言学年会(Annual Meeting of the Association for Computational Linguistics,ACL)和自然语言处理实证方法大会(Conference on Empirical Methods in Natural Language Processing,EMNLP)等.

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值