文章类别:首页>数据智能>AI

阿里云人工智能ACA认证(5)—深度学习基础

发布时间:2025-05

浏览量:80

本文字数:4359

读完约 15 分钟

一、深度学习概述

Deep Learning

机器学习的分支

是一种人工神经网络为架构

对资料进行特征学习的算法:允许计算机学习使用特征的同时,也学习如何提取特征(学习如何学习)

优点

学习能力强

覆盖范围广、适应性好

数据驱动、上限高

可移植性好

缺点

计算量大、便携性差

硬件需求高

模型设计复杂

容易存在偏见

image.png

深度学习框架

    一种界面、库或工具

    能够让开发人员利用预先构建和优化好的组间集合定义模型

    更容易、更快速地构建深度学习模型

    一个良好的深度学习框架应具备以下5个关键特征:针对性能进行优化、易于理解与编码、强大的社区生态、并行化进程加快运算、自动计算渐变

    常用深度学习框架包括TensorFlow、Torch、Caffe等


TensorFlow

    一个利用数据流图进行数值计算的开源软件库

    可以在众多异构的系统上方便地移植

image.png

Torch

    包含大量的机器学习、计算机视觉、信号处理、并行计算、图像、视频、音频的库

    和Caffe类似,拥有大量的训练好的深度学习模型

image.png

Caffe

    一个清晰而高效的深度学习框架

    基于C++/CUDA 的架构,支持命令行、Python和Matlab接口

    可以在CPU和GPU直接无缝切换,并支持多GPU

image.png

    深度学习框架的选择需要考虑多方面的因素,如学习门槛、上手难度、开发速度、易用性等


神经网络

    人工神经网络(Artificial Neural Network, ANN),简称神经网络 NN

    在计算机领域中,是一种模仿生物神经网络的结构和功能的数学或计算模型

    目的是模拟大脑的某些机理与机制,实现某个方面的功能,例如图像识别、语音识别

image.png

神经网络组成

神经元

负责计算和处理输入信号

网络连接

负责将不同神经元连接起来,形成神经网络

连接两端各位一个神经元

一个神经元的输出位另一个神经元的输入,例如信号 a

网络连接有加权参数w,经过加权计算后,信号变成 a*w

image.png

二、多层感知机

定义:

    人工智能最早的模型

    一种有监督的学习算法

    本质上是一个二分类问题

    是神经网络和支持向量机的基础

缺点:

    感知机只能解决单纯的线性问题

image.png

层级结构

    主要包含输入层、隐藏层、输出层,可以用于拟合非线性函数

image.png

激活函数

    是一种在人工智能神经网络的神经单元上运行的函数,旨在帮助网络学习数据中的复杂模式,负责将神经元节点的输入映射到输出端

    常见激活函数:Sigmoid、Tanh、ReLu等

image.png

sigmoid

    用于隐藏层神经元输出,取值范围 [0, 1],可用于二分类

    输出不是0均值

    存在梯度消失的情况

image.png

Tanh

    解决了sigmoid函数的不是0均值化输出问题,在特征相差明显时的效果更好,在循环过程中会不断扩大特征效果

    存在梯度消失问题

image.png

ReLu

    最常用的激活函数,它解决了梯度消失的问题,计算速度非常快,收敛速度远快于 sigmoid 和 tanh

image.png

BP神经网络算法

    BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层神经网络

    正向传播求损失,反向传播回传误差

    根据误差信号修正每层的权重

image.png

三、卷积神经网络

CNN:Convolutional Neural Network

    一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别

    在1989年提出,早期被成功用于手写字符图像识别

    2012年更深层次的AlexNet网络取得成功,此后卷积神经网络被广泛用语各个领域

image.png

层级结构

输入层

    接收数据的输入,可以处理多维数据,也能对输入特征进行标准化处理,有利于提升卷积神经网络的学习效率和表现

image.png

