阿里云人工智能ACA认证(5)—深度学习基础
发布时间:2025-05
浏览量:80
本文字数:4359
读完约 15 分钟
一、深度学习概述
Deep Learning
机器学习的分支
是一种人工神经网络为架构
对资料进行特征学习的算法:允许计算机学习使用特征的同时,也学习如何提取特征(学习如何学习)
优点:
学习能力强
覆盖范围广、适应性好
数据驱动、上限高
可移植性好
缺点:
计算量大、便携性差
硬件需求高
模型设计复杂
容易存在偏见
深度学习框架
一种界面、库或工具
能够让开发人员利用预先构建和优化好的组间集合定义模型
更容易、更快速地构建深度学习模型
一个良好的深度学习框架应具备以下5个关键特征:针对性能进行优化、易于理解与编码、强大的社区生态、并行化进程加快运算、自动计算渐变
常用深度学习框架包括TensorFlow、Torch、Caffe等
TensorFlow
一个利用数据流图进行数值计算的开源软件库
可以在众多异构的系统上方便地移植
Torch
包含大量的机器学习、计算机视觉、信号处理、并行计算、图像、视频、音频的库
和Caffe类似,拥有大量的训练好的深度学习模型
Caffe
一个清晰而高效的深度学习框架
基于C++/CUDA 的架构,支持命令行、Python和Matlab接口
可以在CPU和GPU直接无缝切换,并支持多GPU
深度学习框架的选择需要考虑多方面的因素,如学习门槛、上手难度、开发速度、易用性等
神经网络
人工神经网络(Artificial Neural Network, ANN),简称神经网络 NN
在计算机领域中,是一种模仿生物神经网络的结构和功能的数学或计算模型
目的是模拟大脑的某些机理与机制,实现某个方面的功能,例如图像识别、语音识别
神经网络组成
神经元
负责计算和处理输入信号
网络连接
负责将不同神经元连接起来,形成神经网络
连接两端各位一个神经元
一个神经元的输出位另一个神经元的输入,例如信号 a
网络连接有加权参数w,经过加权计算后,信号变成 a*w
二、多层感知机
定义:
人工智能最早的模型
一种有监督的学习算法
本质上是一个二分类问题
是神经网络和支持向量机的基础
缺点:
感知机只能解决单纯的线性问题
层级结构
主要包含输入层、隐藏层、输出层,可以用于拟合非线性函数
激活函数
是一种在人工智能神经网络的神经单元上运行的函数,旨在帮助网络学习数据中的复杂模式,负责将神经元节点的输入映射到输出端
常见激活函数:Sigmoid、Tanh、ReLu等
sigmoid
用于隐藏层神经元输出,取值范围 [0, 1],可用于二分类
输出不是0均值
存在梯度消失的情况
Tanh
解决了sigmoid函数的不是0均值化输出问题,在特征相差明显时的效果更好,在循环过程中会不断扩大特征效果
存在梯度消失问题
ReLu
最常用的激活函数,它解决了梯度消失的问题,计算速度非常快,收敛速度远快于 sigmoid 和 tanh
BP神经网络算法
BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层神经网络
正向传播求损失,反向传播回传误差
根据误差信号修正每层的权重
三、卷积神经网络
CNN:Convolutional Neural Network
一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别
在1989年提出,早期被成功用于手写字符图像识别
2012年更深层次的AlexNet网络取得成功,此后卷积神经网络被广泛用语各个领域
层级结构
输入层
接收数据的输入,可以处理多维数据,也能对输入特征进行标准化处理,有利于提升卷积神经网络的学习效率和表现
卷积层
提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器
主要应用在图像处理上,而图像为二维结构,因此为了更充分地利用图像的局部信息
通常将神经元组织为三维结构的神经层,其大小为高度 M x 宽度N x 深度D,由 D 个 M x N 大小的特征映射构成
卷积计算实例
现有 4x4x1 的输入矩阵,卷积核为3x3,滑动步长为 1
池化层
包含预订的池化函数
将特征图中单个点的结果替换为其相邻区域的特征图统计量
对数据进行降维,减少数据特征,减少网络参数和运算次数,避免过拟合,常用方法有最大值池化和均值池化
全连接层
神经元排成一列,这些神经元与前一层神经元通过权值互连,呈全连接结构
等价于传统前馈神经网络中的隐含层,通常位于卷积神经网络的最后部分,并只向其它全连接层传递信号
输出层
通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同
假设对于10分类问题,输出层如下:
经典卷积神经网络
LeNet-5
上世纪90年代提出,第一个卷积神经网络,是一个非常成功的神经网络模型
共包含7层网络结构,分别为2个卷积层、2个池化层、2个全连接层和1个输出层
卷积核大小全部为 5*5
基于LeNet-5的手写数字识别系统在20世纪90年代被美国很多银行使用,用来识别支票上面的手写数字
AlexNet
在2012年的ImageNet ILSVRC竞赛中以Top5错误率16.4%夺得冠军
共包含8层网络结构,分别为5层卷积层和3层全连接层
卷积核大小分别为11*11、5*5和3*3
AlexNet是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的技术方法,比如使用GPU进行并行训练,采用ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强来提高模型准确率等
ResNet
残差网络(Residual Network)是ILSVRC2015的胜利者
共包含152层网络结构,分别为151层卷积层和1层全连接层
它使用了跳跃链接,并大量使用了批量归一化
ResNet通过使用残差单元成功训练出了152层的神经网络。残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题
卷积神经网络应用
一维卷积:序列模型、自然语言处理模型
二维卷积:图像处理、计算机视觉领域
三维卷积:医学领域、视频处理领域
四、循环神经网络
RNN:Recurrent Neural Network
是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络
结构
一个典型的RNN网络包含一个输入 x,一个输出 h 和一个神经网络单元 A
与普通的神经网络不同的是,RNN网络的神经网络单元 A 不仅仅与输入和输出存在联系,其与自身也存在一个回路
这种网络结构就揭示了RNN的实质:上一个时刻的网络状态信息将会作用于下一个时刻的网络状态
拓展
将RNN的自循环结构展开,像是将同一个网络复制并连成一条线的结构,将自身提取的信息传递给下一个继承者
这种链式的结构揭示了RNN与序列和列表类型的数据密切相关
神经元结构
下图是一个RNN神经网络的时序展开模型,中间t时刻的网络模型揭示了RNN的结构,原始的RNN网络的内部结构非常简单。神经元A在t时刻的状态仅仅是 t-1 时刻神经元状态与t时刻网络输入的双曲正切函数的值,这个值不仅仅作为该时刻网络的输出,也作为该时刻网络的状态被传入到下一个时刻的网络状态中,这个过程叫做RNN的正向传播
循环神经网络的类别
经典循环神经网络
长短期记忆网络LSTM
循环神经网络最著名和成功的拓展
增强循环神经网络的学习能力,缓解网络的梯度消失等问题
对有价值的信息进行长期记忆,减小循环神经网络的学习难度
LSTM的核心
细胞状态,用贯穿细胞的水平线表示,细胞状态像传送带一样
贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNN
LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息,门能够有选择性地决定让哪些信息通过
门的结构很简单,就是个sigmoid 层和一个点乘操作的组合
因为 sigmoid 层的输出是 0-1 的值,这代表有多少信息能够流过 sigmoid 层
一个LSTM里面包含三个门来控制细胞状态
LSTM神经元
LSTM的第一步就是决定细胞状态需要丢弃哪些信息,通过一个称为 忘记门 的sigmoid单元来处理的,通过查看 ht-1和xt信息来输出一个 0-1 之间的向量,元胞状态Ct-1中的每个数字都要与该系数相乘;该向量里面的0-1值表示细胞状态中的哪些信息保留或丢弃多少,0表示不保留,1表示都保留。
LSTM的第二步是决定给细胞状态添加哪些新的信息,分为两个步骤,首先利用ht-1和xt通过一个称为输入门的操作来决定更新哪些信息,接着利用ht-1和xt通过一个Tanh层得到新的候选细胞信息Ct,这些信息可能会被更新到细胞信息中
LSTM的第三步是更新旧的细胞信息Ct-1,变为新的细胞Ct,更新的规则就是通过忘记门选择忘记旧细胞信息的一部分,通过输入门选择添加候选细胞信息的一部分得到新的细胞信息Ct
LSTM的第四步需要根据输入的ht-1和xt来判断输出细胞的哪些状态特征,首先将输入经过一个输出门的sigmoid层得到判断条件,接着将细胞状态经过Tanh层得到一个 -1~1之间值的向量,该向量与输出门得到的判断条件相乘就得到了最终该RNN单元的输出
循环神经网络的应用
主要用于序列数据的处理问题,在自然语言处理领域就是一个典型的应用场景
五、生成对抗式网络
GAN:Generative Adversarial Network
一种深度学习模型,通过判别模型和生成模型的相互博弈学习,生成接近真实数据的数据分布或对输入数据进行分类
近年来复杂分布上无监督学习最具有前景的方法之一
生成对抗网络结构
生成器:
在给定输入数据时,理解输入,生成类似的输出
判别器:
在给定输入数据时,将输入数据正确地分类
生成对抗网络工作流程
应用示例
生成对抗网络对比
传统神经网络:
根据输入数据的特征预测输入数据的标签
一个神经网络是一个训练模型
网络训练时,依赖于输入数据样本更新参数梯度
生成对抗网络:
根据输入数据的标签,生成接近真实的输入分布
一个网络包含生成器和判别器两个模型
网络训练时,生成器模型梯度更新依赖于判别器模型
生成器和判别器可以是CNN、RNN神经网络
生成对抗神经网络类别
应用场景
图像生成
图像转换
人脸合成
根据一张人脸的图像,合成不同角度的人脸图像
用于提高人脸识别的精度
半监督学习
缺少训练数据的场景下,利用生成对抗网络生成数据加入到训练集中
提升训练模型精度
六、机器学习PAI平台简单实现
基于卷积神经网络的体育赛事识别
图像处理和识别是日常生活中常见的问题。图像分类是图像处理和识别中的一个子类问题,主要通过对已经标注好类别的已有图像数据集进行学习,掌握图像特征,然后再对新图像进行判断,区分其类别。
现有230张体育赛事图片,包括棒球、板球和足球三个体育赛事。如下图所示,现希望使用卷积神经网络对这些图片数据建立分类模型,并进行测试验证
实验步骤
使用 Tensorflow 构建卷积神经网络的思路比较清晰,Tensorflow 框架中提供了卷积神经网络构建所需的各层操作API,在具备 Tensorflow 开发和运行环境后,可以按照如下处理思路进行卷积神经网络程序开发。具体的处理思路如下:
数据准备—数据处理—构建卷积神经网络—训练卷积神经网络—评估和应用网络模型
结果可视化
对模型训练过程中的损失函数值和模型的准确率进行可视化