深度学习笔记总结

深度神经网络

深度神经网络由许多感知机组成,并在深度和广度上进行各种组合。主要包含三个层次的神经网络,其结构如下图,分别为输入层(含有一个或多个神经元)、输出层(含有一个或多个神经元)、隐藏层(含有一个或多个隐藏层,主要是线性变换和非线性变换)。
图中:
1、每一个圆圈代表一个神经元,每一根线,即每个连接都有权重,但输入层没有权重
2、同一层神经元之间没有连接
3、每个神经元都和下一层所以的神经元相连,该层为全连接层
4、深度神经网络输入层,输出层,隐藏层有多重形式,输入层不止一个神经元,隐藏层可以只要一层,输出层也可为多个神经元

在这里插入图片描述

以32×32大小图像为例,共计1024(32×32)个像素,输入层个数为1024,每个输层需要全部连接隐藏层的神经元(上图粉丝圈),一个输入层就需要权值(参数)1024个,共计需要权值(参数)1048576个(1024×1024)。这就暴露出深度神经网络的问题,参数量和计算量大,若是200×200大小图像,输入层个数为40000个,那么需要多少参数,所以简单堆叠的神经网络容易引发,计算量呈指数倍增长,这也称做维度灾难。

卷积神经网络

在这里插入图片描述

卷积主要有两部分组成,
卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘积在相加;
卷积核:又称为滤波器,过滤器,可认为某种形式,某种特征。
我们以上图为例对比一下深度神经网络与卷积神经网络的参数量与计算量的差别:
深度神经网络参数量:
每个输入层都需要连接隐藏层,都需要参数,所以参数为36(6×6)×16(4×4)=576个。
深度神经网络计算量:
每个输入层连接隐藏层,都需要计算一次,所以计算量为36(6×6)×16(4×4)=576个。
卷积神经网络参数量:
主要通过卷积核移动来进行计算,所以参数个数为卷积核大小3×3=9
卷积神经网络计算量:
通过卷积核的移动来得到结果,结果为4×4大小,只移动16次就可以得到全部结果,每次移动进行一次卷积核运算,所以计算量为16(4×4)×9(3×3)=144

卷积神经网络特点:
1、局部连接:简单的说就是每次进行卷积运算时,不需要全部信息像素进行参数,只通过局部像素与卷积核相连,卷积神经网络提出每个神经元不需要感知图像中的全部像素,只对图像的局部像素进行感知,然后在更高层将这些局部的信息进行合并,从而得到图像的全部表征信息。不同层的神经单元采用局部连接的方式,即每一层的神经单元只与前一层部分神经单元相连。每个神经单元只响应感受野内的区域,完全不关心感受野之外的区域。这样的局部连接模式保证了学习到的卷积核对输入的空间局部模式具有最强的响应。
2、参数共享:类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。而且卷积神经网络采用原始图像作为输入,可以有效的从大量样本中学习到相应地特征,避免了复杂的特征提取过程。
相关概念:
特征图(feature map):二维卷积层输出的二维数组可以看作输入在空间维度(宽和高)上某一级的表征,神经网络处理中间的每一次的结果都可以称作特征图。
感受野(Receptive Field):卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。

卷积神经网络的基本单元

1)输入层(input)
输入层(Input Layer)是输入卷积神经网络的原始数据或经过预处理的数据,可以是图像识别领域中原始三维的多彩图像,也可以是音频识别领域中经过傅利叶变换的维波形数据, 甚至是自然语言处理中一维表示的句子向量。
以图像分类任务为例,输入层输入的图像一般包含RGB三个通道,是一个由长宽分别为H和W组成的3维像素值矩阵,表示为H×W×3,卷积神经网络每次可以批量处理的图像个数不尽相同,若指定输入层接收到的图像个数为N,则输入层的输出数据N×H×W×3

(2)卷积层(conv)
卷积层是使用卷积核(过滤器)在图像数据上,从左到右,从上到下以一定的平滑移动。

1. 卷积层的特点
(1)又进行了一次特征提取,所以能减小下一层数据的处理量。
(2)能够获得更为抽象的信息,从而防止过拟合,也就是提高了一定的泛化性。
(3)由于这种抽象性,所以能对输入的微小变化产生更大的容忍,也就是保持了它的不变性,这里的容忍包括图像的少量平移、旋转缩放等操作变换,本质就是数学运算。
(4)卷积核的数量必须与上一次特征图数量一致。

2. 卷积的计算
对于卷积的参数其实并不是随便设置的,需要满足一定公式,如下所示:
输入图片大小为W×W
卷积核大小为F×F;步长为S;补边为P
输出图像大小为N×N
公式为:
N=(W-F+2P)/S+1
根据上述公式,已知其他条件,我们就可算出任意一个参数值。
案例:输入图像大小32×32×3,卷积核为10个,大小为5×5,步长为1,补边为2,就散卷积之后输出结果。
答:因为卷积核有10个,每个卷积核都会产生一个结果,所以层数为10
根据公式N=(W-F+2P)/S+1带入得:[(32-5+2×2)/1]+1=32
所以最终结果为32×32×10

