Deep Neural Network Training

一.Loss Function(损失函数) and Optimization(优化)

1.线性分类器:损失函数是评估分类器分类效果的,针对任意样本都可行
找到最小化损失函数的优化方向,找到最优参数
在这里插入图片描述
在这里插入图片描述
加入约束项:防止模型在训练集上过拟合
softmax 分类器:从评分–>概率问题
再引入log,变成信息的相关量 KL距离 相对熵

Q:KL散度的定义

KL散度就是相对熵
https://zh.wikipedia.org/wiki/相对熵
https://blog.csdn.net/ACdreamers/article/details/44657745

2.如何找到最优的W?
第一种方法:随机搜索
第二种方法:follow the slope 搜索空间有一定规律可寻 梯度下降
用数值梯度很慢,并且也不准确
用解析的方法 : 精确,很快,error-prone
随机梯度下降(SGD:stochastic gradient descent):
随机是指随机从训练集中取样 逼近

二:反向BP过程

梯度是线性算子,

考试:推到BP过程中的矩阵的计算

三:训练过程

一次性准备:激活函数,数据预处理,权重初始化,正则化,梯度
训练过程:参数更新,超参数
验证评估:模型整合
1.激活函数:为了引入非线性 sigmoid,tanh,ReLU,Leaky ReLU,Maxout,ELU
sigmoid:阈值[0,1],有类似与神经元的性质 梯度消失,不是0为中心,梯度只允许朝一个方向更新,exp计算量大
tanh:以0为中心,更快的饱和,梯度消失
ReLU:永远不会饱和,收敛速度快,没有以0为中心,有一半的权重没有被更新
选择数据不在dead relu的区域
Leaky ReLU:不会进入dead的区域 PReLU:将max(ax,x)a是可以训练的
Maxout:去最大值

  • 2.预处理:零均值,标准化:为了更快的收敛 PCA
  • 3.权重初始化:假定小的随机数

如果w很小:加的效应抵消不了乘,导致所有的输出都基本为0,BP也没法做
如果w很大:很快的饱和,梯度也为0
Xavier 初始化:
tanh:
w = np.random.randn(fan_in,fan_out)/np.sqrt(fan_in)
Relu:
w = np.random.randn(fan_in,fan_out)/np.sqrt(2/fan_in)
4.batch normalization:零均值,单位方差
5.训练过程的把握:
e-3 e-5

什么情况下cost不变,但是accuracy也会增加?

6.超参数的优化:在log space上
随机搜索,网格搜索:

7.归一化
tensor: (N,C,H,W)
normalization:一般对N做,不对C做,也可以对H,W做
根本上的不同是:把分布移到一个合理的位置

8.优化方法:

条件数是什么,海森矩阵是什么:

predicate condition是什么:

在这里插入图片描述
SGD:鞍点(梯度很小) 问题 局部最优点,陷在其中,很难出来
高维空间的鞍点更容易出现 维度越多,不同方向的梯度可能会很小,形成一个坑
SGD + Momentum
相当于对gradient做了平滑,抹去了一些噪声 白噪声高斯分布
会带着之前的动量,然后容易跳出鞍点
AdaGrad:
平方之后没有方向了 梯度大
Adam:现阶段比较好

9.正则化
加入罚项:
L2:ΣΣW^2
L1
dropout:随机扔掉一些neuron,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值