前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【动手学深度学习笔记】之多层感知机(MLP)

【动手学深度学习笔记】之多层感知机(MLP)

作者头像
树枝990
发布于 2020-08-19 23:51:18
发布于 2020-08-19 23:51:18
2.6K00
代码可运行
举报
文章被收录于专栏:拇指笔记拇指笔记
运行总次数:0
代码可运行

1. 多层感知机

本节将以多层感知机为例,介绍多层神经网络的概念。

1.1 隐藏层

下图为一个多层感知机的神经网络图。

多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer)。如图所示的隐藏层一共有5个隐藏单元。由于输入层不涉及计算,因此这个多层感知机的层数为2。如图所示的多层感知机中的隐藏层和输出层都是全连接层。

对于一个只有一个隐藏层且隐藏单元个数为h的多层感知机,记它的输出为H。因为这个多层感知机中的隐藏层和输出层都是全连接层,所以可以设:隐藏层的权重参数和偏差参数分别为和,输出层的权重参数和偏差参数分别为和

由此我们可以得到单隐藏层神经网络输入、隐藏层输出和输出之间的关系

将两个式子联立起来,得到输入与输出之间的关系。

由上式不难看出,这样的神经网络虽然引入了(一个或多个)隐藏层,却依然等价于一个单层神经网络。引起该问题的根源是全连接层,全连接层只是对数据进行仿射变换,而多个仿射变换叠加仍然为一个仿射变换。为了解决这样的问题,引入了非线性变换,即激活函数。

1.2 激活函数

非线性函数是指对隐藏变量使用暗元素运算的非线性函数进行变换,然后再做为下一个全连接层输入。这个非线性函数叫做激活函数。

下面介绍几种常用的激活函数。

1.2.1 ReLU函数(线性整流函数)

ReLU函数

  • 功能:ReLU函数只保留正数元素,并将负数元素清零。
  • 定义:
  • 函数图像和导数图像:
  • 绘制程序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%matplotlib inlineimport torchimport numpy as npimport matplotlib.pylab as plt
x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)y = x.relu()
y.sum().backward()z = x.grad
x = x.detach().numpy()y = y.detach().numpy()plt.ylim(ymin=-1,ymax=7)plt.plot(x, y)plt.xlabel('x')plt.ylabel('ReLU(x)')
plt.figure(2)
plt.ylim(ymin=-0.05,ymax=1.05)plt.xlim(xmin=-8,xmax=8)plt.plot(x,z)plt.xlabel('x')plt.ylabel('grad of ReLU(x)')

1.2.2 sigmoid函数(S型函数)

sigmoid函数

  • 功能:sigmoid函数可以将元素的值变换到0和1之间。
  • 定义:
  • 函数图像和导数图像:
  • 绘制程序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%matplotlib inlineimport torchimport numpy as npimport matplotlib.pylab as plt
x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)y = x.sigmoid()
y.sum().backward()z = x.grad
x = x.detach().numpy()y = y.detach().numpy()plt.ylim(ymin=-0.1,ymax=1.1)plt.plot(x, y)plt.xlabel('x')plt.ylabel('sigmoid(x)')
plt.figure(2)plt.ylim(ymin=-0.05,ymax=0.3)plt.xlim(xmin=-8,xmax=8)plt.plot(x,z)plt.xlabel('x')plt.ylabel('grad of sigmoid(x)')

1.2.3 tanh函数(双曲正切函数)

tanh函数

  • 功能:可以将元素的值变换到-1和1之间
  • 定义:
  • 函数图像和导数图像
  • 绘制程序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%matplotlib inlineimport torchimport numpy as npimport matplotlib.pylab as plt
x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)y = x.tanh()
y.sum().backward()z = x.grad
x = x.detach().numpy()y = y.detach().numpy()plt.ylim(ymin=-1.1,ymax=1.1)plt.plot(x, y)plt.xlabel('x')plt.ylabel('tanh(x)')
plt.figure(2)plt.ylim(ymin=-0.05,ymax=1.1)plt.xlim(xmin=-8,xmax=8)plt.plot(x,z)plt.xlabel('x')plt.ylabel('grad of tanh(x)')

