卷积神经网络(CNN)是一类深度神经网络。这是受人类大脑视觉皮层的启发。每当我们看到某些东西时,一系列的神经元皮层就会被激活,每层都会检测到一些特征,如线条,边缘(如垂直边缘,水平边缘)。
过度简化图:
卷积神经网络 示例 了解这一点的一些先决条件:
现在让我们了解过滤器(卷积/特征图): 要应用某些过滤器,我们需要将图像与过滤器矩阵相乘。以下是标准过滤器及其矩阵表示的一些示例。 过滤器的重要性: 在自动驾驶汽车的情况下,边缘检测过滤器非常重要。 现在我们已经准备好了解CNN层及其工作原理。 卷积层(Convolution Layer)
例如:考虑一个6 * 6 * 3的图像,这里我们应用两个尺寸为3 * 3 * 3的不同过滤器,输出为4 * 4 输出的公式:
例如:n = 6,p = 0,f = 3,s = 1, [(6+(0*2)–3)/1+1]*[(6+(0*2)–3)/1+1]*3 = 4*4*3 nc是输入和过滤器中的通道数,而nc'是过滤器的数量。 工作说明: 池化层(Pooling Layer) 当图像太大时,池化层会减少参数的数量。它减少了每个映射的维度,但保留了重要信息。空间池化(Spatial pooling )可以是不同类型的:
最大池化从调整过的特征映射中获取最大元素。采用最大元素也可以采用均值池化。将特征映射调用中的所有元素的和称为求和池化。 最大池化 填充(padding): 填充在输入卷积的外部添加额外的0,以便卷积最终具有与输入相同数量的输出。如果我们不使用填充,则在每个卷积层之后,边界处的信息将丢失,这将减小卷积的大小以及性能。 类型:有效填充,相同填充。 在有效填充中,与输入相比,该特征的维度降低,而在相同填充中,维度增加或保持相同。 零填充 展平(Flattening ): 在应用了所有上述层后,我们得到矩阵形式的最终输出,但神经网络需要向量形式(1D)的输入数据,因此我们需要将我们的池化的特征映射展平成如下图所示的列。 完全连接层(Fully connected Layer)(FC): 在这里,我们将展平数据提供给FC的输入层(例如 x1,x2 ...)。我们在中间层应用ReLU等激活函数。 这里基本的神经网络工作发生像反向传播,优化。 激活函数: 在中间层中,优选ReLu,而对于输出层,则使用Softmax或sigmoid。 以下是部分代码展示: Importing the Libraries and Packagesfrom keras.models import Sequentialfrom keras.layers import Convolution2Dfrom keras.layers import MaxPooling2Dfrom keras.layers import Flattenfrom keras.layers import Dense 创建神经网络的第一步是使用keras中的顺序类初始化网络。 Initialising the CNNmodel = Sequential()Convolutional Layermodel.add(Convolution2D(filters = 32, kernel_size = (3, 3),input_shape = (64, 64, 3),activation = ‘relu’)) 池化层 model.add(MaxPooling2D(pool_size = (2, 2))) pool_size:池化窗口的形状。 展平层 model.add(Flatten()) 完全连接的层 Adding the Hidden layermodel.add(Dense(units = 128, activation = ‘relu’))Adding the Output Layermodel.add(Dense(units = 1, activation = ‘sigmoid’)) 编译CNN model.compile(optimiser = ‘adam’,loss = ‘binary_crossentropy’,metrics = [‘accuracy’]) 重要提示: 如果训练的数据非常少,那么我们可以通过应用缩放,翻转原始图像和创建新图像等操作从现有数据创建新数据。 Generating Image Datafrom keras.preprocessing.image import ImageDataGeneratortrain_datagen = ImageDataGenerator(rescale = 1./255,shear_range = 0.1,zoom_range = 0.2,horizontal_flip = True)test_datagen = ImageDataGenerator(rescale = 1./255) |
|
来自: taotao_2016 > 《AI》