宿州建设企业网站公司,做网站一般什么价格,网站后台慢,嘉兴网络建设深度网络微调
深度学习#xff08;DL#xff09;是一门用于从数据中提取信息的编程语言
1、一些值会在之后被数据填充
2、可微很多设计模式#xff0c;从层到网络结构
Batch Normalization#xff08;批量归一化#xff0c;BN#xff09;
标准化数据使线性方法的损失函数…深度网络微调
深度学习DL是一门用于从数据中提取信息的编程语言
1、一些值会在之后被数据填充
2、可微很多设计模式从层到网络结构
Batch Normalization批量归一化BN
标准化数据使线性方法的损失函数更平滑
1、平滑∣∣▽f(x)−▽f(y)∣∣2≤β∣∣x−y∣∣2||\triangledown f(x)-\triangledown f(y)||^2\le\beta||x-y||^2∣∣▽f(x)−▽f(y)∣∣2≤β∣∣x−y∣∣2梯度的大小小于x与y之间距离的β\betaβ倍
2、小的β\betaβ值允许一个更大的学习率
3、不会帮助深度神经网络批量归一化BN把中间内部层的输入也进行标准化
步骤
变形reshape
把输入X变成一个2D的矩阵若不是2D的
X∈Rn∗c∗w∗h→X′∈Rnwh∗cX\isin\reals^{n*c*w*h}\to X\isin\reals^{nwh*c}X∈Rn∗c∗w∗h→X′∈Rnwh∗c(batch n,channel c,width w,height h)标准化Normalization
把每一列标准化
xˆj′←(xj′−mean(xj′))/std(xj′)\^{x}^{}_j\gets(x^{}_j-mean(x^{}_j))/std(x^{}_j)xˆj′←(xj′−mean(xj′))/std(xj′)recovery
有Y′YY′其中yj′γjxˆjβjy^{}_j\gamma_j\^x_j\beta_jyj′γjxˆjβj作为第j列γj和βj\gamma_j和\beta_jγj和βj是可学习的参数输出YYY通过reshapeY′YY′将其还原回之前的格式
代码
def batch_norm(X,gamma,beta,moving_mean,moving_var,eps,momentum):if not torch.is_grad_enabled():X_hat (X-moving_mean)/torch.sqrt(moving_vareps)else:assert len(X.shape) in (2,4)if len(X.shape)2:mean X.mean(dim0)var ((X-mean)**2).mean(dim0)else:mean X.mean(dim(0,2,3),keepdimTrue)var ((X-mean)**2).mean(dim(0,2,3),keepdimTrue)X_hat (X-mean)/torch.sqrt(vareps)moving_mean momentum*moving_mean (1.0-momentum)*meanmoving_var momentum*moving_var (1.0-momentum)*varY gamma*X_hat betareturn Y,moving_mean,moving_varLayer Normalization层归一化
若应用于RNNBN在每个时间步需要维持离散的移动数据在每个时间步学习的那些参数不要共享
在推理时处理很长的数据时是有问题的层归一化reshape输入X∈Rn∗p→X′∈Rp∗nX\isin\reals^{n*p}\to X\isin\reals^{p*n}X∈Rn∗p→X′∈Rp∗nX∈Rn∗c∗w∗h→ X′∈Rcwh∗nX\isin\reals^{n*c*w*h}\to\ X\isin\reals^{cwh*n}X∈Rn∗c∗w∗h→ X′∈Rcwh∗n其他的与BN相同
1、在每个样例中归一化直到目前的时间步
2、在训练和推理时是一致的
3、多在Transformers中应用