步骤:1、计算输出层的总误差(前向传播)每个输出层神经元分别计算差评分后求和损失函数可以是MSE2、对倒数第一层的某个权重求偏导中间有多层复合函数,使用链式求导求出偏导值3、使用梯度下降更新该权重梯度下降公式w=w-a*w'更新该权重,a为速率4、重复1-3步骤更新所有权重5、重复第1步,计算总误差。直到迭代次数或者误差达到某个阈值停止
反向传播的是误差,把误差逐步分解给前面神经元,目的是更新权重参数。换句话说只要想更新某个权重则需要先知道权重相连的隐藏层误差。通过损失函数得到损失值后,要进行权值的更新以降低误差值。把前向传播函数和与真实值组成的损失函数看成待优化的目标函数,朝参数梯度下降的方向更新权值就可以优化减小该目标函数值。过程:1、对损失函数和倒数第一层的某个权值求偏导2、求出偏导使用梯度下降公式w=w-a*w'更新该权重,a为速率。3、重复1,2更新所有权值。求隐藏层误差的时候要使用到与之相连的(右侧的)权重矩阵的转置。4、用更新后的所有权值前向传播,并计算误差值,然后重复整个过程直到误差稳定或在允许范围内。
数据幅度稳定缺点:1、梯度消失误差反向传播算法的基础是导数的链式法则,也就是多个导数的乘积,sigmoid的导数大多都趋近于饱和(自变量无穷大,导数趋近于0),相乘会越来越小,随着神经网络层数的加深,梯度后向传播到浅层网络时,基本无法引起参数的扰动,也就是没有将loss的信息传递到浅层网络。2、收敛较慢不是0均值(即zero-centered),受输入影响(持续为正),可能会超某一方更新,造成方向捆绑。zigzag现象?。
3、涉及到指数计算
是sigmoid的变形。优点:相比sigmoid解决了0均值问题,收敛速度提升。缺点:依然有梯度消失和指数运算问题。
特点是:全区间不可导,分成两段局部可导。
优点:1)不饱和;不会造成梯度消失2)计算效率高;没有指数计算3)收敛速度快。适合用于后向传播。ReLU在反向传导时,能够将梯度信息“完完全全”地传递到浅层网络
缺点:1、输出不是zero-centeredzigzag学习曲折现象?2、DeadReLUProblem(神经元坏死现象)3、数据的幅度会随着模型层数的增加不断扩张。ReLU不会对数据做幅度压缩,最终影响模型的表现
神经元坏死过程:->神经元之后梯度为0->神经元坏死->不再对任何数据响应
独立同分布:多个随机变量服从同一分布,并且互相独立。
内部协变量漂移:(internalcovariateshift)训练过程中参数变化引起后面每一层输入数据分布改变的现象。注意原始数据输入X有一个整体分布(每个特征X_i的输入有自己的分布,整体也有一个分布)不可以改变,整体分布可以用协变量之间的关系来表示。
训练收敛慢的原因:整体分布逐渐往非线性激活函数的两端靠近,这导致了反向传播时浅层神经网络的梯度消失,导致了参数更新缓慢。
BN的过程:通过“规范化”,将每个隐层输入的分布强行拉回到均值为0方差为1的标准正态分布上去,这使得输入值落回到非线性激活函数”敏感“区域。在数据输入隐层前进行规范化。“规范化”步骤,求均值,求方差,缩放平移。
归一化的坏处以及解决:归一化会破坏数据的分布,使网络的表达能力下降。缩放平移,引入参数,,对输出的分布又进行了“恢复”,,通过训练得到。每个BN实例移动的参数都不同,目的是找到一个线性和非线性的平衡点,既得到非线性较强表达能力的好处,又避免太靠近非线性的饱和区域使得收敛速度变慢。
我们看到的神经网络图仅仅是方程模型的图形化表示,所有数据都使用了该模型图进行计算。假设X表示样本,训练样本有n个特征,m个样本。输入层神经元个数与特征个数n相等,跟样本个数无关。输入层权重W的shape与输入层和下一个输出层神经元个数有关:W其中一个维度是输入样本的特征维度n,另一个维度是下一个输出层神经元的个数。W*X表示对某个输入的样本作用权重:所有样本数据X是共享权重W。样本X有n个特征,每个特征有自己的权重模型卷积神经网络—CNNCNN最擅长的就是图片的处理。它受到人类视觉神经系统的启发。
CNN有2大特点:
在CNN解决的两个问题
CNN如何解决数据量大的问题?降维
CNN由3个部分构成:1、卷积层提取图像中的局部特征2、池化层大幅降低参数量级(降维),防止过拟合3、全连接层类似传统神经网络的部分,用来输出想要的结果。
卷积核:卷积核像过滤器,来过滤图像的各个小区域具体应用中,往往有多个卷积核。每个卷积核代表了一种图像模式(底层纹理),如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。卷积核输出卷积特征(ConvolvedFeature)。
池化层:池化层简单说就是下采样,他可以大大降低数据的维度。池化层的输入是卷积特征(ConvolvedFeature),输出是PoolFeature。采样密度可以通过采样窗口来控制。
多层结构:CNN并非只是上面提到的3层结构。举例,LeNet-5:卷积层–池化层-卷积层–池化层–卷积层–全连接层
视觉系统的信息处理中,可视皮层是分级的1、原始信号摄入(瞳孔摄入像素,pixels)2、初步处理(大脑皮层某些细胞发现边缘和方向,EdgeDetectors)3、抽象(大脑判定,眼前的物体的形状,是圆形的,PrimitiveShapeDetectors)4、进一步抽象(大脑进一步判定该物体是只气球,HigerLevelVisualAbstractions)
为什么需要RNN?典型的机器学习深度学习逻辑逻辑都是一个输入对应一个输出,比如卷积神经网络–CNN和普通的算法大部分都是输入和输出的一一对应。
RNN的基本原理:每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。
RNN存在的短期记忆问题:短期的记忆影响较大,但是长期的记忆影响就很小。
RNN的优化算法:LSTM只保留重要的信息,而不是死板的越晚的输入影响越大,越早的输入影响越小。
生成对抗网络(GAN)由2个重要的部分构成:
过程:第一阶段:固定「判别器D」,训练「生成器G」判别器识别率小于50%时候,判别器已经降服不了生成器了。第二阶段:固定「生成器G」,训练「判别器D」到「生成器G」已经无法骗过「判别器D」的时候,「判别器D」越来越强大。循环阶段一和阶段二
不需要数据,仅仅需要不停的常识来代替已有的数据。
游戏为例,如果在游戏中采取某种策略可以取得较高的得分,那么就进一步「强化」这种策略,以期继续取得较好的结果。