深度学习基础—简单的卷积神经网络

3.1.卷积层

下面以卷积神经网络的某一层为例,详解一下网络的结构。

假设当前位于l层,则输入6*6*3的彩色图片,有两个3*3*3的过滤器,卷积操作后将输出2个4*4的图片。如果把过滤器看成权重w,卷积这一步操作其实就是w*a,因此再加上偏置b,就得到类似普通神经网络的权重线性组合z,再把z输入到激活函数中,得到的结果a有2个,把这两个叠加起来,组成的a就是卷积层的输出。在这过程中卷积的结果4*4的图片大小一直没有变,加偏置和经过激活函数,实际上是对4*4的每一个元素进行运算,因此4*4的大小一直都不变,直到叠加后,卷积层的输出就是4*4*2。

可以发现卷积层和普通神经网络的隐藏层没有多大区别,就是把权重的线性组合变成卷积运算,并把激活函数的结果堆叠成一个多通道的图片。为了一般化,现在给出卷积层的参数标记:

其中,f[l]表示l层过滤器的大小,比如常见的3*3,、5*5等。p[l]表示l层输入的填充数,比如p[l]=1就是在第l层的输入填充一圈像素值,通常是0。s[l]表示第l层的卷积步长。nc[l]表示第l层过滤器的数量。第l层的输入是第l-1层的输出,nH[l-1]和nW[l-1]表示第l层输入的图片的高和宽(不一定是正方形图片),由于l-1层有几个过滤器,最后输出的图片就有几个通道,因此l层的输入图片的通道数等于l-1层的过滤器的数量。每一层为了卷积运算能正常进行,过滤器的通道数等于输入图片的通道数。l层的输出的通道数和本层过滤器的数量一致,但是高和宽与前面一篇文章的结论有关:

深度学习基础---卷积运算http://t.csdnimg.cn/Z7ETj

激活函数的输入就是对卷积结果的每一个元素,而权重的数量是过滤器的元素个数*过滤器的数量,偏置的数量是过滤器的数量。

3.2.构建简单的卷积神经网络结构

假设输入的彩色图片为x,大小是39*39*3,在第一层中,过滤器有10个,每个大小为3*3*3(通道数和输入的通道数相同),步长为1,没有填充,则输出的结果是37*37*10。第二层过滤器有20个,每个大小为5*5*10(通道数和输入的通道数相同),步长为2,没有填充,则输出的结果是17*17*20。第三层过滤器有40个,每个大小为5*5*20(通道数和输入的通道数相同),步长为2,没有填充,则输出的结果是7*7*40。

在最后一层,将7*7*40的图片平滑展开,每个元素都一个单元,一共1960个单元,也就是1960长度的列向量,再经过logistics回归单元(二分类)或softmax回归单元(k分类),最终输出分类的结果。

相关推荐
风象南19 分钟前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia1 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮2 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬2 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia2 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区2 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两5 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪5 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232555 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源