1. 2015年,ILSVRCC比赛中,ResNet错误率首次降到5%以下,战胜了人类。
2. 机器学习中数据的类型
图片:
1. 包含了很多像素点,一个像素一个字节,值为0~255
2. 图像处理中,处理不同图片大小,resize可以用最近邻插值,双线性插值法。
3. 处理流程图
HSV: Hue(色相),Saturation(饱和度),V(Brightness Value)明度。Jittering就是在这三个值上做5~10%随机增减再返回RGB。
文本:
- 分词: 连续文本根据标点空格分成单词列表。
- 去停词: 去掉出现频率大,没有啥意义的单词,比如吧,哦,了,it, of ,the …
- 正则化:文本统一化,英文–>中文
- 词嵌入:n个单词,每个单词对应m长的向量==>n*m矩阵。经验:m 约等于n的四次方根的1到10倍,然后转化成最近的2的幂。
3. 可以认为机器学习就是得到一种概率分布(联合分布 or 条件分布)
Pθ(X,Y) or
Pθ(Y∣X)
条件概率分布,也就是给定X数据集,得到你认为他们的标签们的概率分布。
联合概率分布,就是说 我得到的是 数据集和标签 粘连在一起,同为属性情况下的概率分布。
P(X,Y)=∫P(Y∣X)P(X,Y)dX
4. 生成式模型(Generative Model)和判别式模型(Discriminative Model)
生成式模型: 联合概率分布
判别式模型: 条件概率分布
5. 判别式模型虽然一般比生成式模型效果好,但是不能通过模型任意产生新的数据。
常识:
-
可以得到的信息多—> 熵就低。 因为,可以得到信息,那么就越有一定的规则,有序,即熵低。反之,无序,无新信息可获取,熵高。比如,分子运动高度无序,熵高。 一切事物趋于无序,趋于熵增。
-
概率密度分布相对集中, 即(可提供给我们的信息)多, 信息熵就小。 因为,如果概率密度集中,等同于我们知道一个点概率,我们就可以知道别的点很可能也出现。
-
证明
H(X)=−∫P(X)logP(X)dX
H(X,Y)=−∫P(X,Y)logP(X,Y)dXdY
H(Y∣X)=−∫P(X,Y)logP(Y∣X)dX
因此,
H(Y∣X)=H(X,Y)−H(X)
可以看到条件熵更低,能获得的信息更多。对我们更有益。
6.训练集,验证集, 测试集 划分
机器学习中可以考虑: 0.7, 0.2, 0.1
深度学习中可以考虑: 0.9 0.5, 0.5
7.避免过拟合
- 正则化(L1—> 拉普拉斯先验分布 L2–>高斯先验分布)
- Early Stopping
- Dropout 神经元
总之从 数据集本身,正则,换模型复杂度上入手。
8. 激活函数
激活函数就是为了引入非线性!
三种常用:
σ′=σ(x)(1−σ(x))
tanh′(x)=1−tanh2(x)
ReLu 取值(0,+inf) 导数 :(0, 1)
Sigmoid 取值(0,1) 导数(0, 0.25)
Tanh 取值(-1,1) 导数(0, 1)
回归任务: 线性输出任何值, 损失函数为MSE
分类任务: 线性输出后,加入非线性比如softmax层,再输出结果标签。 损失函数是Cross Entropy
softmax:
输入指数函数后,指数归一化,就是对应的概率了。
pi=∑k=1Nexkexi
思考:
如果有个
exk很大,大到超出了浮点数范围,
因此一般会这样:
pi=∑k=1Nexk−xmaxexi−xmax
xmax=max(x1,x2,...,xN)
思考:
softmax只有两类的时候就是sigmoid
9. 梯度消失和梯度爆炸
一开始权重过大,
σ′∗w>1,导致爆炸
一开始权重过小, 反向传播后, 最前面几层,梯度消失。(sigmoid , tanh)
10.SGD, Momentum, AdaGrad, Rmsprop, Adam
SGD : 批次随机梯度下降
Momentum:
wt+1=wt−mt
mt=γ.mt−1+αdwtdL
AdaGrad: 类似于NLMS, 记忆梯度平方
Gt=i=1∑t(dwidL)2
wt+1=wt−Gt+ϵ
αdwtdL
RMSpop: 不用全部记忆,用移动指数平均。
vt=γvt−1+(1−γ)(dwidL)2
wt+1=wt−vt+ϵ
αdwtdL
Adam:结合动量和速度