集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:400-111-8989  |   联系客服   |
当前位置:主页 > 培训课程 > 人工智能 >

成都哪个培训机构有人工智能?讲解批量归一化

发布者: 成都达内     浏览次数:     发布时间:2020-09-10 14:00:52

成都哪个培训机构有人工智能-现在的神经网络通常都特别深,在输出层向输入层传播导数的过程中,梯度很容易被激活函数或是权重以指数级的规模缩小或放大...

  现在的神经网络通常都特别深,在输出层向输入层传播导数的过程中,梯度很容易被激活函数或是权重以指数级的规模缩小或放大,从而产生“梯度消失”或“梯度爆炸”的现象,造成训练速度下降和效果不理想。

  如何避免或者减轻这一现象的发生呢?归一化就是方法的一种。归一化将网络中层与层之间传递的数据限制在一定范围内,从而避免了梯度消失和爆炸的发生。下面介绍一种最基本的归一化:批量归一化(BN, Batch Normalization)。另外还有层归一化(LN, Layer Normalization)和权重归一化(WN, Weight Normalization),和BN大同小异。

  1 批量归一化

  批量归一化层的是这样定义的,当使用批量梯度下降(或小批量)时,对前一层的输出在批量的维度上进行归一化,即

  成都哪个培训机构有人工智能?讲解批量归一化

  其中nn 是输入批量,Xt−1iXit−1 是前一层输出批量中的第ii 个,εε 是为避免0除而设置的较小数。以上都是按元素进行的操作。这样做的显式优点在于,大部分的输出都被映射到了-1和1之间,而诸如sigmoid激活函数,在这个区间内的梯度是最大的,从而避免因激活函数值的饱和而产生的梯度消失。并且由于层输出的归一化约束,反向传播的累积不会特别显著,梯度爆炸也得以避免。

  但是,如果仅仅进行以上操作,网络的拟合能力就会下降。这是因为,神经网络强大的拟合能力在于激活函数的非线性。经过以上操作,激活函数的输入通常都集中在-1和1之间,而sigmoid函数在这区间内的导数变化率是比较低的,或者说是比较线性的。为了防止这一点,BN在这基础上再加一个“反向”操作,将权重输出再乘上自学习的标准差和均值,映射到激活函数曲率(或者说二阶导数绝对值、导数变化率)相对更大的位置,在获得较大导数的同时,保留激活非线性。公式如下:

  成都哪个培训机构有人工智能?讲解批量归一化

  其中γ,βγ,β 都是模型中用反向传播学习的参数。这样一来,BN层可以自己“决定”将输出映射到合适位置。

  另外,在训练结束进行推理时,我们输入模型的通常都是单个样本,毕竟一个样本是不能求样本方差的。所以BN使用滑动平均(moving average)来保存所有输入的均值和方差,以用于对单一输入的归一化。

  1.1 Keras中BN的使用

  Keras中已经实现了BN层可以直接使用,而不用我们自己重新写这个轮子。使用方式如下:

  x = keras.layers.BatchNormalization(axis=-1,#对输入的哪个轴执行BN

  momentum=0.99,#滑动平均和方差的动量

  epsilon=0.001,#防止0除的较小值

  center=True,#是否使用beta调整归一化后的输出均值

  scale=True,#是否使用gamma调整归一化后的输出方差

  trainable=True)(x)

  其中要注意axis,归一化操作是针对axis维度指定的向量进行的。比如当BN层的前一层是二维卷积层,输出的第一维是批量,然后是图像宽高,最后一维是通道。假如BN层axis=-1,均值就是整个批量的所有像素对应的通道向量的平均,方差的计算也是以这个维度进行。对于下面的代码:

  from keras import layers,Model,Input

  Input_img = Input(shape = [320,320,3])

  x = layers.BatchNormalization(axis=-1,

  momentum=0.99,

  epsilon=0.001,

  center=True,

  scale=True)(Input_img)

  model = Model(Input_img,x)

  model.summary()

  summary()输出可训练参数和不可训练参数各6个。可训练参数就是γ,βγ,β ,不可训练参数是滑动平均所保存的均值和方差。另外,如果将BN层的traninable标记设置为False,那么γ,βγ,β 就会被固定,不会被训练;而如果设置为True,则只有γ,βγ,β 会被训练,另外6个不可训练参数依然是不可训练状态,因为它们是通过滑动平均而不是反向传播来更新的。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:400-111-8989

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:400-111-8989

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:400-111-8989

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:400-111-8989

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:400-111-8989

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:400-111-8989

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:400-111-8989

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56 蜀ICP备18021046号-3