卷积层

    提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器

    主要应用在图像处理上,而图像为二维结构,因此为了更充分地利用图像的局部信息

    通常将神经元组织为三维结构的神经层,其大小为高度 M x 宽度N x 深度D,由 D 个 M x N 大小的特征映射构成

image.png

    卷积计算实例

    现有 4x4x1 的输入矩阵,卷积核为3x3,滑动步长为 1

image.png

池化层

    包含预订的池化函数

    将特征图中单个点的结果替换为其相邻区域的特征图统计量

    对数据进行降维,减少数据特征,减少网络参数和运算次数,避免过拟合,常用方法有最大值池化和均值池化

image.png

全连接层

    神经元排成一列,这些神经元与前一层神经元通过权值互连,呈全连接结构

    等价于传统前馈神经网络中的隐含层,通常位于卷积神经网络的最后部分,并只向其它全连接层传递信号

image.png

输出层

    通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同

    假设对于10分类问题,输出层如下:

image.png

经典卷积神经网络

LeNet-5

    上世纪90年代提出,第一个卷积神经网络,是一个非常成功的神经网络模型

    共包含7层网络结构,分别为2个卷积层、2个池化层、2个全连接层和1个输出层

    卷积核大小全部为 5*5

    基于LeNet-5的手写数字识别系统在20世纪90年代被美国很多银行使用,用来识别支票上面的手写数字

image.png

AlexNet

    在2012年的ImageNet ILSVRC竞赛中以Top5错误率16.4%夺得冠军

    共包含8层网络结构,分别为5层卷积层和3层全连接层

    卷积核大小分别为11*11、5*5和3*3

    AlexNet是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的技术方法,比如使用GPU进行并行训练,采用ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强来提高模型准确率等

image.png

ResNet

    残差网络(Residual Network)是ILSVRC2015的胜利者

    共包含152层网络结构,分别为151层卷积层和1层全连接层

    它使用了跳跃链接,并大量使用了批量归一化

    ResNet通过使用残差单元成功训练出了152层的神经网络。残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题

image.png

卷积神经网络应用

    一维卷积:序列模型、自然语言处理模型

image.png

    二维卷积:图像处理、计算机视觉领域

image.png

    三维卷积:医学领域、视频处理领域

image.png

四、循环神经网络

RNN:Recurrent Neural Network 

    是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络

image.png

结构

    一个典型的RNN网络包含一个输入 x,一个输出 h 和一个神经网络单元 A

    与普通的神经网络不同的是,RNN网络的神经网络单元 A 不仅仅与输入和输出存在联系,其与自身也存在一个回路

    这种网络结构就揭示了RNN的实质:上一个时刻的网络状态信息将会作用于下一个时刻的网络状态

image.png

拓展

    将RNN的自循环结构展开,像是将同一个网络复制并连成一条线的结构,将自身提取的信息传递给下一个继承者

    这种链式的结构揭示了RNN与序列和列表类型的数据密切相关

image.png

神经元结构

    下图是一个RNN神经网络的时序展开模型,中间t时刻的网络模型揭示了RNN的结构,原始的RNN网络的内部结构非常简单。神经元A在t时刻的状态仅仅是 t-1 时刻神经元状态与t时刻网络输入的双曲正切函数的值,这个值不仅仅作为该时刻网络的输出,也作为该时刻网络的状态被传入到下一个时刻的网络状态中,这个过程叫做RNN的正向传播

image.png

循环神经网络的类别

image.png

经典循环神经网络

长短期记忆网络LSTM

    循环神经网络最著名和成功的拓展

    增强循环神经网络的学习能力,缓解网络的梯度消失等问题

    对有价值的信息进行长期记忆,减小循环神经网络的学习难度

image.png

LSTM的核心

    细胞状态,用贯穿细胞的水平线表示,细胞状态像传送带一样

    贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNN

    LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息,门能够有选择性地决定让哪些信息通过

    门的结构很简单,就是个sigmoid 层和一个点乘操作的组合

    因为 sigmoid 层的输出是 0-1 的值,这代表有多少信息能够流过 sigmoid 层

    一个LSTM里面包含三个门来控制细胞状态

