本人为在职研究生,希望能够有志同道合的学习伙伴一起学习分享和交流,本人领域为光纤传感和人工智能,希望可以一起学习。
微信公众号:Deepthinkerr(文章末尾有图)
小样本算法调试、CNN学习(2020.12.17)
1. 今日完成任务
- 小样本代码调试
- 特征提取
- 《Tensorflow2.0卷积神经网络实战》王晓华
2. 总结
- 《Tensorflow2.0卷积神经网络实战》- 第三章 - Tensorflow2.0语法基础
介绍了神经网络的基本内容,比较有趣的是这本书介绍梯度下降的部分,从简单的三层神经网络来介绍梯度下降,图和描述都比较不错,能够快速理解内容,理论公式就看的难受,没看懂,理论公式个人更倾向于花书的介绍,更加详细。
初次之外,这一章节介绍bp神经网络的代码,很适合学习和理解,不同于其他书的直接上tensorflow这种高级API,代码虽然简单易懂,你会觉得自己懂了,知道BP神经网络训练的过程,但是很多细节你会忽视,比如梯度下降时如何操作的(链式法则)等等,建议可以打一遍代码,好好看一看,能够更加深入理解前向传播和背向传播。
- 小样本代码调试和特征提取
今天在做项目的过程中,发现一个贼有意思的事情,直接提取的特征数据进行小样本学习,模型训练过程中loss直线下降,但是识别精度一直在0.5,没有任何效果,模型没有学习到特征的信息,后来观察特征数据,正负样本的特征存在较为明显的区别,但是模型就是无法学习到特征信息。
后来通过PCA降维分析,在95%的信息保留度情况下,特征点数从39直接降到2,整的贼懵逼,感觉模型有点懒惰化,更倾向于确认为线性,大于为正,小于为负,就没有优化,类似样本不均衡存在的情况,99个正常样本和1个缺陷样本,直接忽视缺陷信息,识别精度就可以达到99%。
最后对特征进行无量纲化和PCA处理,最后能够快速学习缺陷特征信息,梯度下降20次就达到95%左右的识别准确率。但是这个问题也不知道为啥?到现在都很懵逼,准备最近看看相关文献,看有没有头绪。