Advertisement

[6]Training Neural Network—训练神经网络

阅读量:

文章目录

  • 激活函数的选择
  • 数据预处理步骤
  • 网络权重初始化策略
  • 批量归一化应用
  • 优化训练过程中的学习机制
  • 超参数优化配置

激活函数

image-20210707223145843
image-20210707222504709

在-10和10 时候导数会变成接近0

image-20210707222827695

在机器学习算法中, 不以0为中心, 在所有输入均为正或均为负的情况下, 权重参数w将逐渐趋向于最佳状态. 然而这会导致冗长的过程. 例如, 在图形表现得不够理想的情况下(如蓝色曲线所示), 导数更新的问题可能导致难以高效更新权重参数.

image-20210707223350064
image-20210707223618454

正无穷输入不会饱和,导数不会为0,计算的效率很快

image-20210707223831149

负半部分还是饱和的,有一半的导数没意义了。并且不是0为中心

image-20210707224052740
image-20210707224222931
image-20210707224338298
image-20210707224448875

数据预处理

image-20210707224747176

一般将数据归零化,标准化

image-20210707224843202

在机器学习领域中,也有可能存在更为复杂的概念,例如主成分分析法(PCA)或白化等技术,然而就具体而言,当处理图像时,我们主要依赖于零均值的方法来进行预处理;同时也不涉及任何其他的复杂化步骤;这是因为实际上并非渴望获得所有输入样本的像素值映射结果,而是将这些像素值映射到所关注的新特征的空间中;在此基础之上,默认情况下我们会仅对空间维度进行卷积运算,并在原始图像的空间位置上保留相应的结构信息

image-20210707231326997

初始化网络权重

image-20210707231521607

他们会做相同的事,获得相同的导数

image-20210707231929466

随机

image-20210707232154116
image-20210707232420627

因为x很小,我们的权重导数很小,而且基本不更新,最后崩溃

image-20210707232718815

太大时候会饱和,导数为0

image-20210707232853751

**使用xavier初始化 **

image-20210707233309886

因为relu会kill负的一半

image-20210707233538883

可以用这个再除以2,解决

image-20210707233632148

关于W初始化的一些论文

批量归一化

想要把activations保持在我们想要的高斯范围内

image-20210707234328027
image-20210707234517909
image-20210707234557657
image-20210707235211459

可以灵活的设置学习参数

image-20210707235425827

照顾学习过程

image-20210708081219933
image-20210708081231614
image-20210708081256870

首先是0正则化,选取小部分数据进行损失检查,损失的都是数据损失

image-20210708081345261

开启正则化,希望看到损失增加,也确实增加

image-20210708081654946

还是从小的数据集开始,看是否拟合,

image-20210708083447136

学习率是很关键的超参数,低学习率

image-20210708083315621

高学习率

超参数的优化

image-20210708083740959

做交叉验证

先进行几个部分的验证,再进行细化的验证

全部评论 (0)

还没有任何评论哟~