1.3 多层感知机(MLP)

多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换 。多层感知机的层数和各隐藏层中隐藏单元个数都是超参数。

式中表示激活函数,通过对输出层进行操作,我们可以将多层感知机和之前的线性回归模型及softmax回归模型相结合。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拇指笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
动手学深度学习(三) 多层感知机
深度学习主要关注多层模型。在这里,我们将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念。
致Great
2020/02/24
1.1K0
从零开始学Pytorch(三)之多层感知机的实现
我们将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念。
墨明棋妙27
2022/08/24
1.2K0
从零开始学Pytorch(三)之多层感知机的实现
多层感知机
多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换,多层感知机的层数个各个隐藏层中隐藏单元个数都是超参数,输出可以通过以下公式计算得出:
村雨遥
2022/06/15
6310
多层感知机
机器学习(ML)三之多层感知机
多层感知机深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏层
Java架构师必看
2022/01/11
8650
机器学习(ML)三之多层感知机
【机器学习-监督学习】神经网络与多层感知机
  本文将会介绍机器学习中最重要的内容之一——神经网络(neural network,NN),它是深度学习的基础。神经网络的名称来源于生物中的神经元。自有计算机以来,人们就希望能让计算机具有和人类一样的智能,因此,许多研究者将目光放到了人类的大脑结构上。作为生物神经系统的基本单元,神经元在形成智能的过程中起到了关键作用。神经元的结构并不复杂,简单来说,神经元由树突、轴突和细胞体构成。图1是神经元的结构示意图。由其他神经元传来的神经脉冲在细胞间通过神经递质传输。神经递质被树突接收后,相应的神经信号传给细胞体,由细胞体进行处理并积累。当积累神经递质的兴奋性超过了某个阈值,就会触发一个动作电位,将新的信号传至轴突末梢的突触,释放神经递质给下一个神经元。生物的智能、运动等几乎所有生命活动的控制信号都由这些看似简单的神经元进行传输。
