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并不能处理图像放大缩小或者旋转的问题

相关推荐
鲲穹AI种草1 小时前
桌面与手机美化怎么做,多款 AI 壁纸生成工具使用记录
人工智能·壁纸工具
忆~遂愿1 小时前
免密连接+快捷键+虚拟鼠标:ToDesk远程操作AI效率拉满
人工智能·python·深度学习·神经网络·自然语言处理·计算机外设·安全架构
敲代码的乔帮主1 小时前
MokioMind 各训练阶段数据样本对比
人工智能·深度学习·机器学习
alphaTao1 小时前
LeetCode 每日一题 2026/10/5-2026/10/11
算法·leetcode
做萤石二次开发的哈哈1 小时前
网络音箱如何接入?音频文件夹、TTS播报、音量管控与ISAPI透传对接详解
人工智能·物联网·蓝海aiot一站式工作台·aiot开发·网络音箱·智慧广播·二次开放
镭封1 小时前
做电视剧解说视频用什么软件?配音、文案处理一次解决
人工智能·小程序·音视频·语音识别·媒体
liliangcsdn1 小时前
现金流指标的探索和分析
大数据·算法
欣欣之王来了1 小时前
国外主流大模型深度对比:GPT、Claude、Gemini技术细节与实战选型指南
人工智能·ai·大模型
蜗牛互联网1 小时前
Java Agent 工具调用的 allowlist、参数校验与调用预算
java·开发语言·人工智能·后端·oracle