最近试一下kaggle的文字检测的题目,目前方向有两个ssd和cptn。直接看看不太懂,看到Alexnet是基础,今天手写一下网络,记录一下啊。
先理解下Alexnet中使用的原件和作用:
激活函数使用了relu并用了多个cpu:提高了训练速度。
重叠pool池化(不再是简单除以2的池化了,类似于卷积的计算过程,不过同样还是减少了参数):提高了精度,不容易产生过拟合。
局部响应归一化(Lenet网络的归一化实在最后一层,Alexnet网络前面几层都是在激活池化后用了softmax归一化):提高精度
局部响应归一化动机:神经学中有一个概念叫做侧抑制,即被激活的神经元抑制相邻神经元。归一化的目的是“抑制”,局部响应归一化就是借鉴侧抑制的思想来实现局部抑 制,尤其是使用RELU这种“侧抑制”很管用。好处:增强了泛化额能力,做了平滑处理,对局部神经元的活动创建了竞争机制,使得相应比较大的值相对更大,提高了模型泛化能力。(但是在后面的论文中提出lrn没什么卵用)
数据增益、dropout:减少了过拟合。
与以往网络相比创新点在于:
1.大数据训练,Alexnet在网络训练前,对图片进行了变换:平移变换、反射变换、光照和色彩变换。增加数据
2.多CPU训练,使用了两个CPU,因为单CPU存储空间小,所以使用两个。
3.LRN局部相应归一化。局部相应归一化有助于模型的泛化。不太懂这里,留个坑,请指教
4.重叠池化。
5使用dropout来避免过拟合。dropout的神经元既不参与前向传播也不参与反向传播
6非线性激活函数,relu