(3)池化层(pool)
池化层又称为降采样层(Downsampling Layer),作用是对感受域内的特征进行筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进而减少模型所需要的参数量。池化层没有需要设置的参数量。
池化过程图如下,按操作通常分为:最大池化(max pooling),平均池化(Average Pooling),求和池化(Sum Pooling) ,它们分别提取感受域内最大、平均与总和的特征值作为输出,最常用的是最大池化。

(4)全连接层(fc)
全连接层(FullConnectedLayer)即当前层每个神经元都和下一层所有的神经元相连。负贵对卷积神经网络学习提取到的特征进行汇总,将多维的特征输入映射为二维的特征输出,高维表示样本批次,低位常常对应任务目标,参数量当前层的神经元×上一次神经元个数。

(5)输出层(output)
(6)激活函数(AL)
1. 激活层

激活层(ActivationLayer)负责对卷积层抽取的特征进行激活,由于卷积操作是由输入矩阵与卷积核矩阵进行相差的线性变化关系,需要激活层对其进行非线性的映射主要由激活函数组成,即在卷积层输出结果的基础上嵌套一个非线性函数,让输出的特征图具有非线性关系,激活函数本质是一个数学函数。

2. 激活函数的作用
1.使输出具有非线性,将模型用于更多非线性场景,
2.加快训练

3. 常用激活函数
(1)sigmoid:
它可以将一个实数映射到(0,1) 区间。
优点是在特征相差不是特别大时效果比较好,常常用来做二分类。
缺点是激活函数计算量大,容易出现梯度消失问题。
(2)tanh:映射范围为[-1,1],输出以0 为中心可以认为是 一个放大版的sigmoid函数,
优点是实际中 tanh比sigmoid更常用,循环神经网络中常用,用于解决二分类问题。
缺点是梯度消失,在曲线几乎水平的区 域学习非常的慢。
(3)relu:大于0 的部分输出数据为数据本身,小于0的部分输出为0。
优点是Relu对于梯度收敛有巨大的加速作用,只需要一个阙值就可以得到激活值,节省计算量。深层神经网络中的隐层常用。
缺点是过于生猛,一言不合就直接使小于0的数据变为0,从此节点后相关信息全部丢失
(4)特殊激活函数:
(5)softmax:
当有多 个输入的时候能够计算出概率,通过概率求得哪个输入能够胜出,计算出的概率,一般不用于卷积之后,用在输出之前。
优点是用于多分类神经网络输出
缺点是基本只用于多分类问题

在这里插入图片描述

深度学习的利与弊

深度学习有两个关键优势,使其与其他机器学习技术区分开。其中第一个是特征 学习。用其他的技术,数据科学家需要手动转换特征以通过特定算法获得最佳结果。 这个过程需要时间,也需要大量的猜测。相比之下,深度学习从多层次的输入数 据中学习更高层次的抽象。数据科学家不用猜测如何组合、重新编码或总结输入。

此外,深度学习还可以检测表面上看不见的变量之间的相互作用。它可以检测非线 性相互作用并近似任意函数。虽然可以使用更简单的方法来适应互动效应,但是这 些方法需要手动指定和数据科学家的更多猜测。深度学习会自动学习这些关系。

特征学习和检测复杂关系的能力往往使深度学习成为某些类型数据的不错选择:

高基数结果。对于诸如语音识别和图像识别等问题,学习者必须区分大量离散类别。(例如,语言识别应用程序必须在英语中区分近 20 万个单词。)数学家称此属性为基数。传统的机器学习技术往往在这个任务中失败;深度学习可以解决成千上万的元素的分类问题。

高维数据。在诸如视频分析、粒子物理或基因组分析等问题中,数据集可以具有数十亿个特征。深度学习可以工作于这样大量的“宽”数据集。

未标记数据。标签提供有关数据包的有价值的信息。例如,图像可以携带标签“猫”。对于无监督学习,深度学习可工作于缺少信息标签的数据(例如位映射图像)。

与其他机器学习技术相比,深度学习也有一些缺点。

技术挑战。深度学习是一个复杂的过程,需要实施者做许多选择。这些选项包括 网络拓扑、传递函数、激活函数和训练算法等。方法和最佳实践才刚刚出现;数 据科学家经常依靠试错来发现凑效的模型。因此,深度学习模式往往比简单和成 熟的技术花费更多的时间。

不透明。通过模型参数的检查,深度学习模型很难或不可能解释。这样的模型可 能有很多隐藏层,没有“真实世界”的指象。数据科学家通过衡量它的预测效果 来评估模型,将其内部结构视为“黑匣子”。

过度拟合。像许多其他机器学习技术一样,深度学习易于过度拟合,倾向于“学习” 训练数据的特征而不将整体推广到整个人群。辍学和正则化技术可以帮助防止这 个问题。与任何机器学习技术一样,组织机构应该对模型进行测试和验证,并使 用独立于训练数据集的数据来评估准确性。

计算密集型。训练深度学习模型可能需要数十亿次计算。虽然可以在常规硬件上 执行此任务,但一些行业分析师建议使用专门的 GPU 加速平台。这个硬件不便宜。 此外,由于对高性能机器的需求,一些客户报告订单和延长的交货时间。

部署问题。深度学习模型是复杂的,这使得它们更难部署在生产系统中。由于模 型的不透明度,组织机构可能需要实施其他措施来向用户进行说明。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值