跳转至

0102 深度学习基本概念

一、数据集

1.1 数据集分类

训练集(train):考试备考的模拟试题(平时练习卷)

验证集(val):用来验证当前学习方法的试题(月考一模二模考试)

测试集(test):用来测试最终备考情况的试题(高考)

1.2 训练与评价

训练:拿到题目,写完之后,对着答案学习

评价:拿到答案,验证对错,计算分数

超级参数(hyperparameter):验证集验证出的最好学习方法,决定这种学习方法的参数

超级参数调整(hyperparameter tuning):为了找到最好的学习方法,不断调整超级参数的过程

训练周期(epoch):将所有训练集学习一次的过程就是一次训练周期。

欠拟合(under-fitting):处于有待继续训练的状态,加强训练可以提供成功的可能性

过拟合(over-fitting):持续训练,验证集返回的评价不再提高,反而开始下降

早停法(early stopping):完成适当的反复训练次数后,在这个节点上终止训练

交叉验证(cross-validation)

​ 为了防止使用单一验证集使得验证结果有失客观性,需要进行交叉验证。

​ 每次交叉验证前,必须对学习状态进行初始化

​ 计算量较大,大规模计算中不会使用

二、训练过程

2.1 介绍训练过程

2.1.1 训练搭建好的模型

hist = model.fit(X_train, Y_train, batch_size=20, epochs=10, validation_data=(X_val, Y_val))
  1. fit() 函数:记录训练日志并显示出来

  2. X_train:输入值,即输入的问题

  3. Y_train:标签值,即与输入问题对应的正确答案

  4. batch_size=20:解答 20 个问题后,对一次正确答案,若存在 100 个问题,则需要更新权重 5 次

  5. 对比答案后,通过反向传播算法(back propagation) 更新权重

  6. batch_size 越小,权重更新频率越高。

  7. epochs=10:训练周期为 10 次,即当前的输入的问题反复学习了 10 次。

  8. validation_data=(X_val, Y_val):验证集为 X_valY_val

2.1.2 训练周期与过拟合

  训练周期过犹不及,一旦发现 过拟合 现象时一定要及时终止训练

2.2 查看训练过程

2.2.1 调用 history[] 函数

打印训练周期的训练误差 loss

print(hist.histort['loss'])

打印训练周期的训练精度 accuracy

print(hist.histort['accuracy'])

打印训练周期的验证误差 val_loss

print(hist.histort['val_loss'])

打印训练周期的验证精度 val_accuracy

print(hist.histort['val_accuracy'])

2.2.2 使用 matplotlib 包绘制数据变化趋势图

loss_ax.plot(hist.history['loss'], 'y', label='train loss')
  • hist.history['loss']:调用 history[] 函数,读取数据集的训练误差
  • 'y':以黄色显示
  • label='train loss':数据的图例标签为 train loss

三、过拟合模型和早停法

四、模型评价

4.1 分类问题

4.1.1 准确率(accuracy)

  在使用准确率进行模型评价时,一定要查看数据本身的类别分布情况。在某些情况下,即使准确率高也不代表模型是有效的。

4.1.2 敏感度(sensitive)

  敏感度:指 “模型对正样本有多敏感” ,是对模型预测正样本能力进行评价的指标,即预测越准,敏感度越高。

  敏感度 = 预测结果中正样本数量 ÷ 总正样本数量

4.1.3 特异度(special)

  特异度:指 “只准确预测特异的正样本的能力” ,是对模型预测负样本能力进行评价的指标,即预测越准,特异度越高。

  特异度 = 预测结果中负样本数量 ÷ 总负样本数量

4.1.4 分类问题的评价指标

  • ROC 曲线:通过图的形式呈现敏感度与特异度间的变化关系。
  • AUC:ROC 曲线下方的面积,可以很好地比较模型的性能。

4.2 检测问题

4.2.1 精度

  精度:是衡量 “模型精确程度” 的指标,即模型是否只准确预测正样本的程度。

  精度 = 实际正确样本 ÷ 所有模型预测为正例的数量

4.2.2 召回率

  召回率:评价 “预测时是否有遗漏正样本” 的指标。准确预测越多正样本,召回率就越高。

  召回率 = 检测出的正例 ÷ 全部正样本数量

检测问题中,不关注没检测出的真的反例。

4.2.3 检测问题的评价指标

  • AP (Average Precision):平均精度,谁高谁就好

4.3 分离问题

4.3.1 像素准确率(Pixel Accuracy)

  像素准确率 = (准确预测绿色色块的个数 + 准确预测黄色色块的个数)÷ 全部像素的数量

4.3.2 平均准确率(Mean Accuracy)

  平均准确率 = (准确预测绿色色块的个数 ÷ 全部绿色色块数 + 准确预测黄色色块的个数 ÷ 全部黄色色块数)÷ 2

4.3.3 Mean IU

  Mean IU = (绿色色块 IU + 黄色色块 IU)÷ 2

4.3.4 频率加权 IU

  加权平均数

训练实例

多层认知神经网络模型训练 MNIST 手写体数据集:

- TensorBoard 监控训练模型

上一节:0101 测试 Keras 环境

下一节:0201 训练 MNIST 手写体数据集