首页后端开发Python如何设计卷积神经网络

如何设计卷积神经网络

时间2023-06-02 14:21:02发布访客分类Python浏览1069
导读:如何设计卷积神经网络?一些废话什么是深度学习?以下我的理解:深度学习就是利用多层神经网络提取特征的过程。BP神经网络和卷积神经网络都是深度学习算法,两者相比,BP神经网络更简单,是学习卷积神经网络的基础,推荐初学者从BP开始学起。近几年以来...

如何设计卷积神经网络?

一些废话

什么是深度学习?以下我的理解:深度学习就是利用多层神经网络提取特征的过程。BP神经网络和卷积神经网络都是深度学习算法,两者相比,BP神经网络更简单,是学习卷积神经网络的基础,推荐初学者从BP开始学起。近几年以来,卷积神经网络在计算机视觉、语言识别和自然语言处理等领域大放异彩,目前也有很多非常优秀的卷积神经网络框架,如Torch、TensorFlow、Caffe,它们都集成了现成的工具箱,用户不用关心具体的细节就能直接调用。

我们学习卷积神经网络,绝不仅仅是学习怎么使用,而是要理解实现原理,并学会如何改进神经网络以提升性能。工具箱虽然好用,但是却阻断了我们对卷积神经网络结构和算法实现的认识。因此我建议真正的学习者不要过多依赖工具箱,而是在理解原理的基础上自己动手编写代码,经过这样一个过程相信你对卷积神经网络的认识会达到一个新的高度。本文也将在介绍原理之后为读者带来卷积神经网络的python实现。

BP神经网络的局限性

从理论上来讲,BP神经网络几乎能解决所有深度学习问题,但是在处理复杂问题时,BP神经网络往往会力不从心。前文神经网络的设计以及python实现中用python构建了一个BP神经网路,并实现了对手写数字的识别,在那个例子中,每个数字样本是28×28的灰度图像,由于BP神经网络中输入层只能接收一维的输入,我们将输入层和隐藏层的神经元数量分别设置为784和100,两层之间的权重矩阵大小为100×784,试想如果输入是500×500大小的图像,权重矩阵的大小将呈指数级增长,将极大增加计算量。

卷积神经网络的重要概念

卷积神经网络的第一个重要概念是局部感知野:每个神经元只需要对图像的局部特征进行感知,然后将这些局部的特征进行组合得到图片的全局特征。其实这也是受人类视觉神经系统的启发,人类在识别图像时,大脑皮层的神经只对局部的刺激做出反应,说明人类对图像的认知也是从局部到整体的过程。

卷积神经网络的第二个重要概念是权值共享:卷积神经网络使用卷积操作提取图像中的特征,同一个卷积核在图像上滑动提取同一种特征,如果想要提取多个特征就使用多个卷积核。之所以称之为“权值共享”,是因为同一个卷积核在图像的多个局部之间滑动,某一局部提取的特征可以用在其他区域,或者说图像的特征与位置无关。通过权值共享能大大降低神经网络的计算量。

卷积神经网络的第三个重要概念是池化:这个名词乍听起来很唬人,其实非常好理解。一言以蔽之,就是对图像进行压缩处理,具体的操作是将卷积后的图像划分成若干个区域,取每个区域的最大值或平均值构成新的图像。池化后的图像大小显著缩小,但是仍保留了原先的特征。其实这也是对人类视觉神经的模拟,一张图片即使被压缩到原来的十分之一大小,也不会影响我们的辨认。

小结

卷积神经网络绝不是一两篇文章能解释清楚的,本文只是简要地介绍了卷积神经网络的基本原理和几个重要概念。但是因水平有限,有些概念可能并没有完全解释清楚(比如卷积和权值共享),相信结合算法之后会有助于理解。下篇文章将介绍卷积神经网络的具体操作,如卷积、激励、池化,以及python实现,请保持关注。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何设计卷积神经网络
本文地址: https://pptw.com/jishu/58316.html
Python中怎么调用函数 python35网络爬虫中bsObj

游客 回复需填写必要信息