发布网友 发布时间:2022-04-22 13:22
共1个回答
热心网友 时间:2022-04-18 15:42
卷积神经网络(convolutionalneuralnetwork,CNN),最早是19世纪60年代,生物学家对猫视觉皮层研究发现:每个视觉神经元只会处理一小块区域是视觉图像,即感受野。后来到了80年代,日本科学家提出了神经认知机(Neocognitron)的概念,也可以算作是卷积神经网络最初的实现原型,在CS231n的课上说过,卷积神经网络不是一夜产生的,从这个发展过程中我们就可以看出,确实是这样的。卷积神经网络的要点就是局部连接(LocalConnection)、权值共享(Weightsharing)和池化层(Pooling)中的降采样(Down-Sampling)。比如下面是tensorflow卷积定义relu(W*X+B)W矩阵*X矩阵+B矩阵=W权重variable变量*X(placeholder占位符外部输入)variable变量+B偏重变量,因为深度学习会自动不断地计算loss损失BP来调整wb所以wb初始化可以随便全部都是0都行,所以其实就是X以及Y对于X来说其实我们知道就是我们图像数据Y是图像的标签,但是Y需要转为数学可以计算的值,所以采用one-hot数组记录标签的索引就行,比如xx1xx2xx3相应的y1=[1,0,0]y2=[010]y3=[001]那么其实就是X图像的像素通过外部输入placeholder占位符Y值外部输入通过placeholder占位符我们知道W*X矩阵相乘必须符合MXNNXM=MXM也就是说W的列必须与X的行数目相同这是要注意的,所以上一张shape来规范维度计算,下面是一个卷积层定义relu(wx+b)下面是tensorflow来表示relu(wx+b)的公式其中要注意参数strides是卷积滑动的步长你可以配置的系数,下面继续讲X[None,w*h]对于每一个w*h是一个矩阵每一层的w也是一个矩阵每一层的b也是一个矩阵,每一层的输出y1也是一个矩阵y=[w*h]*w+b为了减少系数,我们使用卷积,把它转换成MXN的值,这里就是跟全连接层的不同,使用了卷积转换成了一个MXN的卷积特征而全连接层就是y=wx+b(这里省略了那些relu(wx+b)tanh(wx+b))所以我们现在来看看每一层的w定义因为卷积层的w是需要与w*h提取的MXK来做矩阵相乘所以他是跟卷积核相关以及输入输出相关,对于每一张图像