当前位置:   article > 正文

《神经网络与深度学习》nndl读书笔记_《神经网络与深度学习》——学习笔记

《神经网络与深度学习》——学习笔记

在这里插入图片描述

本书的知识体系

在这里插入图片描述

深度学习与神经网络概要

从根源上讲,深度学习机器学习的一个分支,是指一类问题以及解决这类问题的方法。

深度学习采用的模型一般比较复杂,指样本的原始输入到输出目标之间的数据流经过多个线性或非线性的组件.因为每个组件都会对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时,我们并不清楚其中每个组件的贡献是多少.这个问题叫作贡献度分配问题
在深度学习中,贡献度分配问题是一个很关键的问题,这关系到如何学习每个组件中的参数。

目前,一种可以比较好解决贡献度分配问题的模型是人工神经网络( Artifi-Neural Network , ANN ).简称神经网络

神经网络和深度学习并不等价。深度学习可以采用神经网络模型,也可以采用其他模型(比如深度信念网络是一种概率图模型)。但是,由于神经网络模型可以比较容易地解决贡献度分配问题,因此神经网络模型成为深度学习中主要采用的模型

人工智能

图灵测试: “一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算
机是智能的”。

目前,人工智能的主要领域大体上可以分为以下几个方面:

  1. 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工。主要研究领域包括语音信息处理和计算机视觉等.
  2. 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中进行学习主要研究领域包括监督学习、无监督学习和强化学习等
  3. 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理理解、推理、规划、决策等.

机器学习

机器学习( Machine Learning , ML )是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法。
机器学习是人工智能的一个重要分支,并逐渐成为推动人工智能发展的关键因素。

机器学习模型步骤

  1. 数据预处理:对数据的原始形式进行初步的数据清理(比如去掉一些有缺失特征火冗余的样本)和加工(对数值特征进行缩放和归一化等),并构建成可用于训练机器学习模型的数据集.
  2. 特征提取:从数据的原始特征中提取一些对特定机器学习任务有用的高质量特征.比如在图像分类中提取边缘、尺度不变特征变换(Scale Invariant Feature Transform , SIFT )特征,在文本分类中去除停用词等.
  3. 特征转换:对特征进行进一步的加工,比如降维和升维。很多特征转换方法也 都是机器学习方法.降维包括特征抽取( Feature Extraction )和特征选择( Feature Selection )两种途径.常用的特征转换方法有主成分分析( Principal Components Analysis , PCA )、线性判别分析( Linear Discriminant Analysis , LDA )等.
  4. 预测:机器学习的核心部分,学习一个函数并进行预测。

在这里插入图片描述
开发一个机器学习系统的主要工作量都消耗在了预处理、特征提取以及特征转换上。

表示学习

为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性地称为表示( Representation ).如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习( Representation Learning ).
在表示学习中,有两个核心问题:一是“什么是一个好的表示”;二是“如何学习到好的表示”.

局部表示与分布式表示

  • 一种表示颜色的方法是以不同名字来命名不同的颜色,这种表示方式叫作局部表示,也称为离散表示或符号表示;例如“中国红”。通常可以表示为
    one-hot 向量的形式。
  • 另一种表示颜色的方法是用 RGB 值来表示颜色,不同颜色对应到 R 、 G 、B
    三维空间中一个点,这种表示方式叫作分布式表示.分布式表示通常可以表示为低维的稠密向量。

表示学习的关键是构建具有一定深度的多层次特征表示。

深度学习

在这里插入图片描述
目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题.只要是超过一层的神经网络都会存在贡献度分配问题,因此可以将超过一层的神经网络都看作深度学习模型。

常用的深度学习框架

比较有代表性的框架包括: Theano 、 Caffe 、 TensorFlow 、Pytorch 、飞桨( PaddlePaddle )、 Chainer 和 MXNet 等。

  1. Theano:由蒙特利尔大学的 Python 工具包,Theano 项目目前已停止维护
  2. Caffe:由加州大学伯克利分校开发的针对卷积神经网络的计算框架,主要用于计算机视觉. Caffe 用 C++ 和 Python 实现,但可以通过配置文件来实现所要的网络结构,不需要编码.
  3. TensorFlow :由 Google 公司开发的深度学习框架, TensorFlow 的计算过程使用数据流图来表示.TensorFlow 的名字来源于其计算过程中的操作对象为多维数组,即张量(Tensor ).TensorFlow 1.0 版本采用静态计算图, 2.0 版本之后也支持动态计算图.
  4. PyTorch :由 Facebook 、 NVIDIA 、 Twitter 等公司开发维护的深度学习框架,其前身为 Lua 语言的 Torch . PyTorch 也是基于动态计算图的框架,在需要动态改变神经网络结构的任务中有着明显的优势.
  5. 飞桨( PaddlePaddle ):由百度开发的一个高效和可扩展的深度学习框架,同时支持动态图和静态图.飞桨提供强大的深度学习并行技术,可以同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训练,支持千亿规模参数和数百个节点的高效并行训练.
  6. MindSpore :由华为开发的一种适用于端边云场景的新型深度学习训练 / 推理框架. MindSpore 为 Ascend AI 处理器提供原生支持,以及软硬件协同优化.
  7. Chainer :一个最早采用动态计算图的深度学习框架,其核心开发团队为来自日本的一家机器学习创业公司 Preferred Networks .和 Tensorflow 、Theano 、 Caffe 等框架使用的静态计算图相比,动态计算图可以在运行时动态地构建计算图,因此非常适合进行一些复杂的决策或推理任务.
  8. MXNet 7 :由亚马逊、华盛顿大学和卡内基·梅隆大学等开发维护的深度学习框架.MXNet 支持混合使用符号和命令式编程来最大化效率和生产率,并可以有效地扩展到多个 GPU 和多台机器.在这些基础框架之上,还有一些建立在这些框架之上的高度模块化的神经网络库,使得构建一个神经网络模型就像搭积木一样容易.其中比较有名的模块化神经网络框架有:1 )基于TensorFlow和Theano的 Keras ;2 )基于 Theano的Lasagne ;目前,Keras已经被集成到TensorFlow 2.0 版本中.3 )面向图结构数据的DGL

