从零开始学深度学习——1 卷积神经网络基础

 卷积神经网络基础

只要有包含有卷积层的网络都可以理解为卷积神经网络

GPU矩阵运算快,CPU加法运算快

全连接层

全连接层就是由许许多多的神经元共同连接得来的

将这几个激励×权重进行求和,再加上他的一个偏置(-1),再通过我们这样的一个激励函数f(x),就得到了我们这样一个最终的输出y(神经元)。

比如上面这幅图,从左到右正向传播过程中得到最右边的输出值

将输出值,和所期望的值进行对比,可以得到误差值

然后我们计算每一个节点偏导数就能计算得到每个节点的误差梯度

这样我们将我们得到的损失值反向应用到我们的损失梯度上,就达到了误差的反向传播过程

彩色RCG→灰度化→二值化

计算白色在所在区域的占比

矩阵变为行向量(输入神经网络输入层

最右边一列是期望的输出   左边就是我们的编码的方式 就不会重复了

one-hot是对一些数字进行编码的一种方式

比如一行10个位置,分别代表0-9,如果推测目标是8

那么就在第九个空位写1,其余九个空位全部写0

实际训练过程中将输入层节点数设为25个节点

输出节点数设为10个节点

中间的隐层按情况进行设置

卷积层

卷积——滑动窗口在我们的特征图上进行滑动并计算

将卷积核上的元素值与特征层上的元素值对应相乘再相加

我们是以滑动窗口的形式在上面计算——局部感知

滑动过程中他的值不会发生变化——权值共享

经过卷积核的运算我们的体量会大大缩小

进一步解释我们的卷积

同核特征图相加,不同核特征图拼接

卷积核是刚开始随机生成的,后面不断迭代训练 会得到一个最优的卷积核

1.比如输入特征矩阵是rgb是三维的,那我们的卷积核也是三维的

2.就是我们这里有两个卷积核,那么我们输出的特征矩阵维度也是两个

思考:1、比如偏移量为-1,那我们就在输出特征矩阵上的各个元素都减1就可以,偏移量为1则相加

2、

sigmoid函数越来越大的时候导数就趋近于0了

Relu激活函数 小于0的时候导数就是0 大于0的时候导数就是1

往往在训练过程当中,建议一开始不要用特别大的学习率进行学习,这样会导致很多神经元失活

*这里梯度要是不清楚的话可以自己去看一下视频 

如何通俗地解释梯度下降法_哔哩哔哩_bilibili

WXW:这里就是4×4的大小

FXF:这里就是滤波器(卷积核)的大小,就是3X3

步长:就是每一次移动了多少,这里就是2

P:一般都是加2P,但是这里下面我们就在右边一列跟下面一行加了P所以只要加1个P就可以了

所以这里的N就是等于(4-3+1)/2+1=2

所以得到特征矩阵大小就是2×2

步长如果是2的话,就会出现一个越界行为,所以我们这里可以用padding进行一个补零,就可以正常进行卷积,也不会出现越界的一个情况了

池化层

左边的实例就是,2×2的池化核,寻找最大值

平均值池化层

没有训练参数

对比之前的卷积层我们可以看到这里的卷积核是有各种参数的

但在池化过程中是没有参数的

只改变特征矩阵的w和h,不改变深度

假设我们有一个4×4×3的矩阵的话

池化核为2×2的话,步距也是2的话,结果就是2×2×3

池化核大小和步距所相同

设置池化核核步距都设置为2,这样直接就可以将原来的大小直接缩减为一半,计算也非常方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值