多层感知机及代码实现
完整的实验代码在我的github上👉QYHcrossover/ML-numpy: 机器学习算法numpy实现 (github.com) 欢迎star⭐
多层感知机(MLP)是一种前馈神经网络,由输入层、若干个隐藏层和输出层组成。每一层都由多个神经元组成。MLP一般用于分类问题,可以通过反向传播算法进行训练。在深度学习领域,MLP是一种基础结构,被广泛应用于图像识别、自然语言处理等领域。
多层感知机的结构
多层感知机的结构如下图所示:

其中,输入层接受输入数据,隐藏层通过激活函数将输入数据进行非线性变换,输出层将隐藏层输出映射到目标空间,得到预测结果。在训练过程中,可以通过反向传播算法将预测结果与真实标签进行比对,求得误差并更新模型参数。
多层感知机原理
激活函数
在多层感知机中,激活函数用于将输入数据进行非线性变换。常用的激活函数有sigmoid函数、ReLU函数、tanh函数等。
其中,sigmoid函数定义如下:
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) = \frac{1}{1+e^{-x}} sigmoid(x)=1+e−x1
ReLU函数定义如下:
R e L U ( x ) = m a x ( 0 , x ) ReLU(x) = max(0,x) ReLU(x)=max(0,x)
tanh函数定义如下:
t a n h ( x ) = e x − e − x e x + e − x tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+e−xex−e−x
前向传播
在多层感知机中,前向传播用于将输入数据传递至输出层。设输入数据为 x x x,第 i i i层隐藏层的输出为 h i ( x ) h_i(x) hi(x),第 l l l层隐藏层到第 l + 1 l+1 l+1层隐藏层之间的权重矩阵为 W l W_{l} Wl,第 l l l层隐藏层的偏置为 b l b_l bl,则前向传播的计算过程如下:
h 1 ( x ) = f ( W 1 x + b 1 ) h_1(x) = f(W_1x+b_1) h1(x)=f(W1x+b1)
h l ( x ) = f ( W l h l − 1 ( x ) + b l ) h_l(x) = f(W_lh_{l-1}(x)+b_l) hl(x)=f(Wlhl−1

本文介绍了多层感知机(MLP)的基本结构和工作原理,包括激活函数、前向传播、反向传播和损失函数。通过Python和numpy,详细展示了MLP的代码实现,包括构造函数、前向传播、反向传播和损失函数计算。最后,给出了分类和回归的示例,并强调了MLP在深度学习中的广泛应用。
最低0.47元/天 解锁文章
7036

被折叠的 条评论
为什么被折叠?



