Machine Learning & Data Analysis

卷积神经网络CNN原理展示和Tensorflow相关函数介绍

2019-07-12  本文已影响48人  华小锐

卷积神经网络

1 CNN卷积层

卷积层1 卷积层2

卷积操作

卷积核Kernal与Input矩阵执行卷积操作,每次卷积的值组成了一个新的矩阵。卷积的操作是Kernal的值和每个对应的Input中的值进行乘积求和。

卷积步长

卷积步长指的是Kernal在Input中每次移动的距离是多少,该动态图中显示的是每次移动一步。

Padding

通过填充0使得卷积后的结果大小仍然和原来的矩阵大小一致。

2 CNN池化层

池化

池化层就是对原有的矩阵数据进行压缩的操作,假如是2x2的池化,那么就将子矩阵的每2x2个元素变成一个元素,如果是3x3的池化,那么就将子矩阵的每3x3个元素变成一个元素,这样输入矩阵的维度就变小了。如图所示是最大池化的操作,将2*2的矩阵中最大的元素作为新矩阵的元素,实现矩阵的维度降低。

损失函数

个人理解神经网络是通过非线性的映射将输入空间映射到输出空间。输出结果的好坏使用损失函数进行评定,损失函数衡量的是预测的结果和实际的结果之间的差距,通过利用差距使用优化算法更新神经网络中的权重进而实现降低损失函数的作用。

tensorflow函数参数详解

tf.nn.conv2d (input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)
tf.nn.max_pool(value, ksize, strides, padding, name=None)

参数是四个,和卷积很类似:

返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]这种形式

总结:f(WX+b) = y CNN卷积神经网络可以认为是一种映射关系,将输入的数据X通过映射函数f获取结果y,W是映射的过程中使用的权重,在CNN网络中相当于Kernal和网络层之间连接的权重值。预测的y值与实际的y值之间有偏差,使用损失函数衡量这些偏差,为减小损失函数提高精确度,使用优化算法去调整网络中的权重W来降低损失函数。

上一篇 下一篇

猜你喜欢

热点阅读