Network架构1——卷积神经网络CNN

label的维数决定了预测的种类的数量

一张图片怎么输入计算机中?一个图片的每个点都是由rgb(包括三个不同数值的颜色形成的),所以我们可以将所有数值提取出排列形成矩阵,作为计算机的输入

(扩展:tensor可以理解为维度大于二的矩阵)

设置更多的参数可以增加模型的弹性和能力,但是也更容易造成overfitting 的风险

overfitting的产生条件我们后续会继续介绍

下面我们从不同的视角来构建图片输入方法

视角一:我们在进行输入pattern时有时不需要输入所有的图像,只需要输入小部分的pattern就可以输入网络进行判断

我们可以将所有的输入划分为多个Receptive field,然后分别输入各自的函数

Receptive field的划分方法是不固定的,也可以重叠

Receptive field相关参数的设置方法:

kernel size一般都设置为3*3,如果设置为7*7就有点大了,stride是移动的步长,一般设置小于kernel size的长度,防止有pattern在两个field的交界处,padding是指移动超出范围的空白区域

视角二:同样的pattern可能出现在不同的图片区域

如下图所示,上下两个是不同的neuron,侦测的范围不同,但是做的事情其实是一样的

解决方法:共享参数,两个neuron使用相同的weight,但是输入是不同的,但是两个划分区域一样的neuron是不能共享参数的

我们把两组共用参数的neuron其中共同的参数称为filter1,filter2等等

简化方法总结:fully connected layer的复杂度是最高的,划分receptive field区域降低了复杂度,然后使用共享参数形成convolutional layer进一步降低

fully connected layer适用于各种训练情形,但是convolutional layer可以针对图像训练产生更好的效果,如果用于除了影像之外的训练,要考虑一下训练对象是否有和影像一样的特性,即使model bias大一点也无所谓

Convolutional Layer的另一个解释版本

可以将convolution看作由大量的filter组成的,每一个filter用来定位pattern,channel的模式是由图片的格式决定的,如果是彩色的就是三种rgb,如果是黑白的就是两种

那么我们是怎么通过filter来定位图像的形状的呢?列如已有一个对角线均为1的filter1,然后和黑白矩阵图像相乘,每次移动一个单位继续相乘,从左上角移动到左下角,这样我们就可以看到乘积结果为的说明图片中的该部分3*3矩阵的对角线全为一,这个filter就可以用来侦测对角线为直线的情况

同理,我们还可以设计其他的filter来侦测其他情况,例如filter就可以来探测中间第二列直线的情况

由此可推出有64个filter就会产生有64个channel的新的image,同时,如果有多层的convolution,因为filter的高度就是要处理的影像的维度,列入第一层是只有黑白的一维度影像 ,而现在要把第一层的convolution输出作为输入,那么新的filter的层数就要变成第一层输出的64维

那这样的处理方式会不会导致处理区域一直是3*3太小了?

不会,当我们处理第二层的concolution的右上角3*3矩阵时,它实际对应的是初始矩阵中的5*5矩阵,所以范围是越来越大的

所以只要network够深,就不要害怕侦测不到比较大的pattern

其实我们的第一种解释和第二种解释说的是同一个事情,filter中的元素就是我们第一种解释方法中共用 的参数

我们说的第一个解释当中,有一个是在不同的receptive fields中使用相同的参数,其实就是第二种解释当中的每个filter都扫过这个图片

总结:

视角三:将一张大的复杂的图片进行简化和缩小,不会改变内部的结构------由此引出Pooling结构

首先介绍Max Pooling

它是指,在filter1和filter和矩阵相乘后形成4*4矩阵,划分为四个小区域,每个区域选择数值最大的那个

这样达到缩小图片的效果

但是这样对细节有点伤害,现在不怎么使用了,因为计算能力足够了

Flatten是指把矩阵中的所有东西拉直

应用:用CNN下围棋

下围棋是一个分类问题,输入棋盘情况,输出下一个位置,这个问题CNN的效果比Fully-connected更好

影像和下围棋的共同之处在于:1,一些重要的pattern只占一小部分 2有同样的pattern出现在期盼上的不同区域,但是下围棋的结构当中并没有使用pooling

CNN并不能处理图像放大缩小或者旋转的问题

相关推荐
2601_9653053911 小时前
森林防火卡口与气象监测联动
人工智能
云和数据.ChenGuang11 小时前
光哥说Python 异常深度解析:从异常模型到工程化实践
java·前端·人工智能·python·langchain
爱签AI电子合同11 小时前
电子合同全维度实测与选型指南
大数据·人工智能
AI办公探索者11 小时前
从SaaS到本地部署:大模型推理成本优化与8888元私有化方案的技术解析
大数据·人工智能
吕布辕门11 小时前
DeepSeek 大模型落地应用与价值实现指南
人工智能·机器学习
武子康11 小时前
手机加语音配件,断开连接后谁来保住这段话?
人工智能·后端·agent
迪菲赫尔曼11 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
技灵AI11 小时前
MiniMax H3 能做哪些视频?商品广告、人物表演与运镜怎么选
人工智能·prompt·aigc·音视频
j7~12 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
ZzT12 小时前
AI 时代吃香的三种人:有想法的懒人、替别人着想的人、不被 AI 带偏的人
人工智能·ai编程