0. 深度神经网络的分类
- General DL
- FC:Fully Connected
- Sequence Models:
- 1D 数据
- RNN、LSTM
- Image
- 2D、3D
- CNN
- Unsupervised Learning
- Reinforcement Learning
1. iteration vs epoch
iteraton:迭代次数,表达的是样本内部,当分类精度达到饱和或者叫分类精度收敛时,迭代停止,最终执行的迭代次数是不定的。
epoch:表达的是样本间,进行一次epoch,对全体样本进行一次学习与训练。当然样本与样本都是相同,也即使用相同样本进行的训练。epoch的次数是固定的,除非发生early stopping。
反映在代码中:
while epoch < epochs: # for j in range(epochs):
epoch += 1
for mini_batch_index in range(n_train_batches):
iter = (epoch-1)*n_train_batches + mini_batch_index
# 迭代次数以mini_batch为单位
2. 关于validation_data
机器学习(监督学习)有关的数据形式:
- training data
- test data
- validation data
Instead of using the test_data to prevent overfitting(避免模型过于复杂), we will use the validation_data.
也即我们使用validation_data避免过拟合,而不是使用test_data。
我们不仅通过validation data的使用避免过拟合,更一般地,我们使用validation data进行超参的选择。
3. validation data 与 early stopping
我们在validation data上所做的工作和在test data上做的工作是一样的,那就是在每次epoch(一次epoch,表示对全部数据进行一次训练,当然在对全部数据进行训练时也可采用**S**tochastic **G**radient **D**escent的学习方法)结束之时,计算这次的分类精度。一旦在validation data上的分类精度出现了饱和的情况(也即增高不显著),我们就停止训练。这种策略就叫做early stopping。
当然在实际中,我们也并非立刻就能知道何时发生精确率的饱和现象。我们将继续对模型的训练,直到我们有足够的自信确定精确率发生饱和。