天津建设招标网站首页,ui网页设计成都培训,叫人做网站后不提供源码,服务好的扬中网站优化深度学习之神经网络理论基础
人工神经元 人工神经元#xff1a;人类神经元中抽象出来的数学模型 MP模型
mp模型#xff1a;1943年心理学家W.S.McCulloch和数理逻辑学家W.Pitts研究出人工神经元#xff0c;称为M-P模型。 M-P神经元#xff08;一个用来模拟生物行为的数学模…深度学习之神经网络理论基础
人工神经元 人工神经元人类神经元中抽象出来的数学模型 MP模型
mp模型1943年心理学家W.S.McCulloch和数理逻辑学家W.Pitts研究出人工神经元称为M-P模型。 M-P神经元一个用来模拟生物行为的数学模型接收n个输入(通常是来自其他神经元)并给各个输入赋予权重计算加权和然后和自身特有的阈值进行比较 (作减法最后经过激活函数模拟“抑制和“激活处理得到输出通常是给下一个神经元 人工神经网络大量神经元以某种连接方式构成的机器学习模型
多层感知机
首先需要说明的是感知机模型的相关概念。从而在此基础上引出了第一个人工神经网络-多层感知机。
感知机模型激活函数为sgn阶跃函数的神经元(是一个用来分类的模型) f ( x ) sign ( w ⋅ x b ) f(x)\operatorname{sign}(w \cdot xb) f(x)sign(w⋅xb)
感知机
感知机由两层神经元组成输入层接收外界输入信号后传递给输出层输出层是M-P神经元。也称为阈值逻辑单元threshold logic unit”。以下为一个单层感知机模型示意图 感知机模型存在的致命缺点Minsky在1969年证明Perceptron无法解决异或问题 本质的原因是感知机模型只能解决线性可分的问题。 导致了人工神经网络的第一次衰弱。
多层感知机MLP 多层感知机MultiLayerPerceptronMLP单层神经网络基础上引入一个或多个隐藏层使神经网络有多个网络层因而得名多层感知机。 其中的权重矩阵为4 * 5的矩阵对应4个输入x1,x2,x3,x4和隐藏层中的五个节点 连接权重矩阵不一定唯一可能存在多个多个隐藏层 多层感知机的前向传播
注意的是其中X向量是一个1*4的结构。
通过前向传播算法得到了第一个1*5的向量结构 之后的另一个权重矩阵为5 * 3的权重矩阵。通过前向传播得到了对应的三个输出结果。
在运算的过程中每一层的计算需要激活函数若无激活函数网络将退化为单层网络。 H X W h b h O H W o b o O ( X W h b h ) W o b o X W h W o b h W o b o \begin{aligned} \boldsymbol{H} \boldsymbol{X} \boldsymbol{W}_{h}\boldsymbol{b}_{h} \\ \boldsymbol{O} \boldsymbol{H} \boldsymbol{W}_{o}\boldsymbol{b}_{o} \boldsymbol{O}\left(\boldsymbol{X} \boldsymbol{W}_{h}\boldsymbol{b}_{h}\right) \boldsymbol{W}_{o}\boldsymbol{b}_{o}\boldsymbol{X} \boldsymbol{W}_{h} \boldsymbol{W}_{o}\boldsymbol{b}_{h} \boldsymbol{W}_{o}\boldsymbol{b}_{o} \end{aligned} HOXWhbhHWoboO(XWhbh)WoboXWhWobhWobo 这个公式就说明了无激活函数时最后多个矩阵相乘的结果与线性模型相同 在隐藏层引入激活函数就可以避免模型的退化。
激活函数
让多层感知机成为真正的多层否则等价于一层引入非线性使网络可以逼近任意非线性函数万能逼近定理universalapproximator 万能逼近定理:从理论上证明了激活函数可以逼近任意的非线性函数 激活函数需要具备的性质
连续并可导允许少数点上不可导便于利用数值优化的方法来学习网络参数激活函数及其导函数要尽可能的简单有利于提高网络计算效率激活函数的导函数的值域要在合适区间内不能太大也不能太小否则会影响训练的效率和稳定影响权重值的计算 之后我们引出了三个常见的激活函数 分别为sigmoids型Tanh双曲正切ReLU(修正线性单元) 激活函数特性 其中sigmoid函数通常用来做二分类问题的激活函数其中导函数的两侧区域称为饱和区域 也是弊端之一因为在饱和区域的梯度接近于0导致前向传播变得困难 Tanh双曲正切图像与sigmoid函数的图像类似但是值域的范围在-1和1之间 其中中间值的均值为0 适合做对称的数据也存在饱和区 其中两个函数的中间部分存在的区域我们称之为线性区域 ReLU因为不存在饱和区域因此通常应用在卷积神经网络中非饱和激活函数。
反向传播算法 前向传播输入层数据开始从前向后数据逐步传递至输出层 反向传播损失函数开始从后向前梯度逐步传递至第一层 反向传播作用用于权重更新使网络输出更接近标签 反向传播的原理微积分中的链式求导法则 y f ( u ) , u g ( x ) ∂ y ∂ x ∂ y ∂ u ∂ u ∂ x yf(u), ug(x) \quad \frac{\partial y}{\partial x}\frac{\partial y}{\partial u} \frac{\partial u}{\partial x} yf(u),ug(x)∂x∂y∂u∂y∂x∂u
首先要明白梯度是一个向量的概念梯度向量。通常在数学中常常计算某个点的梯度值。
损失函数 衡量模型输出与真实标签的差异 Loss f ( y ∧ , y ) \text { Loss }f\left(y^{\wedge}, y\right) Loss f(y∧,y)
网络计算图 计算符定义prodx,y)表示x与y根据形状做必要的变换然后相乘 ∂ L ∂ W ( 2 ) prod ( ∂ L ∂ O , ∂ O ∂ W ( 2 ) ) ∂ L ∂ O ⋅ h ⊤ ∂ L ∂ h prod ( ∂ L ∂ O , ∂ O ∂ h ) W ( 2 ) T ⋅ ∂ L ∂ O ∂ L ∂ z prod ( ∂ L ∂ O , ∂ O ∂ h , ∂ h ∂ z ) ∂ L ∂ h ⊙ ϕ ′ ( z ) ∂ L ∂ W ( 0 ) prod ( ∂ L ∂ O , ∂ O ∂ h , ∂ h ∂ z , ∂ z ∂ W ( ν ) ) ∂ L ∂ z ⋅ χ ⊤ \begin{array}{l} \frac{\partial L}{\partial W^{(2)}}\operatorname{prod}\left(\frac{\partial L}{\partial O}, \frac{\partial O}{\partial W^{(2)}}\right)\frac{\partial L}{\partial O} \cdot h^{\top} \\ \frac{\partial L}{\partial h}\operatorname{prod}\left(\frac{\partial L}{\partial O}, \frac{\partial O}{\partial h}\right)W^{(2) T} \cdot \frac{\partial L}{\partial O} \\ \frac{\partial L}{\partial z}\operatorname{prod}\left(\frac{\partial L}{\partial O}, \frac{\partial O}{\partial h}, \frac{\partial h}{\partial z}\right)\frac{\partial L}{\partial h} \odot \phi^{\prime}(z) \\ \frac{\partial L}{\partial W^{(0)}}\operatorname{prod}\left(\frac{\partial L}{\partial O}, \frac{\partial O}{\partial h}, \frac{\partial h}{\partial z}, \frac{\partial z}{\partial W^{(\nu)}}\right)\frac{\partial L}{\partial z} \cdot \chi^{\top} \end{array} ∂W(2)∂Lprod(∂O∂L,∂W(2)∂O)∂O∂L⋅h⊤∂h∂Lprod(∂O∂L,∂h∂O)W(2)T⋅∂O∂L∂z∂Lprod(∂O∂L,∂h∂O,∂z∂h)∂h∂L⊙ϕ′(z)∂W(0)∂Lprod(∂O∂L,∂h∂O,∂z∂h,∂W(ν)∂z)∂z∂L⋅χ⊤
梯度下降(Gradient Decent)
反向传播的过程中如何去更新我们的权重呢此时就涉及到了梯度下降的概念了。
权值沿梯度负方向更新使函数值减小导数函数在指定坐标轴上的变化率方向导数指定方向上的变化率梯度一个向量方向为方向导数取得最大值的方向
学习率Learning Rate控制更新步长 w i 1 w i − g ( w i ) w_{i1}w_{i}-g\left(w_{i}\right) wi1wi−g(wi) w i 1 w i − L R ∗ g ( w i ) w_{i1}w_{i}-L R^{*} g\left(w_{i}\right) wi1wi−LR∗g(wi) 学习率的设置通常小于1
损失函数 损失函数衡量模型输出与真实的标签之间的差距 损失函数LossFunction Loss f ( y ∧ , y ) \operatorname{Loss} f\left(y^{\wedge}, y\right) Lossf(y∧,y)
代价函数CostFunction C o s t 1 N ∑ i N f ( y i , y i ) Cost\frac{1}{N} \sum_{i}^{N} f\left(y_{i}, y_{i}\right) CostN1i∑Nf(yi,yi)
目标函数objectiveFunction O b j C o s t Regularization Term正则项 \boldsymbol{Obj}Cost\text { Regularization Term正则项 } ObjCost Regularization Term正则项
其中正则项用来控制模型的复杂度防止产生过拟合的现象
其中损失函数指的是单样本的损失而代价函数指的是总体的损失的平均值 但是优化loss值与优化cost值在本质上是一样的
两种常见的目标函数
分别是用在回归任务中使用的均方误差损失和用于分类任务中的交叉熵损失函数。
MSE均方误差MeanSquaredError输出与标签之差的平方的均值常在回归任务中使用。计算公式 M S E ∑ i 1 n ( y i − y i h a t ) 2 n M S E\frac{\sum_{i1}^{n}\left(y_{i}-y_{i}^{hat}\right)^{2}}{n} MSEn∑i1n(yi−yihat)2
CECrossEntropy交叉熵交叉源自信息论用于衡量两个分布的差异常在分类任务中使用。计算公式 H ( p , q ) − ∑ i 1 n p ( x i ) log q ( x i ) H(p, q)-\sum_{i1}^{n} p\left(x_{i}\right) \log q\left(x_{i}\right) H(p,q)−i1∑np(xi)logq(xi)
其中p是真实的分布 q是模型预测的分布
信息熵描述信息的不确定度
自信息Ix-logPxpx是某事件发生的概率
信息熵所有可能取值的信息量的期望即 H ( x ) E x ∼ p [ I ( x ) ] − E [ log P ( x ) ] − ∑ i 1 N p i log ( p i ) H(\mathrm{x})E_{x \sim p}[I(x)]-E[\log P(x)]-\sum_{i1}^{N} p_{i} \log \left(p_{i}\right) H(x)Ex∼p[I(x)]−E[logP(x)]−i1∑Npilog(pi)
相对熵又称K-L散度衡量两个分布之间的差异。公式如下 D K L ( P ∥ Q ) E x ∼ p [ log P ( x ) Q ( x ) ] E x ∼ p [ log P ( x ) − log Q ( x ) ] ∑ i 1 N P ( x i ) ( log P ( x i ) − log Q ( x i ) ) H ( p , q ) − ∑ i 1 n p ( x i ) log q ( x i ) H ( x ) E x ∼ p [ I ( x ) ] − E [ log P ( x ) ] − ∑ i 1 N p i log ( p i ) \begin{array}{l} \begin{array}{l} D_{K L}(P \| Q)E_{x \sim p}\left[\log \frac{P(x)}{Q(x)}\right]E_{x \sim p}[\log P(x)-\log Q(x)] \\ \sum_{i1}^{N} \mathrm{P}\left(\mathrm{x}_{i}\right)\left(\log P\left(\mathrm{x}_{i}\right)-\log \mathrm{Q}\left(\mathrm{x}_{i}\right)\right) \\ H(p, q)-\sum_{i1}^{n} p\left(x_{i}\right) \log q\left(x_{i}\right) \end{array} \\ H(\mathrm{x})E_{x \sim p}[I(x)]-E[\log P(x)]-\sum_{i1}^{N} p_{i} \log \left(p_{i}\right) \end{array} DKL(P∥Q)Ex∼p[logQ(x)P(x)]Ex∼p[logP(x)−logQ(x)]∑i1NP(xi)(logP(xi)−logQ(xi))H(p,q)−∑i1np(xi)logq(xi)H(x)Ex∼p[I(x)]−E[logP(x)]−∑i1Npilog(pi)
H(p,qHP)D_KLPlIQ即 交叉熵信息熵相对熵
Softmaxa函数
在交叉熵验证中常用到的一个函数softmax函数 将数据变换到符合概率分布的形式 y i S ( z ) i e z i ∑ j 1 C e z j , i 1 , … , C y_{i}S(\boldsymbol{z})_{i}\frac{e^{z_{i}}}{\sum_{j1}^{C} e^{z_{j}}}, i1, \ldots, C yiS(z)i∑j1Cezjezi,i1,…,C
Softmax操作
取指数实现非负除以指数之和实现之和为1 在动手学深度学习中用于多分类问题并且会给出预测的结果值
权值初始化
权值初始化训练前对权值参数赋值良好的权值初始化有利于模型训练简便但错误的方法初始化为全0会导致网络的退化
随机初始化法高斯分布随机初始化从高斯分布中随机采样对权重进行赋值比如N~00.0130准则数值分布在u-30u3中的概率为99.73% 控制权重的尺度使得初始化的值不能落在饱和的区域。使得模型的训练不能变得更加的困难。
正则化方法 Regularization减小方差的策略通俗理解为减轻过拟合的策略 误差可分解为偏差方差与噪声之和。即误差偏差方差噪声之和 偏差度量了学习算法的期望预测与真实结果的偏离程度即刻画了学习算法本身的拟合能力 方差度量了同样大小的训练集的变动所导致的学习性能的变化即刻画了数据扰动所造成的影响 噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界 过拟合现象方差过大在训练集表现良好在测试集表现糟糕 两种常见的正则项
L1 Regularization Term: ∑ i N ∣ w i ∣ \begin{array}{l} \sum_{i}^{N}\left|w_{i}\right| \\ \end{array} ∑iN∣wi∣ L2 Regularization Term: ∑ i N w i 2 \begin{array}{l} \sum_{i}^{N} w_{i}^{2} \end{array} ∑iNwi2
从L2正则项由此引出了权值衰减的概念。
权值衰减weight decay O b j Cos t Regularization Term O b j Loss λ 2 ∗ ∑ i N w i 2 \begin{array}{l} O b j\operatorname{Cos} t\text { Regularization Term } \\ O b j\operatorname{Loss}\frac{\lambda}{2} * \sum_{i}^{N} w_{i}^{2} \end{array} ObjCost Regularization Term ObjLoss2λ∗∑iNwi2
若无正则项则对应的公式为 w i 1 w i − ∂ O b j ∂ w i w i − ∂ L o s s ∂ w i w_{i1}w_{i}-\frac{\partial O b j}{\partial w_{i}}w_{i}-\frac{\partial L o s s}{\partial w_{i}} wi1wi−∂wi∂Objwi−∂wi∂Loss
有正则项则对应的公式为 w i 1 w i − ∂ O b j ∂ w i w i − ( ∂ L o s s ∂ w i λ ⋆ w i ) w i ( 1 − λ ) − ∂ L o s s ∂ w i \begin{array}{l} w_{i1} w_{i}-\frac{\partial O b j}{\partial w_{i}}w_{i}-\left(\frac{\partial L o s s}{\partial w_{i}}\lambda^{\star} w_{i}\right) \\ w_{i}(1-\lambda)-\frac{\partial L o s s}{\partial w_{i}} \end{array} wi1wi−∂wi∂Objwi−(∂wi∂Lossλ⋆wi)wi(1−λ)−∂wi∂Loss
随机失活Dropout 优点避免过度依赖某个神经元实现减轻过拟合 随机dropout probabilityegp0.5失活weight0 注意事项训练和测试两个阶段的数据尺度变化测试时神经元输出值需要乘以p