卷积神经网络的深入理解 您所在的位置:网站首页 cnn是做什么的 卷积神经网络的深入理解

卷积神经网络的深入理解

2023-05-27 15:52| 来源: 网络整理| 查看: 265

卷积神经网络的深入理解-归一化篇 标准化/归一化(神经网络中主要用在激活之前,卷积之后)(持续补充)归一化在网络中的作用1、线性归一化(进行线性拉伸,可以增加对比度)2、零均值归一化((像素值-均值)/方差)3、Batch Normalization(批标准化方法)Batch Normalization的好处(提高训练速度,稳定模型训练):Batch Normalization的缺点及改进 4、其它归一化方法

标准化/归一化(神经网络中主要用在激活之前,卷积之后)(持续补充) 归一化在网络中的作用

1、去除量纲的干扰,防止数值过小的特征被淹没; [年龄:20 ,身高:180,收入:10000],收入和年龄相差较大,训练网络的时候可能会将年龄这个特征淹没。 2、保证数据的有效性; 稳定网络训练时前向传播和反向传播过程的梯度,网络训练本质上训练的是参数,当数据差异过大(比如输入一个是1,另一个是100000),模型参数会不稳定,模型难以收敛。 数据在未进行归一化时,可能会有大部分处在激活函数的饱和区,这样会影响前向传播的激活值,同时也会影响反向传播的梯度。当进行归一化后,如下图,归一化后的数值能够很好的映射到激活函数上。 在这里插入图片描述 画图代码

import math import matplotlib.pyplot as plt import numpy as np m = 0 # 均值 n = 1 # 标准差 x = np.linspace(-5,5) y = np.exp(-(x-m)**2/(2*n**2))/(math.sqrt(2*math.pi)*n) x_sigmoid = np.linspace(-10,10) y_sigmoid = 1/(1+np.exp(-x_sigmoid)) plt.plot(x,y,label='standard normal distribution') plt.plot(x,y_sigmoid,label='sigmoid') plt.legend() plt.grid() plt.show()

3、稳定数据的分布。 当深层网络中数据分布若在某一层开始有明显的偏移,会使得接下来这一问题加剧。

1、线性归一化(进行线性拉伸,可以增加对比度)

在这里插入图片描述

2、零均值归一化((像素值-均值)/方差)

在这里插入图片描述 经过处理的数据符合标准正态分布。

3、Batch Normalization(批标准化方法)

这里给一个链接Batch Normalization 学习笔记,讲的很清楚,这里我先暂且空下,后续补充。

Batch Normalization的好处(提高训练速度,稳定模型训练):

这里给一个链接Batch Normalization 学习笔记,讲的比较清楚,但具体代码中处理的过程不太详细下面给出我的理解(图片制作不易,如需原图请私信联系): 在这里插入图片描述 1、减轻了对参数初始化的依赖,前向激活值和反向梯度更加有效; 2、平滑了优化目标函数曲面,梯度更加稳定,可以使用更高的学习率,从而跳出局部极值,增强了泛化能力。

Batch Normalization的缺点及改进

缺点: 1、要求固定的Batch长度和均匀采样; 2、当batch过小时计算不稳定。 改进: 采用Batch Renormalization(后续遇到进行补充)。先使用Batch Normalization训练网络到一个相对稳定的状态,稳定后采用Batch Renormalization。

4、其它归一化方法 方法(特点)归一化范围Batch Normalization(通用)N*H*WLayer Normalization(适合非特定长输入)C*H*WGroup Normalization (适合小的batch输入)G*H*WInstance Normalization (适合图像生成以及风格迁移类应用)H*W


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有