UDA代码解析(2)models

2021SC@SDUSC

上周解析了UDA代码中的main.py文件,接下来这周解析models.py文件中的内容。

 models.py主要是关于Transformer Model Classes & Config 转换器模型类和配置类。

首先是定义的Config类,Config类里是定义的BERT模型的参数,相当于设置这个神经网络的各项参数和输入项的参数 。

 

 接下来是GELUs激活函数,GELUs函数不是常见的激活函数,但是效果更好。神经网络激活函数 Gaussian Error Linear Units(GELU),GELUs是在激活中引入了随机正则的思想,是一种对神经元输入的概率描述,直观上更符合自然的认识,同时实验效果要比Relus与ELUs都要好。

查阅资料知道,GULEs函数可以看作是dropout、zoneout、Relus的综合。GELUs对于输入乘以一个0,1组成的mask,而该mask的生成则是依概率随机的依赖于输入。假设输入为X, mask为m,则m服从一个伯努利分布( Φ ( x ) \Phi(x) Φ(x), Φ ( x ) = P ( X < = x ) , X 服 从 标 准 正 态 分 布 \Phi(x)=P(X<=x), X服从标准正太分布 Φ(x)=P(X<=x),X服从标准正太分布),这么选择是因为神经元的输入趋向于正态 分布,对模型随机正则,去拟合化。

GELU(x)=xP(X<=x)=xΦ(x)

GELU(x)=0.5x(1+tanh[2/π​(x+0.044715x3)])

在相关论文中论证了GULEs 的激活效果比Relu等常见激活函数的效果更好。

LayerNorm:LayerNorm前向传播,LayerNorm的主要作用是做归一化,LayerNorm是对同一样本的不同维特征间做归一化,即标准化某一样本特征的分布。

y=self.gamma∗σ2+ϵ​x−μ​+self.beta

计算公式如下:

å¨è¿éæå¥å¾çæè¿°

å¨è¿éæå¥å¾çæè¿°

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值