深度学习小记(一)
- 分类器
- 分类网络的学习
CSDN潜水多年,一直在这上面从各处大佬的博客汲取知识,解决了不少作业(● ̄(エ) ̄●)最近开始了自己在深度学习上的学习,自己学什么东西都很慢,别人觉得很容易的事情在我看来就很复杂,但仍旧想要搞懂他们,就以此记录一下自己的整个学习过程吧!可能一开始写的会非常差吧,但是算是一个记录,因为我确实也想不到什么其他可以记录的方式了。
分类器
百度搜索分类器,会得到很多结果,如贝叶斯分类器、SVM(支持向量机)、K紧邻、决策树等,前几日科研实习课上清华大学的杨毅教授也给我们讲到了这些。这些确实是分类器,但却未用到深度学习。
深度学习,Deep Learning,是指多层的人工神经网络和训练它的方法。深度学习不仅仅可以实现分类的作用(是很基本的作用),还可以实现检测、识别等等。
我现在的目的是实现分类,我可以使用不同的网络来实现。从前一直搞不明白这些分类器和神经网络(xxnet,各种net)的区别,现在明白了:分离器只是单纯性用数学的方式在做分类,而使用各种net则是在用深度学习在做分类
分类网络的学习
在看不懂英文文献、对神经网络等等一窍不通的情况下,B站up霹雳吧啦Wz 的一系列视频拯救了我。
我分别看了他对于Alexnet、VGG、GoogleNet、MobileNet、Resnet的讲解和利用这些网络对分类网络的实现,更改部分细节使其适配自己的电脑,并进行了结果的记录,其中VGG网络由于参数过多导致我的电脑一直崩溃,遂放弃不用
结果如下:
Alexnet:
随着每个epoch的进行过程中,loss反复横跳
Epoch = 10
Max = 0.709
Epoch = 20
Max = 0.788
GoogleNet:
Epoch = 30
train_loss: 0.852 test_accuracy: 0.821(max)
Resnet:
第一个epoch就train_loss: 0.500 test_accuracy: 0.912
使用了迁移学习
Epoch = 3
train_loss: 0.293 test_accuracy: 0.926(max)
Mobilenet:
Epoch = 5
train_loss: 0.588 test_accuracy: 0.874(max)
后面的两个网络使用了迁移学习,预先加了权重,所以不用跑很多epoch就能达到超级厉害的效果呢!
本来想用自己的数据集跑下这些网络,但是一个是数据集整合起来有点复杂,一个是最近要科研实习结题啦,我再不弄MobileNet_SSD,我都不知道结题该怎么说o(╥﹏╥)o但还挺喜欢这些小网络的,因为有那么一丝丝的成就感 ( ̄▽ ̄)~*