Francek Chen
2025/01/22
2460
【机器学习-监督学习】神经网络与多层感知机
【深度学习基础】多层感知机 | 多层感知机概述
深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。
Francek Chen
2025/01/22
2340
【深度学习基础】多层感知机 | 多层感知机概述
pytorch学习笔记(十):MLP[通俗易懂]
多层感知机(multilayer perceptron, MLP) 在单层神经网络的基础上引入了一到多个隐藏层(hidden layer)。隐藏层位于输入层和输出层之间。图3.3展示了一个多层感知机的神经网络图,它含有一个隐藏层,该层中有5个隐藏单元。
全栈程序员站长
2022/07/04
1.5K0
pytorch学习笔记(十):MLP[通俗易懂]
动手学DL——MLP多层感知机【深度学习】【PyTorch】
加入一个或多个隐藏层+激活函数来克服线性模型的限制, 使其能处理更普遍的函数关系类型,这种架构通常称为多层感知机(multilayer perceptron)。
来杯Sherry
2023/08/10
1.6K0
动手学DL——MLP多层感知机【深度学习】【PyTorch】
python实现多层感知机
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
西西嘛呦
2020/08/26
2.4K0
python实现多层感知机
TensorFlow HOWTO 4.1 多层感知机(分类)
输入层除了提供数据之外,不干任何事情。隐层和输出层的每个节点都计算一次线性变换,并应用非线性激活函数。隐层的激活函数是压缩性质的函数。输出层的激活函数取决于标签的取值范围。
ApacheCN_飞龙
2019/02/15
5300
TensorFlow HOWTO 4.1 多层感知机(分类)
【动手学深度学习】多层感知机模型选择、欠拟合和过拟合研究详情
启动jupyter notebook,使用新增的pytorch环境新建ipynb文件,为了检查环境配置是否合理,输入import torch以及torch.cuda.is_available() ,若返回TRUE则说明研究环境配置正确,若返回False但可以正确导入torch则说明pytorch配置成功,但研究运行是在CPU进行的,结果如下:
SarPro
2024/06/06
1930
【动手学深度学习】多层感知机模型选择、欠拟合和过拟合研究详情
【动手学深度学习】多层感知机之暂退法问题研究详情
如果更改第一层和第二层的暂退法概率,会发生什么情况?具体地说,如果交换这两个层,会发生什么情况?设计一个实验来回答这些问题,定量描述该结果,并总结定性的结论
SarPro
2024/06/06
1540
【动手学深度学习】多层感知机之暂退法问题研究详情
8个深度学习中常用的激活函数
当在隐藏层和输出层中实现时,激活函数的选择非常关键。模型的准确性和损失很大程度上依赖于激活函数。此外,必须根据您对模型的期望来选择它们。例如,在二值分类问题中,sigmoid函数是一种最优选择。
deephub
2021/07/01
6690
【深度学习基础】多层感知机 | 多层感知机的实现
深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。
Francek Chen
2025/01/22
1330
【深度学习基础】多层感知机 | 多层感知机的实现
【动手学深度学习】多层感知机之权重衰减研究详情
启动jupyter notebook,使用新增的pytorch环境新建ipynb文件,为了检查环境配置是否合理,输入import torch以及torch.cuda.is_available() ,若返回TRUE则说明研究​​​​​​​环境配置正确,若返回False但可以正确导入torch则说明pytorch配置成功,但研究运行是在CPU进行的,结果如下:
SarPro
2024/06/06
1520
【动手学深度学习】多层感知机之权重衰减研究详情
【深度学习基础】多层感知机 | 数值稳定性和模型初始化
  到目前为止,我们实现的每个模型都是根据某个预先指定的分布来初始化模型的参数。有人会认为初始化方案是理所当然的,忽略了如何做出这些选择的细节。甚至有人可能会觉得,初始化方案的选择并不是特别重要。相反,初始化方案的选择在神经网络学习中起着举足轻重的作用,它对保持数值稳定性至关重要。此外,这些初始化方案的选择可以与非线性激活函数的选择有趣的结合在一起。我们选择哪个函数以及如何初始化参数可以决定优化算法收敛的速度有多快。糟糕的选择可能会导致我们在训练时遇到梯度爆炸或梯度消失。本节将更详细地探讨这些主题,并讨论一些有用的启发式方法。这些启发式方法在整个深度学习生涯中都很有用。
Francek Chen
2025/01/25
1670
【深度学习基础】多层感知机 | 数值稳定性和模型初始化
【动手学深度学习笔记】之多层感知机实现
Fashion-MNIST数据集中的图像为28*28像素,也就是由784个特征值。Fashion-MNIST数据集一共有十个类别。因此模型需要784个输入,10个输出。假设隐藏单元为256(超参数,可调节)。
树枝990
2020/08/19
6310
实现多层感知机
缩写:MLP,这是一种人工神经网络,由一个输入层、一个或多个隐藏层以及一个输出层组成,每一层都由多个节点(神经元)构成。在MLP中,节点之间只有前向连接,没有循环连接,这使得它属于前馈神经网络的一种。每个节点都应用一个激活函数,如sigmoid、ReLU等,以引入非线性,从而使网络能够拟合复杂的函数和数据分布。
用户11315985
2024/10/16
830
实现多层感知机
TensorFlow HOWTO 4.2 多层感知机回归(时间序列)
导入数据,并进行预处理。我们使用国际航班乘客数据集,由于它不存在于任何现有库中,我们需要先下载它。
ApacheCN_飞龙
2019/02/15
4830
TensorFlow HOWTO 4.2 多层感知机回归(时间序列)
「Workshop」第二十九期 深度学习入门
感知机接受多个信号(x1,x2),输出一个信号(y), w1/w2是权重,圆圈就代表神经元
王诗翔呀
2021/01/04
7290
「Workshop」第二十九期 深度学习入门
相关推荐
动手学深度学习(三) 多层感知机
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验