首页 > 编程知识 正文

向量化执行引擎,神经网络输入归一化

时间:2023-05-05 10:26:16 阅读:167334 作者:4255

深层神经网络其实和以前的分类模型相比,他的网络层数更深,层数更多。 但有时也会引起过拟合的风险,参数太多,都容易拟合完记住样本。

model=keras.models.sequential (model.add ) keras.layers.flatten (input _ shape=[ 28,28 ] ) for_inRannage activation='relu ' ) (model.add (keras.layers.dense (10,activation='softmax ' ) ) ) ) ) )

model=keras.models.sequential (model.add ) keras.layers.flatten (input _ shape=[ 28,28 ] ) for_inRannage activation='relu ' ) (model.add (keras.layers.batch normalization (),' ' model.add ) Keras.Layers.dense ) model.add (keras.layers.activation (' relu ' ) ) ' model.add (keras.layers.dense ) 10,activation='soft

批量归一化可以缓解梯度消失现象,使其更快收敛.

下一个新的激活函数: selu

selu附带规范化

ReLU

Sigmoid激活函数现在几乎没有人使用。 大家都在用ReLU。

ReLU的优点:可以对抗梯度消失等;

自从ReLU成立以来,有各种各样的变形。 例如,有一个叫Leaky ReLU的东西。 Leaky ReLU是指小于0的地方我们不坐0,而小于0的地方坐0.01。 很快就会被问到为什么要坐0.01。 那么,参数结果出现了。 参数结果是小于0的地方。 我们坐一个

关于a,a的值通过training data被learn。

后来,有人想到了Randomized ReLU这一招。 那就像我所知,Randomized ReLU应该没有paper。 但是,有一次比赛的时候有人用了这个手段,并且取得了很好的结果,所以叫做这个Randomized ReLU。 他说我们今天比0小的地方骑得一样,也就是说,以前玩training的时候,你的每次都不一样,但是testing的时候你就把你fix住了。 他很像那个试图获得一点类似dropout的效果。

ELU

后来提出了名为ELU的ReLU的进化版。 ELU是Exponential Linear Unit的意思。 如果他在大于0的地方和其他ReLU的家人一样,不同的是小于0,那是乘方减去1,是其激活函数的输入,所以假设0的时候,可以想象为=0,而当他走向负无穷大的时候

SELU

上面的ELU要安装多久? 后来,出现了一种叫SELU的新方法。 它对欧盟发生了新的变化。 也就是说,现在在每个值之前挂一个in,然后他告诉你in和a应该设多少。

他的特征是:

那个值有正负。 这个特性没关系,因为在整个ReLU的family中,除了第一个最原始的ReLU以外都是负的。

有Saturation Region :其他ReLU没有Saturation Region (饱和区域),但他有Saturation Region。 但是,ELU其实也有Saturation Region。 因为,SELU只是坐在ELU上。 坐这个有什么不同? 上,在某个区域的倾斜度更大,意味着你进入了比较小的变化,通过Region后,他会把你的变化放大1.0507700987倍。 因此,其输入能量被放大。 而且,这不是他ELU的特征。

model=keras.models.sequential (model.add ) keras.layers.flatten (input _ shape=[ 28,28 ] ) for_inRannage activation='selu ' ) #selu附带归一化,在缓和坡度消失的模型(keras.layers.dense (10,activation='softmax ' ) )下添加DDD

model=keras.models.sequential (model.add ) keras.layers.flatten (input _ shape=[ 28,28 ] ) for_inRannage activation='selu ' ) #dropout用于防止过拟合,a—dropout保证平均值和方差不变,归一化性质不变,#rate表示废弃单元数量的百分比。 0.5点网络最大model.add (keras.layers.alpha dropout (rate=0.5 ) ) #selu是标准化的,减少了梯度消失

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。