深度学习笔记:稀疏自编码器(1)——神经元与神经网络

本文回顾了UFLDL深度学习教程中的稀疏自编码器,并对其原理进行了归纳整理。主要内容包括神经元与神经网络的基本概念、前向传播过程及其矩阵表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  笔者在很久以前就已经学习过UFLDL深度学习教程中的稀疏自编码器,近期需要用到的时候发现有些遗忘,温习了一遍之后决定在这里做一下笔记,本文不是对神经元与神经网络的介绍,而是笔者学习之后做的归纳和整理,打算分为几篇记录。详细教程请见UFLDL教程,看完教程之后再来看本文可能会更加清晰。

0. 本文中使用的符号一览及本文中的一些约定

符号描述
x 输入值向量,为n
xi i 个输入值
f()神经元激活函数,本文中为sigmoid函数,即 f(z)=11+e(z)
W(l)ij 神经网络中第 l 层第j个神经元和第 l+1 层第 i 个神经元连线上的权值
b(l)i l+1 层第 i 个神经元输入的偏置项
nl神经网络的总层数
Ll l 层,则输入层为L1,输出层为 Lnl
sl l 层的节点数(不包括偏置单元)
ali l 层第i单元的激活值(输出值),当 l=1 时, a(1)i=xi
z(l)i l 层第i单元输入加权和(包括偏置单元),有 a(l)i=f(z(l)i)
hW,b(x) 输入值为 x ,神经网络中权值和偏置项分别为W,b的情况下的输出值


约定 本文中将函数 f() 以及偏导数 f() 进行了针对向量参数的扩展,即:
f([z1,z2,z3])=[f(z1),f(z2),f(z3)]
f([z1,z2,z3])=[f(z1),f(z2),f(z3)]

1. 神经元

1.1 神经元定义

  神经元是以 x 为输入,hW,b为输出的运算单元,如图所示:
此处输入图片的描述

1.2 激活函数

  通常在神经元中输出值为0表示神经元被激活,输出为1表示神经元被抑制,而计算输出值所用的函数则被称为“激活函数”。本文中所用的激活函数为sigmoid函数: f(z)=11+e(z) ,其定义域为 (,+) ,值域为 (0,1) 。以上图神经元为例,假设第 i 个输入值与神经元连线上的权重为w1,输入值偏置项为 b1 ,在单个神经元中,有 hW,b(x)=f(x1w1+x2w2+x3w3+b1) 。观察可以发现,单个神经元就是一个逻辑回归模型。

2. 神经网络

2.1 神经网络定义

  神经网络就是将多个神经元连在一起,前一层神经元的输出就是后一层神经元的输入,下图是一个三层神经网络:
此处输入图片的描述
以上图为例,最左边一层为输入层,中间一层为隐藏层,最右边一层为输出层

2.2 前向传播

  前向传播就是使用输入值 x 通过神经网络计算出输出值hW,b(x)的过程。以上图神经网络为例,前向传播中每一个神经元输入输出过程如下:
z(l)i 表示第 l 层第i个神经元的输入值,有
z(l+1)i=W(l)i1x1+W(l)i2x2+W(l)i3x3+b(l)i (这里其实是一个线性回归模型)
a(l)i=f(z(l)i)
hW,b(x)=a(3)1

2.3 前向传播的矩阵表示

  本文中扩展了函数 f() 针对向量参数的约定,即有:
f([z1,z2,z3])=[f(z1),f(z2),f(z3)]
则上图神经网络中的前向传播过程可表示为:
z(2)=W(1)x+b(1)
a(2)=f(z(2))
z(3)=W(2)a(2)+b(2)
hW,b(x)=f(z(3))
下面以 z(2)=W(1)x+b(1) 为例,展开一下具体的矩阵表示,其他式子略:
z(2)1z(2)2z(2)3=W(1)11W(1)21W(1)31W(1)12W(1)22W(1)32W(1)13W(1)23W(1)33x1x2x3+b(1)1b(1)2b(1)3
最终,神经网络前向传播过程可表示为:
z(l+1)=W(l)a(l)+b(l)
a(l+1)=f(z(l+1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值