端到端学习

端到端学习( End-to-End Learning ),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标.在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预.端到端学习的训练数据为“输入 - 输出”对的形式,无须提供其他额外信息.因此,端到端学习和深度学习一样,都是要解决贡献度分配问题.目前,大部分采用神经网络模型的深度学习也可以看作一种端到端的学习.

神经网络

人工神经网络

人工神经网络是为模拟人脑神经网络而设计的一种计算模型。

神经网络的发展历史

  • 第一阶段:模型提出 1943 年,心理学家 Warren McCulloch 和数学家 Walter Pitts 最早提出了一种基于简单逻辑运算的人工神经网络,这种神经网络模型称为 MP 模型[Rosenblatt,1958] 提出了一种可以模拟人类感知能力的神经网络模型,称为感知器( Percep-tron )。
  • 第二阶段:冰河期 1974 年,哈佛大学的 Paul Werbos 发明反向传播算法。
  • 第三阶段:反向传播算法引起的复兴 反向传播算法是迄今最为成功的神经网络学习算法.目前在深度学习中主要使用的自动微分可以看作反向传播算法的一种扩展。梯度消失问题( Vanishing Gradient Problem )阻碍神经网络的进一步发展,特别是循环神经网络.
  • 第四阶段:流行度降低 1995-2006
  • 第五阶段:深度学习的崛起 2006年开始至今

机器学习概述

通俗地讲,机器学习( Machine Learning , ML )就是让计算机从数据中进行自动学习,得到某种知识(或规律).

基本概念

在这里插入图片描述
一组样本构成的集合称为数据集( Data Set ).在很多领域,数据集也经常称为语料库( Corpus ).一般将数据集分为两部分:训练集测试集.训练集( Training Set )中的样本是用来训练模型的,也叫训练样本( Training Sample ),而测试集( Test Set )中的样本是用来检验模型好坏的,也叫测试样本( Test Sample )。

机器学习的三个基本要素

机器学习方法可以粗略地分为三个基本要素:模型学习准则优化算法

模型

机器学习的目标是找到一个模型来近似真实映射函数或真实条件概率分布。
由于我们不知道真实的映射函数或条件概率分布的具体形式,因而根据经验来假设一个函数集合,称为假设空间,然后通过观测其在训练集上的特性,从中选择一个理想的假设。常见的假设空间可以分为线性和非线性两种,对应的模型也分别称为线性模型和非线性模型

学习准则

经验风险最小化、结构风险最小化、最大似然估计、最大后验估计等。

损失函数

损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.下面介绍几种常用的损失函数:

  • 0-1损失函数:最直观的损失函数,是模型在训练集上的错误率,能够客观地评价模型的好坏,但其缺点是数学性质不是很好:不连续且导数为 0 ,难以优化.因此经常用连续可微的损失函数替代。
  • 平方损失函数:经常用在预测标签为实数值的任务中。一般不适用于分类问题。
  • 交叉熵损失函数:一般用于分类问题。也就是负对数似然函数
  • Hinge损失函数
风险最小化准则
  • 过拟合:经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高.这就是所谓的过拟合。过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的.
    为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化来限制模型能力,使其不要过度地最小化经验风险。
  • 欠拟合:即模型不能很好地拟合训练数据,在训练集上的错误率比较高.欠拟合一般是由于模型能力不足造成的。
    在这里插入图片描述

优化算法

在确定了训练集、假设空间以及学习准则后,如何找到最优的模型就成了一个最优化问题。机器学习的训练过程其实就是最优化问题的求解过程。
参数与超参数:在机器学习中,优化又可以分为参数优化和超参数优化。
模型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/410948
推荐阅读
相关标签