Loss Function and Optimization
- 损失函数
- 如何优化
- 线性分类器
损失函数是量化的评估线性分类器的标准。损失函数是优化的目标。
损失函数的定义:
当初始化W很小的时候,S–>0,此时L–>c-1(其中c代表类的个数)
线性代数
有限字长
当我们在训练集上训练出来的分类器训练的很好的时候,这时候会出现一个过拟合效应,原因是我们的训练集并没有很好的表现现实中的状况。接下来就需要避免过拟合问题。
- 加入约束项(惩罚函数)
lambda 属于一个超参数。
奥卡姆剃刀
复杂性带来的多样式是一些系统适应环境的一种方式,比如人、人类社会 - SoftMax 分类器:评分–>概率问题
这个score有了一个信息学意义,即概率分布
一个单样本问题转化为 - 整合起来如何找到最好的W?
最优化方法
- 随机搜索(random search),就是暴力搜索
超级非凸不一定是不连续的–>2 - 梯度下降
超参数 step-size 步长 - 随机梯度下降
为了缩减计算量,我们认为样本空间足够的大,我们在其中随机的抽取一个小的BATCH。N is a minibatch
BP
链式法则
upstream gradient & local gradient(这个是要会算的)
分支处的梯度可以直接加起来,因为其是线性的
雅克比
problem
- KL散度的定义
- accurate 是如何算出来的以及loss是如何算出来的????
- 一些计算概念
训练过程
- 一次性准备:激活函数,数据预处理,权重初始化,正则化,梯度
- 训练过程:参数更新,超参数(网络参数选项)
- 验证评估:模型整合
激活函数
all kinds of activation functions
sigmoid and tanh 有啥区别呢????
- sigmoid 很容易饱和,杀死梯度;只能往一个方向走(this is also why you want zero-mean data);计算量稍大
数值计算是一个很重要的问题 - TANH
- relu :simple 但是存在无法更新的区域
- leaky relu :keep properties ; Prelu;这两个的表现很好
- Elu :不会选
- Maxout 计算量太大,不会选
数据预处理
- preprocess the data
零均值(随机采样,一个很重要的思路;统计意义上,一幅图像的均值和很多张图像的均值相差不大 )和归一化为了更快地收敛
PCA and Whitening(图像一般不会再做了)
假定小的随机数:值不停地在衰减,所以每一层衰减的很快。求和抵消不了指数衰减(?)。bp传不回去
比较大的随机数:产生震荡,所有的层都几近饱和,所以梯度也会为0
xavier初始化(激活函数是tanh),每个数除以根号下N ,求方差,后面还会有平方项
用relu的话/根号下2n
batch normalization
训练过程
- double check that the loss is reasonable
- learning rate 选择要使loss减小
- accurate 是如何算出来的以及loss是如何算出来的???
- 1e-3—1e-5之间学习率经验值
random search vs. grid search
- 大量的依赖于经验
- update and values的比值约为0.01经验值
掌握它的思路是发现新问题的一个重要因素
满足自私的唯一的办法就是利他