神经网络基本知识

人工神经网络

说到底,无论是语音、文字还是图像在计算机中的数据都是由一些数字组成的,而神经网络是由一层层的结构组成的,通过权重相互连接。每一层都有若干个神经元,对每一个数据与权值相乘并偏置,并对得到的数值带入函数进行运算并输出。输出 = f(w * 输入 +b)。
以图片为例,对每个数据都进行处理,可以得到n(我们希望得到n个数据)个新的数据。假设我们需要图片分n类,每张图片处理后都可以产生n个数据,那么我们可以调节每个权重和偏置值的大小和合适的处理函数,我们可以使得同一类型的图片输出的值有相似的特征。比如所有的水果处理后产生的十个值都是第一个最大,之后对一张新的图片进行处理,如果得到的数据第一个最大,那么我们可以认为这张图片是水果。
调整每个权值和偏置的值的过程,就是学习。学习时我们需要大量的训练集

人工神经网络局限性

但是我们知道一张图片包含很多的像素,每个像素包含一个或多个通道,经过一层或多层的处理,而每一层都有很多的神经元,每个数据都有特定的权值和偏置值,对于一张800x800的图像,各隐藏节点节数分别为300,200,100,则参数的个数则多达几亿。参数过多会导致计算速度减慢,而且会造成过拟合。为此我们引出卷积神经网络

卷积神经网络

在卷积神经网络中,会存在卷积层和降采样层,卷积运算的目的是使信号增强,降低噪音。降采样层降低训练参数及过拟合程度。
卷积核的不同可以对图像进行不同的处理,如滤波,梯度处理等。步长大于1也会造成降维
降采样过程经常采用的是池化,常用的池化方式有两种方式,均值池化和最大池化。
隐层和隐层之间空间分辨率递减,为了检测更多的特征信息,每层的平面数就会有所增加

网络

输入层–n x( 卷积层(一般为三层) --池化层 )–全连接层

tensorflow中cnn常用函数
二维卷积tf.nn.conv2d(input,filter,strides,padding,use_cudnn_gpu=None,name=None)
最大池化
tf.nn.max_pool(value,ksize,strides,padding,naome=None)
平均池化
tf.nn.avg_pool(value,ksize,strides,padding,naome=None)

发布了11 篇原创文章 · 获赞 8 · 访问量 1956

猜你喜欢

转载自blog.csdn.net/weixin_43498585/article/details/104221306