当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第十章:实例分析与实践 > 10.4卷积神经网络的介绍
前面我们给大家介绍了
三成神经网络的搭建
那么神经网络最基本的单位
那就是我们的神经元
那我们输入的这个就是神经元
连接的就是我们的全值
那么神经网络就是有大量的神经元
相互连接而形成的一个
复杂的网络系统
它是反映了人脑功能
许多的基本特征
是一个高度复杂的
非线性动力学习系统
其实呢
前面已经了解到
那么输入的神经元
与我们全值的相乘的和
那么也就是一个输入的神经元的矩阵
与全值矩阵的一个积
再带一个激活函数
那么就是下一个中间层的
一个神经元的获得
那我们应用这样的方式呢
可以得到什么呀
许多层的神经元
然后呢
直到得到我们输出的神经元
那么在这个里面呢
通过这么多年的研究呢
那么计算机科学专家的
提出了其他的一些
神经网络的一些结构
比如说我们带有循环机制的rn
具有长短记忆功能Lstm
以及这个待遇门循环的一个积RU
那么最经典的还就是我们的这个
卷积神经网络
一样的
如果我们在处理一个图片的时候
使用的我们前面说的
这个经典的神经网络
也就是一个全连接的神经网络的时候
它的数量是非常大的
所以它的连接的参数也会很多
从而导致计算的量就非常大
人类对外界的认识
一般都是从局部到全局
先对局部有感知的认识
再逐步对全体有认知
这是人类的认识模式
那么在图像处理中呢
我们也是通过这样的一个认识方式
那么局部内的
像素之间的联系较为紧密
而距离较远的像素呢相关的较弱
因而呢
每个神经元只需要对局部进行感知
然后在更高层次
将局部的信息综合起来
就得到了这个全部信息
这个呢就是
卷积神经网络中这个降低
参数数目的一个重要的思路
那么卷积神经网络的
结构是什么样的呢
它是由这个卷积层加一个池化层
再加一个全连接层
是这样的一个结构组成的
我们下面来看一下
卷积神经网络的卷基层
那么卷积
神经网络中的这个核心呢
就是我们的卷积这个运算
那么相当于图像处理中的滤波器运算
对于我们一个
N×M大小的这个卷积核呢
其对于某一原
图像进行卷积运算的过程
为这个卷积核
W中的每一个全职分别和
这个覆盖的这个原图像X所对应的
相乘然后就得到一个求和
可以看的到其实就是我们的卷积和
矩阵与我们原图相对应的
和卷积和像一样大小的矩阵
我们来看一下这个过程
那么我们的卷积和是
101010101
那么从上面开始呢
从第1个第2个
那么他的步长是1
得到之对应的值啊
这就是一个卷积的过程
卷积和我们一样的原图像的大小
来做一个內积
这个卷积的合的移动的过程中
他是由卷积的方式
我们称之为有两种
比如说这是我们的原来的圆的图像
123456
卷积核的大小是什么呀
2×2
然后呢我们步长定为2
它卷的方式有两种
如果我们设置为padding
等于same这个形状
第一个卷积和第二个和
不够的时候他是补0的
那么如果用这个
Padding=valid的时候
那么它不够的时候就把它舍弃掉
只能就只能选出来
是满足和我们卷积和一样大小的
那么比积和小的呢
就把它去掉就是这样的一个过程
另外的一个操作就是一个池化的过程
池化是卷积神经网络的另一个概念
它的实际上是一种形式的降采样
池化是一个非线性
下降采样的一种形式
主要作用是通过减少
网络的参数来减少计算量
并且能够在一定程度上控制过拟合
通常在这个卷积层的后面
都会加一个石化层
那么迟化的数学原理就是
通过对它进行这个池化操作后
提取里面真正能够
识别的特征的数值
那么其余的是被舍弃的数值
对于提取特定的特征
并没有特别大的这个帮助
那么在这个进行后续的计算中
就是减少了他的这个
特征的那个尺寸
那么从而减少参数
我们达到了减少计算量的这个目标
并且那还可以
对这个损失
没有什么损失
是这样子的一个结果
我们来看一下
神经网络的池化的过程
那么迟化的过程
可以分为常用的三种
那我们这是原来的图片
在池化的时候
池化的大小是2×2
我们可以看到
如果是最大池化
那么就在一个方块里面取最大最大值
那么产生一个新的一个矩阵
如果是一个平均池化呢
相当于我每一个数值都参加
得到一平池
随机池化得到一个随机数
以此来去作为概率进行采样
是这样子的一个过程
那么用那个
TrensorFlow来去
搭建我们的卷积神经网络
我们常用的函数我们来看一下
我们首先要搭建一个
通过TrensorFlow
下面的keras
这个框架的这个
models,
Sequential
来去搭建这个网络的这个结构
一层一层是这样逐步的
下面的这个
tf.keras,
layers,flatten
那就是他是一个拉直的拉伸的平层
那也就说输入的是一个
一维的一个数组
全连接层的就是
tf.keras.
layers.dense
那这个里面参数有这个神经元的个数
以及的激活函数激活
另外的话会有一个正则化的处理
那么正则化就是防止过拟合的
那么在我们的损失里面
可以加一些扰动
那么他的方式有这个L1和L2
另外的话就我们可以看的到
tf.keras.
layers.conv2d
那么就是一个
两维的一个卷积
那么里面可以设置什么卷积核的个数
这个卷积的尺寸
卷积核的这个大小
卷积的步长
以及卷积的这个方式
在下面这个就是我们的池化层
那么池化层里面有最大池化
平均池化随机池化
像MaxPool2D就是最大池化
可以定义参数常用的
池化的尺寸以及池化的步长
我们神经网络这个搭建
以及他的训练
和我们这个预测结果的应用
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试