Wuenda's class(2)


p1.Train/dev/test sets

Train:训练集,用来训练各种模型

dev:验证集(development set)/Hold-out cross validation set,评估这些模型,通过迭代选出最优模型

test:测试集,需要对最终选定的神经模型进行最优估计(可选)

[^小数据集Train:dev:test=6:2:2 数据集较大(eg:100万data验证集和测试集可能只达到0.25%)]:

dev,test选择的数据来源需相同,才能有更好的效果

p2Bias/Variance偏差/方差

high bias:underfitting

high variance: overfitting

[^Train set error 小,dev set error大说明过拟合方差大 ;Train set error 大,dev set error小说明欠拟合偏差大]:

p3机器学习基础

P4Regulation

P5How does regularization prevent overfitting

if正则化参数设置的足够大,权重矩阵被设置为接近为零,基本上消除了隐藏的影响。这样就会从过拟合的状态接近高偏差的状态。

但会存在一个中间值,即“Just Right”状态。消除或减少许多隐藏单元的影响,神经网络会越来越接近逻辑回归,所有隐藏单元依然存在,但是神经网络变简单了。

如果正则化参数变得很大,参数W很小,z也会相对变小,此时忽略b的影响,z会相对变小,实际上,z的取值范围很小,这个激活函数,也就是曲线函数tanh会相对呈线性,整个神经网络会计算离线性函数近的值,这个线性函数非常简单,并不是一个极复杂的高度非线性函数,不会发生过拟合。

Dropout regularization(主要应用在cv)

[^keep_prob:保留每一个节点的概率。]:

如果某些层需要去除过拟合,那么keep_prob就需要设置的大一些。

p9归一化输入

一种加速神经网络训练速度的方法。

右图比左图的代价函数更容易找到min值,有图需要梯度下降迭代寻找。

p10Vanishing/exploding gradients

Vanishing gradients:接近于输出层的隐藏层由于其梯度相对正常,权值更新也相对正常。越靠近输入层,由于gradients消失,会导致靠近输入层权值更新缓慢或者停止。此时就导致训练时只等价于后面几层的浅层网络的学习。

p9.1 换用Relu、LeakyRelu、Elu等激活函数

ReLu:让激活函数的导数为1

LeakyReLu:包含了ReLu的几乎所有有点,同时解决了ReLu中0区间带来的影响

ELU:和LeakyReLu一样,都是为了解决0区间问题,相对于来,elu计算更耗时一些(为什么)

具体可以看关于各种激活函数的解析与讨论

p9.2 BatchNormalization

BN本质上是解决传播过程中的梯度问题,具体待补充完善,查看BN

p9.3 ResNet残差结构

具体待补充完善,查看ResNet

p9.4 LSTM结构

LSTM不太容易发生梯度消失,主要原因在于LSTM内部复杂的“门(gates)”

p9.5 预训练加finetunning

此方法来自Hinton在06年发表的论文上,其基本思想是每次训练一层隐藏层节点,将上一层隐藏层的输出作为输入,而本层的输出作为下一层的输入,这就是逐层预训练。

训练完成后,再对整个网络进行“微调(fine-tunning)”。

此方法相当于是找全局最优,然后整合起来寻找全局最优,但是现在基本都是直接拿imagenet的预训练模型直接进行finetunning。

4.5 梯度剪切、正则

这个方案主要是针对梯度爆炸提出的,其思想是设值一个剪切阈值,如果更新梯度时,梯度超过了这个阈值,那么就将其强制限制在这个范围之内。这样可以防止梯度爆炸。

另一种防止梯度爆炸的手段是采用权重正则化,正则化主要是通过对网络权重做正则来限制过拟合,但是根据正则项在损失函数中的形式:

可以看出,如果发生梯度爆炸,那么权值的范数就会变的非常大,反过来,通过限制正则化项的大小,也可以在一定程度上限制梯度爆炸的发生。

p32softmax回归

可以将输入数据分为多类。

[^直线边界代表决策边界]:

image-20200822104242011

Class 5 sequence data-nlp(Natural Language Processing)

p2Notation

Reprsenting words

one-hot编码(UNK表示未标识)

p3Recurrent Neural Network

[^X<1>,….,X 表示对目标序列的索引]

RNN(Recurrent Neural Networks)

传统神经网络有两个缺点:

1.输入和输出序列的长度必须一致。

2.不同位置的特征无法

RNN只是用了之前的信息来预测当时的信息


Author: Weiruohe
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Weiruohe !
  TOC