01-CNN入门

image-20191122195907358

image-20191122233737423

为什么需要cnn

image-20191122200100162

看你还是看右, 你的脑子在跳跃。

我们大脑看feature 来进行特征识别, 看左和看右是不一样的感受。

image-20191122200216861

多个特征,脑子不能决定,心里好憋的慌。

神经网络处理图片的过程和我们人类是非常类似的。

image-20191122201623940

image-20191122201707338

image-20191122201832926

什么是卷积和图像特征

回顾opencv的卷积核,卷积核准确的讲叫特征提取器

image-20191122204451766

image-20191122204507233

image-20191122204525646

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import matplotlib.pyplot as plt
import pylab
import cv2
import numpy as np
img = plt.imread("a.jpg")                        
plt.imshow(img)                                     #显示原图
pylab.show()

fil = np.array([[ 1,1,1],                        #卷积核
                [ 1,1,1],
                [ 1,1,1]])

res = cv2.filter2D(img,-1,fil)                      #使用opencv的卷积函数
plt.imshow(res)                                     #显示卷积后的图片
pylab.show()

卷积的过程复习

image-20191122211125578

  • stride 步长 ,步长越大,数据量压缩的越多

image-20191122211300215

  • depth 多少个特征提取器,分多少层

  • padding 是否补齐数据

卷积的目的

  1. 减少了图像的数据量。make the image smaller,train faster 64 x 64 x 3 = 12288 如果是普通的图片呢? 1920 x 1080
  2. 增强了feature, 鼻子,眼睛,头发等,这些是feature,人并不是处理所有的信息的,人只处理特征值
  3. 卷积神经网络的目标之一, 通过训练,寻找合适的卷积核,用来侦测不同的feature
  4. 强化关键信息,弱化无关数据

ml2-page18

卷积核与图像特征

高斯卷积核,模糊卷积核,中值卷积核...这些都是人通过看规律找到的,cnn的作用就是让神经网络自己找合适的卷积核,具体的可视化,我们后面通过代码给大家来查看。

image-20191122211700134

Relu层

还记得之前的激活函数吗?

image-20191122211830545

跟激活函数类似,过滤掉低于0的,非法数值。因为图片的像素值小于0 是没有意义的。

pooling池化

池化,max pooling 也叫down sampling,降采样

image-20191122232022807

这些图片大家一看就知道是豹子, 那么怎么教计算机能识别这是豹子呢? 要找到豹子的特征, 豹子实际上由纹理,鼻子,脸部轮廓等很多特征组成,我们要想办法找到豹子在图片熵的位子,豹子脸的朝向,旋转角度等信息。

池化技术就非常的合适。

我们来看一个步长为2的池化操作

image-20191122232445323

max pooling 是找到若干个点中最大的,把他保留下来。

好处,

  1. 提炼出了特征点, 即使图片旋转,也不影响特征点的提取

  2. 降低了过拟合的可能性

  3. 减少了75%的数据量

论文出处:http://ais.uni-bonn.de/papers/icann2010_maxpool.pdf

image-20191122233129288

flattening 打平

降维打击,把二维的数据用一维数据去表达

image-20191122233246359

image-20191122233305476

image-20191122233330890

全连接层 FC层

数据经过处理完毕后, 数据大小减少了,特征明显了,我们可以进一步的交给神经网络来进行训练了

image-20191122233523639

卷积干的事情是什么? 卷积是把特征降维提取出来,然后交给神经网络去处理。

卷积神经网络全景图

image-20191122234052994

反向传播 backpropagation

强者更强,弱者更弱,物竞天择。

回顾感知机的梯度下降算法? 正确的点,离我远点,错误的点,离我近点

image-20191123004552748

image-20191123004720887

image-20191123005310967