卷积神经网络学习笔记

全连接神经网络的结构

  1. 全连接神经网络的整体结构

    可以简化为智能函数 y=fθ(x)
    输入和输出层一般为数据矩阵

  2. 全连接网络的单元结构
    神经网络的思路:从单元到整体
    一个单元的结构:
    image
    X1,X2,X3...是很多矩阵,然后这些矩阵分别乘上对应的权重矩阵,再加上偏置矩阵b,输入给激活函数,就会输出结果

    用数学形式表达就是:

    y1=h(X1W1+X2W2+X3W3+b)
    h(x)为激活函数)

    所以如果想输出优质结果,就要调整各个输入的权重W

    下一层的神经网络以这一层的输出为输入,进行同样的运算:

    y2=h(y1W+b)

激活函数

  1. 为什么激活函数一般不用线性函数?

    h(x)=kx+b,则下一层的运算结果h((h(x))=k2x+kb+b,仍为y=kx+b形式,也就是说没有体现出层数增加带来的效果

  2. sigmoid函数

    y=11+ez
    y=y(1y)
    image

    特点:值域为(0,1),在x接近0处梯度较好
    优点:

    • 简单,适合分类任务

    缺点

    • 在远离0的地方梯度过小,反向传播算法会出问题
    • 值域不关于0对称
  3. tanh激活函数(双曲正切函数)

    y=ezezez+ez
    y=1y2
    image

    特点:

    • 与sigmoid函数很像
    • 值域为(-1,1),关于0对称

    优点:

    • 比sigmoid收敛快
    • 值域关于0对称

    缺点

    • 可能出现梯度消失问题
  4. ReLU函数

    y={0,x0x,x>0

    y={0,x01,x>0
    image

    特点:

    • 分段函数

    优点:

    • 解决了梯度消失问题
    • 没有指数运算,运算更为简便

    缺点:

    • 可能会出现神经元死亡的问题(也就是当x<0的时候,梯度为0,参数不再更新)
  5. leaky ReLU函数

    y={ax,x0x,x>0(a1)

    y={a,x01,x>0

    特点:

    • 分段函数

    优点:

    • 不会出现神经元死亡的问题

    缺点:

    • 对正、负的输入,对应的函数不同,无法进行一致的关系预测

损失函数

J(x)=12mi=1m(f(xi)yi)2
这里用1/2m而不是1/m是为了方便求导

神经网络的训练流程:

  1. 前向传播
  2. 计算误差
  3. 反向传播

反向传播

梯度下降算法
w=w0aJw
b=b0aJb

关于梯度下降算法的原理:
对一个函数f(x,y),(ω0,f0)f(ω)=f(ω0)+f(ω0)(ωω0)f(ω0)是函数的梯度
移项得
f(ω)f(ω0)=f(ω0)(ωω0)
ω=ωt+1,ω0=ωt,则左边衡量的是下降前后函数值的变化量,这个变化量为负,且我们希望它尽可能小
现在研究右边,设ωω0=Δω,这是一个向量,f(ωt)也是个向量,也就是让这两个向量的内积尽量小,所以他们俩应该共线反向
所以Δω=||Δω||f(ωt)||f(ωt)||
因此ωt+1ωt=||Δω||f(ωt)||f(ωt)||
移项得ωt+1=ωt||Δω||f(ωt)||f(ωt)||
设学习率a=||Δω||||f(ωt)||,则得到梯度下降公式

计算机对图像的存储

每个像素点记录为一个数,灰度图为一个矩阵,彩色图为RGB三通道矩阵

全连接层的缺点

参数量过大,难以计算,容易过拟合

卷积神经网络

  1. 卷积运算
    卷积核在输入矩阵上滑动,运算方式是将卷积核与原矩阵对应的元素相乘再求和,再加上偏置,形成输出的一个元素。
    image
    卷积核的各个元素就相当于全连接的参数W
    卷积有两个特殊的值:步长(Stride)和填充(Padding)
  • 填充就是在图像的周围补0,补几圈P就等于几
  • 步长就是卷积核每次移动的距离
    如何计算输出矩阵的高宽?
    设原矩阵高为H,宽为W,输出的矩阵高宽为OH、OW,卷积核高宽为FH、FW,则
    OH=2P+HFHS+1
    OW=2P+WFWS+1
    如果多通道的图片进行卷积,卷积核也是多通道的,但输出的图会把对应的元素进行相加,成为一个单通道图片
    卷积核可以有多个,如果多个卷积核,就会输出多个特征图
  1. 池化运算
    也有类似卷积的核和步长,是一个核滑动的形式,但是没有参数(这个核称作“感受野”)
    image
    池化有两种常见类型
  • 最大池化:取池化范围的最大值作为输出的元素
  • 平均池化:取池化范围的平均值作为输出的元素
  1. 卷积神经网络的整体构造
    image

深度神经网络的模型搭建

程序结构

model.py:模型
train.py

  • 数据处理
  • 模型训练
  • 记录loss值、accuracy值
    test.py:对数据测试

如果修改模型,可以只改model.py,train和test不用怎么改

posted @   没法要了  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示