Tensorflow Tutorial 2: image classifier using convolutional neural network Part-1(译)

这篇文章 咱们将会介绍一下基于卷积神经网络的图像分类器,为了实现这个图像分类器,咱们将会建立一个6层的神经网络用于区分猫咪和狗狗。算法

传统的神经网络很是擅长图像分类,若是在CPU上进行训练,会获得更多的参数,而且会花费大量的时间,然而,在这篇文章中,个人目标是向您展现如何使用Tensorflow构建一个真实的卷积神经网络,而不是参与ILSVRC。在开始学习Tensorflow教程以前,让咱们先学习卷积神经网络的基础知识。网络

 

Part-1: Basics of Convolutional Neural network (CNN):卷积神经网络基础

神经网络本质上是求解优化问题的数学模型,它们是由神经元构成的,神经元是神经网络的基本计算单元。神经元接受一个输入(好比x),对它作一些计算(好比:用一个变量w乘以另外一个变量b)来产生一个值(好比;z = wx + b)。这个值被传递给一个名为激活函数(f)的非线性函数,以产生神经元的最终输出。激活函数有不少种。其中一个经常使用的激活函数是Sigmoid(归一化)机器学习

 

 

 

根据激活功能的不一样,神经元被命名为RELU, TanH等(记住这一点)。一个神经元能够链接多个神经元。函数

 

 

这个例子中,你能够看到权值是链接的属性,即每一个链接都有不一样的权值,而误差是神经元的属性。这是生成输出y的SIGMOID神经元的全图。学习

 

若是你把神经元堆成一行,就叫作层;这是神经网络的下一个组成部分。优化

 

 

正如你在上面看到的,绿色的神经元组成1层,这是网络的第一层,输入数据经过它传递到网络。相似地,最后一层称为输出层,如红色所示。输入层和输出层之间的层称为隐藏层。在这个例子中,咱们只有一个蓝色的隐藏层。有许多隐含层的网络每每更准确,被称为深度网络,所以使用这些深度网络的机器学习算法被称为深度学习。blog

 

Types of layers:

一般,一个层中的全部神经元都作相似的数学运算,这就是这个层的名字的由来(除了输入层和输出层,由于它们只作不多的数学运算)。下面是你应该知道的最流行的层类型:教程

 

Convolutional Layer:

卷积是一种数学运算,它用于单次处理中对信号进行滤波,寻找信号中的模式等。在卷积层中,全部的神经元都对输入进行卷积运算,所以称为卷积神经元。get

卷积神经元中最重要的参数是滤波器的大小,假设咱们有一个滤波器大小为5*5*3的层。同时,假设输入卷积神经元的图像大小为32*32,有3个通道。咱们从图像中选择一个5*5*3(3表示彩色图像中的通道数)大小的块,并计算与滤波器(w)的卷积(点积)。这个卷积运算会获得一个单独的数字做为输出。咱们还将把误差(b)加到这个输出中。深度学习

为了计算点积,过滤器的第三维必须与输入中的通道数相同。也就是说,当咱们计算点积的时候,它是一个矩阵乘以5*5*3大小的块和5*5*3大小的滤波器。咱们将卷积滤波器滑过整个输入图像来计算整个图像的输出,以下图所示:

 

 

 

 

Pooling Layer:

池化层主要是在卷积层以后当即使用,以减小空间大小(仅限宽度和高度,不包括深度)。这减小了参数的数量,从而减小了计算量。此外,较少的参数能够避免过拟合(如今不要担忧,稍后将对此进行描述)。最多见的池形式是Max pooling,咱们使用大小为F*F的过滤器,并对图像大小为F*F的部分应用最大操做。

 

 

 

Fully Connected Layer:

若是一层中的每一个神经元都接收到来自前一层中全部神经元的输入,那么这一层称为彻底链接层。该层的输出由矩阵乘法和偏置偏移量计算。

 

reference:https://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/

相关文章
相关标签/搜索