当前位置:网站首页>一维卷积神经网络_卷积神经网络的基础知识「建议收藏」
一维卷积神经网络_卷积神经网络的基础知识「建议收藏」
2022-08-02 14:00:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
一维卷积
一维卷积的输入是一个向量和一个卷积核,输出也是一个向量。
通常状况下,输入向量长度远大于卷积核的长度。
输出向量的长度取决于卷积操作的填充方案,等宽卷积的输出向量的和输入的向量长度相等。
卷积核的长度通常是奇数,这是为了对称设计的。
一个例子:
一维卷积示例
注意相乘的顺序是相反的,这是卷积的定义决定的。
输出长度是7,卷积核长度是3,输出的长度是7-3+1 = 5。
也就是说这里的卷积操作若输入长度是m,卷积核长度是n,则输出长度是m-n+1。
这样的卷积就叫窄卷积。
等宽卷积就是在输入两边各填充(n-1)/2,最终输出长度是m+(n-1)/2*2-n+1 = m。
填充元素可以是0,也可以和边缘一样,也可以是镜像。
如上图例子中的输入向量,
- 填充0后的输入为 012345670
- 重复边缘填充后为:112345677
- 镜像填充后为: 212345676
如下图,等宽卷积以及0填充,输入是1 2 3 4 5 6 7,输出是0 2 4 6 8 10 20
0填充-等宽卷积
换种风格说一下卷积步长的概念,如下图
图a是步长为2,不填充;图b是步长为1,填充0的等宽卷积。
卷积步长为2,可以看成是步长为1状况下的输出隔两个取一个,当然这也就是步长的概念。默认情况下步长是1。使用等宽卷积时,步长为2的一维卷积会使得输出长度是输入的一半。
二维卷积
无填充的二维卷积
如上图,二维的卷积,假设输入维度是mxm,卷积核大小是nxn,则无填充的输出大小是(m-n+1)x(m-n+1)。这和一维卷积是类似的。有填充的二维卷积如下图,
卷积的padding
卷积核的含义
不同卷积核的作用:锐化,边缘等
在信号处理中,某些卷积核也被称为滤波器。如用滤波器对数字图像进行处理,获得目标图像。上图中有三个不同的卷积核,具有不同的作用,如锐化,去燥,提取边缘等。卷积神经网络中学习到的参数主要就是这些滤波器(也就是卷积核),在训练开始时,这些卷积核的值可能是0,或者随机数。训练结束时,这些卷积核就称为学习到的特征。
卷积层
全连接层和卷积层
如上图,全连接层有35个连接,5*7=35个不同参数。卷积层只有5*3=15个连接,但只有3个参数。因为在图b中,相同颜色的连接权重是相等的。这就称为权重共享。而3<7就包含了局部连接的含义,也就是说上边的神经元不是和下边的每一个神经元都有连接,而是它只与附近的几个连接。
池化层
用几个二维的例子来说明,概念非常简单。如这是2×2最大池化,
max-pooling
这是2×2平均池化
average-pooling
但要注意的是这里默认步长是(2,2),也就是横竖两个方向上的步长都是2。
讲道理的话,2×2最大池化步长是1的结果应该是如下图这样的,但好像不是很常用。
步长为1的最大池化
池化层也有填充的概念,道理和卷积差不多。
激活层
激活层不改变特征图的大小。也就是说输入大小是mxm的,则输出也是mxm的。只是输入中每个元素x都变成f(x),f就是激活函数。激活函数是一个一元函数,如sigmoid函数是
Sigmoid激活函数
或者ReLU函数
ReLU激活函数
优化效果的途径
- 增加网络层数
- 增加神经元个数
- 使用dropout
- 使用不同的优化器 Adam,RMSprop等
- 增加训练轮数
- 批处理大小
- 正则化
参考文献
https://nndl.github.io/ 《神经网络与深度学习》
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125311.html原文链接:https://javaforall.cn
边栏推荐
- 电脑死机,Word忘了保存怎么办?怎么恢复?(编辑器是WPS)
- The world's largest Apache open source foundation is how it works?
- 定了!就在7月30日!
- mysql的case when如何用
- 文件加密软件有哪些?保障你的文件安全
- shell脚本“画画”
- 【Tensorflow】AttributeError: module ‘keras.backend‘ has no attribute ‘tf‘
- 删除链表的节点
- 【C语言】手撕循环结构 —— while语句
- Enterprise Network Planning Based on Huawei eNSP
猜你喜欢
How to do short video food from the media?5 steps to teach you to get started quickly
C语言提高篇(三)
如何解决1045无法登录mysql服务器
删除链表的节点
Object detection scene SSD-Mobilenetv1-FPN
Break the limit of file locks and use storage power to help enterprises grow new momentum
[C language] Analysis of function recursion (3)
Mysql index details (with pictures and texts)
网络安全第二次作业
你接受不了60%的暴跌,就没有资格获得6000%的涨幅 2021-05-27
随机推荐
音频处理:浮点型数据流转PCM文件
web测试和app测试的区别?
CSDN(成长一夏竞赛)- 最大数
C# using 使用方法
[typescript] Use the RangePicker component in antd to implement time limit the previous year (365 days) of the current time
Flutter 实现光影变换的立体旋转效果
【C语言】手撕循环结构 —— while语句
OpenMMLab简介
FreeBSD bnxt以太网驱动源码阅读记录三:
C language improvement (3)
Reading IDEO, Design Changes Everything
如何解决mysql服务无法启动1069
世界上最大的开源基金会 Apache 是如何运作的?
The world's largest Apache open source foundation is how it works?
【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
Interview | with questions to learn, Apache DolphinScheduler Wang Fuzheng
监管再次重拳出击,后市如何?2021-05-22
els long block deformation conditions, boundary collision judgment
FFmpeg 的AVCodecContext结构体详解
此次519暴跌的几点感触 2021-05-21