您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 深度学习-CNN卷积神经网络入门
卷积神经网络(入门级)CNN的发现卷积神经网络是一种受到视觉感知机制启发的深度学习结构。1959年Hubel和Wiesel把微电极埋进猫的视皮质细胞测试细胞对线条、直角、边缘线等图形的反应,受其启发。基础知识线性回归:损失函数线性回归线性回归:损失函数逻辑回归逻辑回归:损失函数逻辑回归逻辑回归:损失函数基础知识过拟合与欠拟合正则化过拟合与欠拟合λ=1λ=0λ=100过拟合与欠拟合解决方案解决欠拟合(高偏差)的方法1.增加神经网络的隐藏层数和隐藏单元数等2.增加更多的特征3.调整参数和超参数超参数包括:神经网络中:学习率、学习衰减率、隐藏层数、隐藏层的单元数、batch_size、正则化参数λ等4.降低正则化约束解决过拟合(高方差)的方法1.增加训练数据数2.使用正则化约束3.减少特征数4.调整参数和超参数5.降低模型的复杂度6.使用Dropout梯度下降梯度下降:批量梯度下降:小批量梯度下降:随机梯度下降:感知器上个世纪50-70年代Rosenblatt提出了感知器。人工神经网络20世纪80年代提出了人工神经网络。Lenet1990年,LeCun发表了一篇奠定现在CNN结构的重要文章,他们构建了一个叫做LeNet-5的多层前馈神经网络,并将其用于手写体识别。就像其他前馈神经网络,它也可以使用反向传播算法来训练。它之所以有效,是因为它能从原始图像学习到有效的特征,几乎不用对图像进行预处理。然而由于当时训练数据量的缺乏以及计算能力的不足,LeNet-5无法在复杂问题上表现的很好,比如大规模图像分类以及视频分类处理。YannLeCun教授2012年以后,AlexNet的出现在图像分类任务上有了很大的提升。随着AlexNet的成功,又有很多新的神经网络被提出来以提升它的性能。Lenet稀疏链接如果我们有1000x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数稀疏链接如果局部感受野是10x10,隐层每个感受野只需要和这10x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来减少了四个0(数量级)权值共享隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?卷积层池化层池化层pooling操作很大的用处就是,对于输入图像的局部较小的平移来说,pooling使得卷积操作后得到的特征可以保持对于平移的不变性。另一个则是降维,减少参数数量降低过拟合。全连接层经过几次的卷积以及池化操作,网络得到了C5层,它由120个神经元组成,F6即为全连接层。共有(120+1)*84个参数。注意这里F6层最后还要做一次sigmoid非线性变换,最后得到一个84维的二值向量。最后一层是由欧式径向基函数单元组成,每类1个单元,每个单元有84个输入。即每个RBF单元计算输入向量和参数向量之间的距离,距离越远,RBF越大。最后损失函数就是F6层的神经元与某个RBF神经元的输入权值的差,目标是最小化这个差值。𝑦𝑖=𝑥𝑖−𝑤𝑖𝑗2𝑗参数数目计算C1有156个参数:(5*5+1)*6=156S2有12个参数:因为S2中每个map中的每个点都与C1的四个点相连接进行池化,一般做完池化操作比如取最大或平均,还要乘以一个数,再加一个bias,再非线性变换C3有1516个参数:C3也是通过5*5的卷积核由14*14的map得到10*10的map,不过这里连接方式有点复杂,共有(5*5*3+1)*6+(5*5*4+1)*9+(5*5*6+1)*1=1516个参数。S4有32个参数:因为有16个池化层,每层都要两个参数,一个池化函数的系数和一个偏置C5有48120个参数:(5*5*16+1)*120=48120F6有10164个参数:120+1)*84=10164output840个参数:84*10=840共有60,840个参数训练2.根据𝑋𝑖以及CNN的模型结构,前向传播(forwardpropagation)1.给出训练样本集𝑋𝑖,𝑌𝑖3.前向传播结果计算出模型输出𝑦𝑖,并计算出损失函数𝐽(𝜃)=𝐿(𝑦,𝑦′)4.根据损失函数进行反向传播(backpropagation),计算出所以参数梯度5.根据参数梯度进行梯度下降算法,求取最后模型参数VGGVGG与Lenet均采用5+3结构,即5个卷积层用pooling分开,然后卷积层后接3个全连接层。Lenet每层只有一个卷积,而VGG每层有多个卷积Lenet卷积核大小较大,VGG全部采用3*3大小的卷积,同时网络C引入了1*1卷积。VGG162个3*3的卷积层连接,就达到了5*5的效果,3个3*3的卷积层连接,就达到了7*7的效果。用3个3*3卷积层代替7*7的卷积层可以有效的减少参数的数量。网络C中,引入1*1卷积核进行非线性变换。softmaxsoftmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1VGG刺猬特征图可视化第一层卷积核学到的图片特征VGG刺猬特征图可视化第一层特征图的细节比较清晰和输入图片较为相似,提取出了输入图片的边缘。VGG刺猬特征图可视化VGG刺猬特征图可视化end!!!
本文标题:深度学习-CNN卷积神经网络入门
链接地址:https://www.777doc.com/doc-1999378 .html