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))
-
fit()
函数:记录训练日志并显示出来 -
X_train
:输入值,即输入的问题 -
Y_train
:标签值,即与输入问题对应的正确答案 -
batch_size=20
:解答 20 个问题后,对一次正确答案,若存在 100 个问题,则需要更新权重 5 次 -
对比答案后,通过反向传播算法(back propagation) 更新权重
-
batch_size
越小,权重更新频率越高。 -
epochs=10
:训练周期为 10 次,即当前的输入的问题反复学习了 10 次。 validation_data=(X_val, Y_val)
:验证集为X_val
和Y_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 环境