0


深度学习笔记

神经网络基本框架

神经网络主要原理图:

神经网络主要有两个函数:线性函数、激活函数。

深度学习的经典模型:LeNet、ResNet、LsTM、BERT等等。

机器学习基础:损失函数、目标函数、过拟合、优化函数。

包含两个参数:M未知数的系数、b偏置数。

    在模型训练好之后:对应的inputs和outputs为输入和输出内容如:将英文内容输入输出翻译为中文。

    但在训练模型时需要同时将语义相近的中文和英文分别在inputs和outputs输入之后通过最上层的损失函数来判断其最适合翻译的语言模型。

    深度学习包含输入层,隐藏层,输出层,其中隐藏层越深其抽象程度就越高。

数据集

误差有训练误差、泛化误差,我们主要关注的是泛化误差。

    对与数据集我们可以使用K-则交叉验证来划分数据集和验证集我们可以将数据集划分为k份然后依次选择其中一份作为测试集其余做训练集来进行k轮训练。 

自动求导

    ![](https://i-blog.csdnimg.cn/direct/2828f00f86d54fa88bf62b3a2a74d6dc.jpeg)

    深度学习占GPU的主要原因是由于内存复杂度:在求导时要计算O(n)个计算力度,因为在自动求导时要储存正向的所有中间结果。

模型训练结构:1.数据集准备 2.初始化模型参数 3.定义模型 4.定义损失函数 5.定义优化算法 6.训练

损失函数

    作用:通过判断特定值的大小来不断训练无限接近于理想的模型。

    训练:就是缩小与理想模型的差距。

损失函数:

            ![](https://i-blog.csdnimg.cn/direct/0f45820749f54f979f420c106a5207ab.png)

其中可以通过三个方法来定义损失函数

1.最小二乘法

    通过投入数据向量X得到对应的判断结果值Y在于对应每个真实值做差平方之后求和当其值最小时说明模型拟合效果最好。

2. 极大似然估计

    对于抛硬币事件我们已经知道其事实只存在两种结果并且概率各是百分之五十我们就可以根据这个概率构建模型,但对于未知的概率的模型我们通过其结果发生的次数占比来生成最大概率的模型假设抛硬币有3次向上7次向下我们就可以规定硬币百分之30朝上作为最接近其概率的模型

    通过公式计算可得到损失函数对应的第二个函数。

3.交叉熵

    交叉熵原理:世界一切事物都可以做比较其较量标准就是信息量。

    信息量定义公式f(x):=信息量 (:=指f(x)由信息量定义)

    对于信息量就是指某个事物在某个系统中的影响力有多大,比如在比赛中一个弱队夺冠的信息量比一个强队夺冠的信息量要大。

    其中系统熵的定义为:在系统中所有事件发生的信息量与对应概率相乘后求和。

以上就是损失函数的定义三种方式。

感知机

1.感知机与多层感知机

    定义:给定义输入的x,权重w,和偏移b感知机输出:

    余量:就是在某个区间内单个感知机作平移任然可以将两类数据分开这时,这个区间的长度就是余量

    问题:单个的感知机太过简单对于稍复杂的数据就不能进行分类。

多层感知机每层具有多个感知机可以进行更复杂的数据分类

2.激活函数

    作用:激活函数可以改变简单的线性模型让其不再是简单的线性变换。![](https://i-blog.csdnimg.cn/direct/cb0ca31fbca440ff981ed7a154cb1ec2.jpeg)

   激活函数:sigmoid、softmax、Tanh、ReLu。

     其中sigmoid只能解决单个的分类问题并且只能用在单个感知机上并不能保证多个感知机加起来后能够归一。

    所以之后出现了softmax激活函数,其可以检测多个分类,输出分类结果与对应概率

    对应的softmax函数计算之后就是对应各分类的概率输出其概率最大的分类与其概率

其实sigmoid就是softmax的特殊情况sigmoid就是只有两个分类的softmax函数

当判断某一个物体可能具有多个类别分类时可以用sigmoid激活函数。

梯度下降法

1.标准梯度下降法

     在得到相关模型的损失函数后我们就要尽可能降低loss的值来使我们的模型跟拟合真实的模型所以我们可以通过梯度下降法来不断的接近我们理想的模型。

    其中标准梯度下降法是最基础的方法,他是在全部的数据为基础上得到损失函数之后对其梯度的负方向传播,这时可以相对移动较大距离可以通过最少的步数,修改参数来接近最小损失的函数模型。

通过定义学习率(学习步长)来规定每次前进的距离步长越短需要计算的轮数就相对越多,而步数过大会在接近最优时发生振荡。

2.随机梯度下降法与牛顿法

    其中随机梯度下降法是在标准法的计算情况下减少样本数据,从而减少了计算。比如选取某个批次进行训练也称作(mini-batch)是最常用的训练方法。

    从另一个角度出发就是通过该善算法来使更快的靠近最优模型通过改变靠近最优模型的函数

     ![](https://i-blog.csdnimg.cn/direct/265ff03bed204e7fa1cdc4264c9b5cba.jpeg)

    在 步长为dertail X时有最优路径这个时候他的步长可以求出来也就是说不需要我们设定学习步数就可以自动学习。

过拟合与欠拟合

控制模型容量

     在我们训练模型时法神过拟合的情况时就是我们的模型过于复杂所以我们应该控制合适的模型大小。对于模型容量的控制我们有两种常用的方法:权重衰退法与丢弃法。

1.权重衰退

    权重衰退就是通过控制参数值的范围来控制模型 

    对于加入的正则项会缩小模型型参数的范围。

2.暂退法

     一个好的模型需要在未知数据上有好的表现。

    对于模型参数前后的均值不变。

模型初始化

    在我们自动求导的过程中存在梯度爆炸与梯度消失两个问题所以我们就要使梯度在合理范围内。

梯度爆炸(gradient exploding)问题:参数更新过大,破坏了模型的稳定收敛;

梯度消 失(gradient vanishing)问题:参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。

层(Layer)

  1. 定义:层是神经网络的基本构建单元,每一层通常由一定数量的神经元组成。层与层之间通过权重相连。

块(Block)

  1. 定义:块是一组相互连接的层,它们通常实现某一特定功能或结构,例如卷积块、残差块等。块可以被视为一个高层次的构件,用于简化网络的设计。

卷积和池化

1.卷积的由来

     一张RGB图片(12M像素)则有36M元素,对于单隐藏层MLP的话就有3.6B参数(14GB)

36M * 100权重向量 = 3.6B参数。

    占用的内存过大所以就需要重新规定全连接层来使得内存占用缩小。

识别具有两个原则:1.平移不变性(识别不应受目标在照片的位置影响)

                             2.局部性(识别只关注目标所在位置)

    根据以上为前提重新考查全连接层

2.卷积过程

    二位交叉相关和二维卷积就是上下对称左右对称的关系。

3.多输入输出通道

    一般输入的是一个4维的tensor;

     第一维是批量大小;第二维是通道数;第三、四维构成图片的宽高(像素信息)

多个输入通道:对应有多个卷积核,结果是所有通道结果的和。

多个输出通道:我们可以有多个三位卷积核,每个卷积核生成一个输出通道。

    对于不同的输出通道分别对应着不同的特征我们可以根据不同的通道来识别这些特征。

    如绿色识别通道,粉色识别通道,纹路识别通道.....

4.卷积层

5.1*1卷积层

     1*1的卷积层通常用于融合通道。

6.池化层

     池化层原理与卷积层类似知识计算方式上有所不同。

    池化也分为两类最大值池化,与平均值池化。 

神经网络模型

     神经网络最早兴起时对与一些较少的数据集具有较好的表现,之后随着数据集的增大我们就需要更加深层的神经网络但受限于当时的硬件水平核方法具有更高效快捷的方法,再到现在随着数据集不断地复杂并且GPU技术的逐渐兴起能够带动足够复杂的神经网络神经网络又逐渐兴起。

1.LeNet

LeNet是早期的神经网络为之后的各种模型奠定总体框架。

2.AlexNet

AlexNet模型相对于LeNet发生了改进,它可以对像素更大的RGB图像(224*224)进行识别.

    从图中我们可以看出AlexNet在第一个卷积层使用了更大的窗口和步幅来面对更大的图片,并且曾加了更多的卷积层和池化层。

     对于数据增强是个很重要的模块,在该模型中对图片进行局部裁剪,明暗处理,和增加各种滤镜......来增强模型在更特殊模式下对图片的识别能力。

独热编码原理及作用

     要想给电脑投喂信息或是输入信息必须是以数字的形式该过程也叫做Embeding(嵌入)。所以我们要对语义单元进行数字化

共有两种方法。

    tokenizer:标记器或分词器

    One hot:独热编码

    分词器编码后所得的Token(即使把所有数据投射到一个一维数轴上):

    独热编码以二进制的形式对应一个Token最组成成了一个具有n维的高维空间(n=Token个数)。

    问题:分词器分布过于密集没有利用空间的维度关系。

               One hot分布稀疏没有利用空间的长度关系。

    问题解决:通过矩阵的相乘可以对高维空间降维,并且矩阵相乘是线性变换,不会得到曲线并且还会保存一些原有的性质(变换前平行,长度比,共线等等变换后保留),所以可以通过此方式对One hot进行降维。

语义训练

    其中对于语义的训练有两种方式

    第一种就是CBOW将文中挖去一个词段并将其余词段投入让其他词段来推出挖去的词段并且根据推出的词段与挖出的词段的差距来不断调节参数。其原理就像物理上力的作用一样平衡系统中一个力于其余合力的合力大小相等方向相反。

    第二种为skip-gram由图就可以看出来是第一种方法的反向作用。

编码与解码

    ![](https://i-blog.csdnimg.cn/direct/f9cd5251c3f84a488909724026f5cbfa.jpeg)

编码与解码可以理解为一个最基本的神经网络其中降维与升维可以看作一个伪逆过程。

注意力机制

作用:解决许多词组合在一起之后的整体语义,更能体现出句子在上下文之间的语义。

原理框架:

    对于嵌入的词Din被三个权重矩阵相乘得到Q、K、V,其维度发生变化而不改变语义,也就是Q、K、V还是对应的是前空间里的含义。

    对于计算图的上半部分详细过程如下图:

    Q与K的转置相乘就可以得到不同词向量之间的关系如果两个词向量语义相同就会得到该词向量的模长所以之后该词向量的含义就会被最大限度地保存下来。

    之后就会得到上下文的修改系数矩阵A之后在对A进行归一化操作。

    在通过激活函数softmax后与原本的词向量V相乘后就可以得到新的语句含义,这时就可以认为改语义是在文章中的意思。

本文转载自: https://blog.csdn.net/Kyrie_irving1112/article/details/140748967
版权归原作者 Kyrie_irving1112 所有, 如有侵权,请联系我们删除。

“深度学习笔记”的评论:

还没有评论