基于matlab的神经网络的高级入门基础

神经网络是一种强大的机器学习算法,如今已经广泛应用于各种领域,例如图像识别、语音识别、自然语言处理等。在本篇文章中,将深入探讨神经网络的高级概念,包括反向传播算法、深度学习框架、卷积神经网络、正则化等,并给出大量的 MATLAB 代码实现以及具体的操作方法。

##神经网络的前向传播

神经网络的前向传播是指输入一组输入数据,通过神经网络的层层计算,得到最终的输出结果的过程。假设我们有一个三层神经网络,其中输入层有 n 1 n_1 n1 个节点,隐藏层有 n 2 n_2 n2 个节点,输出层有 n 3 n_3 n3 个节点。假设输入数据为 x ∈ R n 1 x\in\mathbb{R}^{n_1} xRn1,输出结果为 y ∈ R n 3 y\in\mathbb{R}^{n_3} yRn3。则神经网络的前向传播可以表示为:

z 2 = W ( 1 ) x + b ( 1 ) a 2 = f ( z 2 ) z 3 = W ( 2 ) a 2 + b ( 2 ) a 3 = f ( z 3 ) y = a 3 \begin{aligned} z_2 &= W^{(1)}x + b^{(1)}\\ a_2 &= f(z_2)\\ z_3 &= W^{(2)}a_2 + b^{(2)}\\ a_3 &= f(z_3)\\ y &= a_3 \end{aligned} z2a2z3a3y=W(1)x+b(1)=f(z2)=W(2)a2+b(2)=f(z3)=a3

其中, z 2 z_2 z2 z 3 z_3 z3 分别为隐藏层和输出层的加权输入, a 2 a_2 a2 a 3 a_3 a3 分别为隐藏层和输出层的激活值, f f f 表示激活函数, W ( 1 ) W^{(1)} W(1) W ( 2 ) W^{(2)} W(2) 分别为输入层到隐藏层和隐藏层到输出层的权重矩阵, b ( 1 ) b^{(1)} b(1) b ( 2 ) b^{(2)} b(2) 分别为隐藏层和输出层的偏置向量。

##神经网络的反向传播

神经网络的反向传播是指通过训练数据对神经网络进行调整的过程。其中最关键的部分就是计算损失函数对神经网络参数的偏导数,以便使用梯度下降等优化算法对神经网络参数进行更新。假设训练集包含 m m m 个样本 ( x ( 1 ) , y ( 1 ) ) , … , ( x ( m ) , y ( m ) ) (x^{(1)},y^{(1)}),\ldots,(x^{(m)},y^{(m)}) (x(1),y(1)),,(x(m),y(m)),其中 x ( i ) ∈ R n 1 x^{(i)}\in\mathbb{R}^{n_1} x(i)Rn1 为输入数据, y ( i ) ∈ R n 3 y^{(i)}\in\mathbb{R}^{n_3} y(i)Rn3 为输出结果。损失函数采用平方误差损失函数,即:

代价函数:

J ( W , b ) = 1 2 m ∑ i = 1 m ∥ y ( i ) − a 3 ( i ) ∥ 2 J(W,b) = \frac{1}{2m}\sum_{i=1}^m\left\Vert y^{(i)} - a_3^{(i)}\right\Vert^2 J(W,b)=2m1i=1m y(i)a3(i) 2

其中, m m m 表示训练集的大小, ∥ ⋅ ∥ \left\Vert\cdot\right\Vert 表示 L2 范数, y ( i ) y^{(i)} y(i) 表示第 i i i 个训练样本的真实标签, a 3 ( i ) a_3^{(i)} a3(i) 表示神经网络对第 i i i 个训练样本的预测结果。

反向传播算法中代价函数对权重 W W W 的偏导数:

∂ J ( W , b ) ∂ W = 1 m ( ∂ J ( W , b ) ∂ a 3 ⋅ ∂ a 3 ∂ z 3 ) ⋅ a 2 T \frac{\partial J(W,b)}{\partial W} = \frac{1}{m}\left(\frac{\partial J(W,b)}{\partial a_3}\cdot\frac{\partial a_3}{\partial z_3}\right)\cdot a_2^T WJ(W,b)=m1(a3J(W,b)z3a3)a2T

其中, ∂ J ( W , b ) ∂ a 3 \frac{\partial J(W,b)}{\partial a_3} a3J(W,b) 表示代价函数对输出层输出 a 3 a_3 a3 的偏导数, ∂ a 3 ∂ z 3 \frac{\partial a_3}{\partial z_3} z3a3 表示输出层的激活函数对加权输入 z 3 z_3 z3 的偏导数, a 2 T a_2^T a2T 表示上一层的输出 a 2 a_2 a2 的转置。

反向传播算法中代价函数对偏置 b b b 的偏导数:

∂ J ( W , b ) ∂ b = 1 m ∑ i = 1 m ( ∂

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值