image.png

LSTM神经元

    LSTM的第一步就是决定细胞状态需要丢弃哪些信息,通过一个称为 忘记门 的sigmoid单元来处理的,通过查看 ht-1和xt信息来输出一个 0-1 之间的向量,元胞状态Ct-1中的每个数字都要与该系数相乘;该向量里面的0-1值表示细胞状态中的哪些信息保留或丢弃多少,0表示不保留,1表示都保留。

image.png

    LSTM的第二步是决定给细胞状态添加哪些新的信息,分为两个步骤,首先利用ht-1和xt通过一个称为输入门的操作来决定更新哪些信息,接着利用ht-1和xt通过一个Tanh层得到新的候选细胞信息Ct,这些信息可能会被更新到细胞信息中

image.png

    LSTM的第三步是更新旧的细胞信息Ct-1,变为新的细胞Ct,更新的规则就是通过忘记门选择忘记旧细胞信息的一部分,通过输入门选择添加候选细胞信息的一部分得到新的细胞信息Ct

image.png

    LSTM的第四步需要根据输入的ht-1和xt来判断输出细胞的哪些状态特征,首先将输入经过一个输出门的sigmoid层得到判断条件,接着将细胞状态经过Tanh层得到一个 -1~1之间值的向量,该向量与输出门得到的判断条件相乘就得到了最终该RNN单元的输出

image.png

循环神经网络的应用

    主要用于序列数据的处理问题,在自然语言处理领域就是一个典型的应用场景

image.png

五、生成对抗式网络

GAN:Generative Adversarial Network

    一种深度学习模型,通过判别模型和生成模型的相互博弈学习,生成接近真实数据的数据分布或对输入数据进行分类

    近年来复杂分布上无监督学习最具有前景的方法之一

image.png

生成对抗网络结构

生成器:

    在给定输入数据时,理解输入,生成类似的输出

判别器:

    在给定输入数据时,将输入数据正确地分类

image.png

生成对抗网络工作流程

image.png

应用示例

image.png

生成对抗网络对比

传统神经网络:

    根据输入数据的特征预测输入数据的标签

    一个神经网络是一个训练模型

    网络训练时,依赖于输入数据样本更新参数梯度

image.png

生成对抗网络:

    根据输入数据的标签,生成接近真实的输入分布

    一个网络包含生成器和判别器两个模型

    网络训练时,生成器模型梯度更新依赖于判别器模型

    生成器和判别器可以是CNN、RNN神经网络

image.png

生成对抗神经网络类别

image.png

应用场景

图像生成

image.png

图像转换

image.png

人脸合成

    根据一张人脸的图像,合成不同角度的人脸图像

    用于提高人脸识别的精度

image.png

半监督学习

    缺少训练数据的场景下,利用生成对抗网络生成数据加入到训练集中

    提升训练模型精度


六、机器学习PAI平台简单实现

基于卷积神经网络的体育赛事识别

    图像处理和识别是日常生活中常见的问题。图像分类是图像处理和识别中的一个子类问题,主要通过对已经标注好类别的已有图像数据集进行学习,掌握图像特征,然后再对新图像进行判断,区分其类别。

    

    现有230张体育赛事图片,包括棒球、板球和足球三个体育赛事。如下图所示,现希望使用卷积神经网络对这些图片数据建立分类模型,并进行测试验证

image.png

实验步骤

    使用 Tensorflow 构建卷积神经网络的思路比较清晰,Tensorflow 框架中提供了卷积神经网络构建所需的各层操作API,在具备 Tensorflow 开发和运行环境后,可以按照如下处理思路进行卷积神经网络程序开发。具体的处理思路如下:

    数据准备—数据处理—构建卷积神经网络—训练卷积神经网络—评估和应用网络模型

image.png

结果可视化

    对模型训练过程中的损失函数值和模型的准确率进行可视化

image.png



^