人工智能学习

吴恩达深度学习 4.1 卷积神经网络-卷积神经网络基础

本文主要是介绍吴恩达深度学习 4.1 卷积神经网络-卷积神经网络基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 知识点

  • 计算机视觉:图片分类、目标检测、图片风格迁移等

        对于小尺寸图片,可以用深度神经网络模型学习预测。但对于大尺寸图片,输入数据规模大,用深度神经网络会有非常多的参数需要学习,不再合适。

        卷积神经网络,在计算机视觉上是个很好的网络结构。

  • 边缘检测:垂直边缘检测、水平边缘检测和更复杂的边缘检测filter

        垂直边缘检测:用filter依次对输入图片和filter相同大小的块内各元素进行运算,对应元素相乘后求和。所得结果为输出图片元素。由例图可以看出,垂直边缘检测filter能运算出输入图像人在垂直方向上的轮廓。   

         多种边缘检测:垂直边缘检测、水平边缘检测、更复杂的边缘检测(将fliter看作需要学习的参数)

 

         数学上的卷积和深度学习的卷积:数学上,卷积操作需要先将卷积核filter在水平和垂直方向上进行翻转,构成一个卷积核的镜像,然后使用该镜像再和前面的矩阵进行移动相乘求和操作。深度学习上,没有卷积核变换为镜像的这一步。

  • Padding:

        没有Padding存在的问题:每次卷积操作图片会缩小。角落和边缘位置的像素进行运算的次数少,信息会丢失。

        加Padding:输入图片n*n大小,Padding大小为p,filter大小为f,输出图片为(n+2p-f+1)*(n+2p-f+1)

     

        不加Padding:输入图片大小为n*n,输出图片大小(n-f+1)*(n-f+1)

        输出图片和输入图片大小相同:n+2p-f+1=n,即p=(f-1)/2

  • 卷积步长(s):即两个运算之间移动的步数 

         输入图片大小为n*n,输出图片大小[(n+2p-f)/s+1]*[(n+2p-f)/s+1]

  • 立体卷积

        卷积核的通道数:R、G、B三个颜色通道        

       

        多卷积核:不同的filter分别提取图片的不同特征,比如垂直边缘和水平边缘

         多卷积核输入图片和输出图片大小:

        (n*n*nc)*(f*f*nc)——>(n-f+1)*(n-f+1)*nc',其中nc'是下一层通道数,也是本层filter的个数。

  • 简单卷积网络:卷积核相当于深度网络中的参数W

 

         其中,参数W的个数为3*3*3=27,加上偏置,参数个数为28个,假设有10个卷积核,参数个数共280个。相对于普通神经网络,卷积神经网络的参数个数少了很多。

  • 简单卷积网络示例:三层卷积,和一层全连接层

 

  • 池化层:最大池化和平均池化,输入图片维度和输出图片维度之间的关系和卷积相运算相同

  • 卷积神经网络示例:卷积-池化-卷积-池化-线性运算-激活。卷积层参数较少,线性运算层参数很多。

  

 

 

2. 应用实例

import numpy as np
import h5py
import matplotlib.pyplot as plt

%matplotlib inline
plt.rcParams['figure.figsize'] = (5.0, 4.0) 
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

#ipython很好用,但是如果在ipython里已经import过的模块修改后需要重新reload就需要这样
#在执行用户代码前,重新装入软件的扩展和模块。
%load_ext autoreload
#autoreload 2:装入所有 %aimport 不包含的模块。
%autoreload 2          

np.random.seed(1)      #指定随机种子

 

 

这篇关于吴恩达深度学习 4.1 卷积神经网络-卷积神经网络基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!