发布时间:2024-02-24 14:30
最近有场考试!!所以来过一遍深度学习,记录一些笔记备考~
看老师的ppt与花书,双管齐下应对深度学习(保佑我不挂吧!!)废话结束!
将输入信息处理,让计算机从数据(经验)中发现规律,构建一个映射函数,根据规律做出相应预测,完成某方面特定任务。
下面的都是非结构化数据;
例如西瓜书–>西瓜机器学习任务:
随机选取西瓜样本,列出所有特征(颜色,根蒂、产地……)以及确定甜度(回归问题)
那就需要一个学习算法:(机器学习一般流程)
原始数据 --> 特征处理(数据预处理(缺失值填充或删掉,文本特征数据化,独热编码)–> 特征提取 --> 特征转换)–>预测 -->结果
由于特征工程往往占工程的80%,并且会被工程师的个人偏好影响,我们希望能自动地学习有效特征,所以我们出现了表示学习。
对于文本、图像中提取信息 或从字符串或图像底部提取特征(计算机很难理解)
图像是一个三或四通道的图像矩阵,仅仅是数字不能被理解。
(离散表示、符号表示)
one-hot向量 映射投入嵌入空间坐标系(如图是一个二维的嵌入空间 即从三维压缩到二维)
新的数值表达就是一个压缩的、低维的、稠密向量的表达也就是下面的分布式表达,而之前的one-hot向量就是一个局部表示。
特点::
优点:
嵌入:压缩、低维、稠密向量
从局部到分布式节省空间,例如
局部 : A B C D表示为 0001 0010 0100 1000
分布式 : A B C D表示为[0.3,0.5] [0.4,0.45][0.45,0.6][0.62,0.56]
同样更省空间可以保存新的值 例如加入E则要用5个数表示ABCDE,而分布式只是在加一个小数数组。E[0.8,0.34]
嵌入的概念:嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量
空间中,并尽可能保持不同对象之间的拓扑关系。
根据误差更新学习系统。
自己总结数据中的规律,没有类别标签 例如 聚类问题
学习和强化过程,与环境交互有关系
例如:自动驾驶 没有标签
1.非线性:
⼈⼯神经元可以是线性的,也可以是⾮线性的。
** ⾮线性是⼀个⾮常重要的特性,特别是当产⽣输⼊信号的内部物理机制是天⽣⾮线性的时候**
激活函数
2.输⼊输出映射:
即可进⾏监督学习 同样的神经网络模型得到相同的结果
3.⾃适应性:
** 神经⽹络具有调整⾃身突触权值以适应外界环境变化的固有能⼒。**
4.证据响应:
在模式分类问题中,神经⽹络可以设计成不仅提供选择哪⼀个特定模型的息,还提供关于决策的置信度信息。后者可以⽤来拒判那些可能出现的过于模糊的模式,从⽽进⼀步改善⽹络的分类性能。
5.上下⽂信息:
神经⽹络的特定结构和激发状态代表知识。⽹络中每⼀个神经元都受⽹络中所有其他神经元全局活动的潜在影响。因此,神经⽹络很⾃然地能够处理上下⽂信息。
6.容错性:
神经⽹络在不利的运⾏条件下的性能是逐步下降的。⽐如⼀个神经元或其连接坏了,存储模式的记忆性在质量上会被削弱。但由于⽹络信息存储的分布特性,部分神经元的损坏不会造成灾难性的后果。
7. 超⼤规模集成实现:
神经⽹络的⼤规模并⾏性使它具有快速处理某些任务的潜在能⼒。
8.分析和设计的⼀致性:
神经⽹络作为信息处理器具有通⽤性。神经元,不管形式如何,在所有的神经⽹络中都代表⼀种相同成分。这种共性使得在不同应⽤中的神经⽹络共享相同的理论和学习算法成为可能。模块化⽹络可以⽤模块的⽆缝集成来实现。
深度前馈网络,也叫作前馈神经网络或者多层感知机,是典型的深度学习模型。
前馈网络是近似一个函数F,对于分类器:y = F(x) 将输入值映射到一个类别y, 前馈网络是定义一个映射y=f(x,α),并且学习参数α的值,使它与最佳函数近似。
这样被称为前向的,因为信息流过x函数,流经用于定义f的中间计算过程,最终到达输出y。在输入和模型本身没有反馈连接,若扩展为包含反馈连接,则称为循环神经网络。
对于数据的分布确定线性可分与线性不可分。
简单地栗子,可以是我们的AND OR XOR计算
前两个操作,都可以找到一条分割线将数据分开,而XOR运算并不能通过线性进行分隔,下面会详细介绍分隔方法。
线性变换和线性映射:
线性映射:从一个向量空间V到另一个向量空间W的映射并且保持加法运算和数量乘法运算;
线性变换:线性空间V到其自身的线性映射
线性变换:
变换前是直线的变换后仍然是直线
直线比例保持不变
变换前是原点的,变换后依然是原点
之前的数字图像处理中的仿射变换是一个非线性变换(因为原点位置发生了变化)
我们有三个函数f(1); f(2)和f(3)连接在一个链上以形成f(x) =f(3)(f(2)(f(1)(x)))。这些链式结构是神经网络中最常用的结构。在这种情况下,f(1)被称为网络的第一层,f(2)被称为第二层,以此类推。链的全长称为模型的深度。
对于前馈网络最后一层是输出层,它产生接近y的值。而中间,训练数据没有给出每一层所需的输出,那这些层就是隐藏层。
每个隐藏层都是向量值的,而这些隐藏层维数就决定的是模型宽度。
以一个XOR进行前馈网络学习:
对于输入为 4行2列的x值
当进行上述网络计算后,过程如下
此时我们得到的所有样本仍在斜率为1的直线上,不能线性可分,所以我们引入了rule线性变换,
使[0,-1]过滤为[0,0],变为折线,不在一条直线上,可以用线性模型解决了。
再乘以权重向量w
即对每一个样本都给出了正确结果。
该神经网络拓扑图为
Rosenblatt感知器模型结构和代码可见,我的这个博客
1.连续并可导的(允许少数点上不可导)的非线性函数
不可导:比如relu取0的时候
2.激活函数及其导函数要尽可能简单
提高网络计算效率
3.激活函数的导函数值域要在合适的区间内
“挤压”函数,将把一个实数域的输入“挤压”到 (0, 1).
当输入值在0附近时,Sigmoid型函数近似为线性函数;
当输入值靠近两端时,对输入进行抑制.输入越小,越接近于 0;输入越大,越接近于 1.
导数:y’ = y(1 - y)
非零中心化也是不好的性质:抑制和兴奋不明显,转换成零中心化使有兴奋有抑制。
两端饱和的激活函数好吗?
不好,应该找不饱和的,因为饱和是导数为0,梯度更新速度变慢,不利于更新
优点:
1.计算高效:仅进行加、乘和比较操作
2.一半进行抑制一半激活,具有生物学合理性(兴奋可以很高,又具有稀疏性)
3.相比于sigmoid函数,relu是左饱和函数,且在右半边导数为1,缓解梯度消失问题,加速收敛速度(缓解梯度消失和爆炸问题)
缺点
1.非零中心化,影响梯度下降效率
2.容易死亡:某一个神经元在一次不恰当更新后(w1很小会导致所有的求和后死亡下去),所有的训练数据都不能被激活,自身梯度也会永远是0(不仅会发生在第一层,有可能会发生在其他隐藏层)
为解决左饱和的问题提出带泄露的Relu
其中γ是一个很小的常数,比如0.01.当γ < 1时,带泄露的
ReLU也可以写为LeakyReLU(x) = max(x, γx)
万能近似定理(universal approximation theorem):一个前馈神经网络如果具有线性输出层和至少一层具有任何一种 “挤压” 性质(非线性)的激活函数的隐藏层,只要给予网络足够数量的隐藏单元,它可以以任意的精度来近似任何从一个有限维空间到另一个有限维空间的 Borel 可测函数。在 Rn 的有界闭集上的任意连续函数是 Borel 可测的, 因此可以用神经网络来近似。
解决贡献度的过程:
先了解一下前馈网络符号定义:
w更新:
我写的是以一个神经元为例的微观计算,宏观的应该是列成这样的式子:
反向传播含义:第L层的一个神经元的误差项是所有与该神经元相连的第L+1层的神经元的误差项权重和,然后再乘上该神经元激活函数的梯度。
初始化W时,通常使W绝对值在1附近,太大爆炸,太小就消失。
激活函数的导函数也会影响,例如logistic值域(0,0.25] 大部分趋于0
梯度不稳定的缓解方法
以logistic函数的均方误差代价函数:(h-y)* logistic函数导数
以logistic函数和对数似然代价函数:
计算过程不难,可以计算得到。
交叉熵应用于多分类问题
通过ex 的函数曲线,可以看出将大于0的值扩大(x到y的映射)
多分类概率问题:softmax+交叉熵代价函数
作用:输出二分类或多分类任务中某一类的概率。
意义:将输入排序,并转换为概率表示。
使用不同的卷积核(即“边”)可以得到不同的特征图。
不同的特征图代表了不同特征(“边”)在原图中的分布情况。
n个卷积核卷积之后可以得到n个特征图,也被称为n个通道的特征图。
为了表述方便,使用“通道”代替图片与特征图,例如:
1个通道通过3次卷积生成3个通道。
卷积核保留了原图的局部特征信息。
特征图保留了局部特征的强弱和位置信息。
卷积核与特征图可以看做原图的另一种表达形式。
原图大小大于等于卷积得到特征图的大小
原图 i * i **卷积核 k ***
特征图大小 = (i - k + 1)/ s (s是步长)
卷积的本质是 利用特征(卷积核)进行局部特征提取,得到特征分布图的过程。
特征图作为模型输入的优缺点
提取到了局部特征作为输出。
卷积使得图像特征具有了一定的平移不变性。
特征图展开破坏了高维的位置(全局)信息。
直接使用特征图输入全连接神经网络时参数规模较大。
平移不变性:抖动或微微变动,移动一个像素 对于两次卷积效果基本不变,影响不大(影响没有那么大)
特征图下采样:
最大池化:取一个区域最大值
卷积核要素:
1.卷积核shape
2.卷积核的值
3.卷积核滑动
对于卷积,通常外面套一个非线性激活函数
池化核要素:
1.池化核shape
2.滑动步长
3.池化方式 (最大池化 平均池化)
对于池化,外面无激活函数或线性激活函数
计算量 = 卷积核大小 * 特征图大小
对特征图卷积的意义
特征提取:提取到了相对宏观的特征。
数据降维:多次卷积、池化使得数据的维度进一步降低。
1.卷积中不同元素参与卷积计算的次数不同 (与当初设计网络的初衷不符)
2.卷积与池化的步长不同时,边界处如何计算?(填充0值)
边界处理方法:
valid边界,只利用有效数据,盛不下就不卷了
i - k + 1 / s = 个数
SAME边界,pad填充,使完全卷到
为了不卷到垃圾数!比如下图,左边填充两个值的时候,卷到的前两个数都是0,没有意义,都是垃圾数。
卷积网络的反向传播:
与全连接神经网络相比:
1.池化层的前一层残差计算
2.卷积层的前一层残差计算
3.卷积核中的参数的偏导数计算
有问题希望大家不吝赐教!!
后边没来得及整理完,求老师让过了吧!!