keras学习-增加acc曲线和loss曲线绘制

背景

前面的文章主要是针对keras实际实际预测的数据,绘制了数据的折线图。实际上我们也要对我们的模型实效果做一些评估。目前比较主要的两个数据 loss 和acc。

绘制

原理

Keras模型训练中的history对象通过调用fit()函数来训练LSTM模型。此函数返回一个名为history的对象,该对象包含损失的跟踪以及在编译模型期间指定的所有参数,在周期结束时记录数据。

代码

history = model.fit(xx)

acc = history.history['acc']
loss = history.history['loss']
epochs = range(1, len(acc) + 1)
 
plt.title('Accuracy and Loss')
plt.plot(epochs, acc, 'red', label='Training acc')
plt.plot(epochs, loss, 'blue', label='Validation loss')
plt.legend()
plt.show()

图:


image.png

loss 损失率

说到loss就要提到损失函数这个概念,损失函数是机器学习中里最基础,最关键的一个要素。损失函数的作用:衡量模型模型预测的好坏。直白点说真实值与预测值差别越大,Loss越大,我们的优化的目标就是减小Loss。损失函数越小,模型就越好。

统计学习中常用的损失函数有以下几种:

(1) 0-1损失函数(0-1 lossfunction):
(2) 平方损失函数(quadraticloss function)
(3) 绝对损失函数(absoluteloss function)
(4) 对数损失函数(logarithmicloss function)或对数似然损失函数(log-likelihood loss function)

loss曲线一些诊断和优化知道

常见情况

1)如果你的 learning_rate_policy 是 step 或者其他变化类型的话, loss 曲线可以帮助你选择一个比较合适的 stepsize。
2)如果loss曲线表现出线性(下降缓慢)表明学习率太低。
3)如果loss不再下降,表明学习率太高陷入局部最小值。
4)曲线的宽度和batch size有关,如果宽度太宽,说明相邻batch间的变化太大,应该减小batch size。

不收敛的问题(如loss为87.3365,loss居高不下等)的情况

1)在caffe中可以在solver里面设置:debug_info: true,看看各个层的data和diff是什么值,一般这个时候那些值不是NAN(无效数字)就是INF(无穷大)。
2)检查数据标签是否从0开始并且连续。
3)把学习率base_lr调低。
4)数据问题,lmdb生成有误。
5)中间层没有归一化,导致经过几层后,输出的值已经很小了,这个时候再计算梯度就比较尴尬了,可以尝试在各个卷积层后加入BN层和SCALE层。
5)把base_lr调低,然后batchsize也调高。
6)把data层的输入图片进行归一化,就是从0-255归一化到0-1。
7)网络参数太多,网络太深,删掉几层看看,可能因为数据少,需要减少中间层的num_output。
8)记得要shuffle数据,否则数据不够随机,几个batch之间的数据差异很小。

出现NAN情况

1)观察loss值的趋势,如果迭代几次以后一直在增大,最后变成nan,那就是发散了,需要考虑减小训练速率,或者是调整其他参数。
2)数据不能太少,如果太少的话很容易发散。
3)Gradient Clipp 处理gradient之后往后传,一定程度上解决梯度爆炸问题。
4)原因可能是训练的时间不够长。
5)可以看一下训练时,网络参数的L2或L1。

acc 准确率

这个比较简单,是真实值和模型预测值是否一致的标量形式。举个通俗的例子:假如真实值是[1,2,3,4,5,6],预测结果是[1,2,3,4,7,8]。比例就是4/6。

loss曲线和acc曲线联合诊断

1)可以把accuracy和loss的曲线画出来,方便设定stepsize,一般在accuracy和loss都趋于平缓的时候就可以减小lr。
2)看第一次test时(即iteration 0),loss和精度,如果太差,说明初始点的设置有问题。
3)过拟合时loss下降,accuracy也下降。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270