假设输入是一张图片大年夜小为28*28*3,第一层隐蔽层有500个节点,那么第一层的参数就有28*28*3*500+500=1176000个参数,当图片更大年夜时,参数就更多了,并且这只是第一层。
那么为什么卷积神经收集可以达到减小参数的目标呢?
卷积神经收集最为关键的有卷积层,池化层,全连接层。
卷积层
卷积层中每个节点的输入只是上一层神经收集的一小块,平日由卷积菏攀来实现,卷积核是一个过滤器,可以想象成一个扫描窗口,扣到每张图片上,然后根据设置好的大年夜小步长等等扫描图片,计算规矩是被扣的图像像素矩阵跟卷积核的权重对应地位相乘然后乞降,每扫描一次获得一个输出。卷积层所做的工作可以懂得为对图像像素的每一小块进行特点抽象。可以经由过程多个不合的卷积查对同一张图片进行卷积,卷积核的个数,其实就是卷积之后输出矩阵的深度。卷积神经收集的参数个数与图片大年夜小无关,只跟过滤器的尺寸、深度以及卷积核的个数(输出矩阵的深度)有关。假设是照样28*28*3的图片,卷积核的大年夜小设为3*3*3,输出矩阵的深度为500,那么参数个数为3*3*3*500+500=14000个参数,比较全连接层,参数削减了很多。

图3 形象的卷积层示例
池化层
池化层可以认为是将一张高分辨率的图片转化为低分辨率的图片。可以异常有效的缩小矩阵的尺寸,大年夜而减小全连接层的参数个数,如许可以加快计算速度同时又防止过拟合,池化,可以减小模型,进步速度,同时进步所提取特点的鲁棒性。
应用2*2的过滤器步长为2,最大年夜池化如下图所示:
- X_train=X_train_orig/255.0
- X_test=X_test_orig/255.0
- Y_train=convert_to_one_hot(Y_train_orig,6)
- Y_test=convert_to_one_hot(Y_test_orig,6)
和全连接神经收集比拟,卷积神经收集的优势在于共享权重和稀少连接。共享权重在于参数只与过滤器有关。卷积神经收集削减参数的别的一个原因是稀少连接。输出节点至于输入图片矩阵的部分像素矩阵有关,也就是跟卷积核扣上去的那一小块矩阵有关。这就是稀少连接的概念。

图4 2*2过滤器最大年夜池化示例图
我们可以姑息积层和池化层算作是主动特点提取就可以了。
经由过程膳绫擎直不雅的介绍,如今我们就知道为什么卷积神经收集可以达到减小参数的目标了?
卷积神经收集经由过程权重共享和稀少连接来削减参数的。大年夜而防止过度拟合。
练习过程
卷积神经收集的练习过程大年夜致可分为如下几步:
第一步:导入相干库、加载参数
第三步:定义参数及卷积神经收集构造
- import math
- import numpy as np
- import tensorflow as tf
- import matplotlib.pyplot as plt
- import h5py
- from tensorflow.python.framework import ops
- from tf_utils import *
- np.random.seed(1)
- X_train_orig,Y_train_orig,X_test_orig,Y_test_orig,classes=load_dataset()
- index=0
- plt.imshow(X_train_orig[index])
- print("y="+str(np.squeeze(Y_train_orig[:,index])))
- plt.show()
第二步:归一化,有利于加快梯度降低
- def create_placeholder(num_px,channel,n_y):
- X=tf.placeholder(tf.float32,shape=(None,num_px,num_px,channel),name='X')
- Y=tf.placeholder(tf.float32,shape=(None,n_y),name
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 最终,只有一条链会被保存下>>>详细阅读
本文标题:深入浅出解读卷积神经网络
地址:http://www.17bianji.com/lsqh/39218.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示