多层感知机——2020.2.15

一、隐藏层

????多层感知机在单层神经?络的基础上引?了?到多个隐藏层(hidden layer)。隐藏层位于输?层和输出层之间。下图展示了?个多层感知机的神经?络图,它含有?个隐藏层,该层中有5个隐藏单元。

????上图所示的多层感知机中,输?和输出个数分别为4和3,中间的隐藏层中包含了5个隐藏单元(hidden unit)。由于输?层不涉及计算,因此上图的多层感知机的层数为2。由上图可?,隐藏层中的神经元和输?层中各个输?完全连接,输出层中的神经元和隐藏层中的各个神经元也完全连接。因此,多层感知机中的隐藏层和输出层都是全连接层。

二、激活函数

????上述问题的根源在于全连接层只是对数据做仿射变换(affine transformation)?多个仿射变换的叠加仍然是?个仿射变换。解决?法——引??线性变换,即通过激活函数(activation function)实现非线性变换。关于激活函数,可以看我的另一篇博客激活函数总结,本书中列举的三个激活函数是:ReLU函数、sigmoid函数、tanh函数。

三、多层感知机

????多层感知机是指——由全连接组成的神经网络,至少含有一个隐藏层,并且,每个隐藏层的输出均通过激活函数进行变换。多层感知机的层数和各隐藏层中隐藏单元个数都是超参数(超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据——百度百科)。以单隐藏层为例并沿?本节之前
定义的符号(见下面引用内容),多层感知机按以下?式计算输出:

给定?个?批量样本\(X \in R^{n \times d}\) ,其批量??为\(n\) ,输?个数为\(d\)。假设多层感知机只有?个隐藏层,其中隐藏单元个数为 。记隐藏层的输出(也称为隐藏层变量或隐藏变量)为\(H\),有\(H \in R^{n \times h}\)。因为隐藏层和输出层均是全连接层,可以设隐藏层的权重参数和偏差参数分别为\(W_h \in R^{d \times h}\)和\(b_h \in R^{1 \times h}\),输出层的权重和偏差参数分别为\(W_o \in R^{h \times q}\)和\(b_o \in R^{1 \times q}\)。

\[
H = \phi \left( XW_h + b_h \right) \O = HW_o + b_o
\]
????其中\(\phi\)表示激活函数。在分类问题中,我们可以对输出\(O\)做softmax运算,并使?softmax回归中的交叉熵损失函数。 在回归问题中,我们将输出层的输出个数设为1,并将输出\(O\)直接提供给线性回归中使?
的平?损失函数。

小结

  • 多层感知机在输出层与输?层之间加?了?个或多个全连接隐藏层,并通过激活函数对隐藏层输出进?变换。
  • 常?的激活函数包括ReLU函数、sigmoid函数和tanh函数。

原文地址:https://www.cnblogs.com/somedayLi/p/12313804.html

时间: 2024-10-31 03:55:27

多层感知机——2020.2.15的相关文章

记一下机器学习笔记 多层感知机的反向传播算法

<神经网络与机器学习>第4章前半段笔记以及其他地方看到的东西的混杂-第2.3章的内容比较古老预算先跳过. 不得不说幸亏反向传播的部分是<神机>里边人话比较多的部分,看的时候没有消化不良. 多层感知机 书里前三章的模型的局限都很明显,对于非线性可分问题苦手,甚至简单的异或都弄不了.于是多层感知机(也就是传说中的神经网络)就被发明了出来对付这个问题. 多层感知机就是由一系列的感知机,或者说神经元组成,每个神经元都接受若干的输入(树突)并产生一个输出(轴突). 这些神经元被分成若干层,每

基于theano的多层感知机的实现

1.引言 一个多层感知机(Multi-Layer Perceptron,MLP)可以看做是,在逻辑回归分类器的中间加了非线性转换的隐层,这种转换把数据映射到一个线性可分的空间.一个单隐层的MLP就可以达到全局最优. 2.模型 一个单隐层的MLP可以表示如下: 一个隐层的MLP是一个函数:$f:R^{D}\rightarrow R^{L}$,其中 $D$ 是输入向量 $x$ 的大小,$L$是输出向量 $f(x)$ 的大小: $f(x)=G(b^{(2)}+W^{(2)}(s(b^{(1)}+W^{

多层感知机,非权值共享型卷积神经网络,权值共享型卷积神经网络之间的关系

前言:最近学习深度学习,有感写一点总结. 我们常常所说的神经网络,一般是指原始的多层感知机,简称MLP,它是在原始感知机堆叠多层而成的,MLP完全由全连接层组成(当然也有激活函数),即Caffe里的IP层.MLP的最大的缺点在于参数众多,比如说我们的网络层为1000--1000--500--20,那么它的总的参数为:1000*1000+1000*500+500*20. 参数过多不好训练,容易产生过拟合现象. 卷积神经网络,即CNN,它大大减少的网络参数的数目,通过1. 权值共享 2. 局部连接

DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解

DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解 @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43221829 本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Multilayer Perceptron,如果你想详细了解多层感知机算法,可以参考:UFLDL教程,或者参考本文第一部分的算法简介. 经详细注释的代码:放在我的gith

学习笔记TF026:多层感知机

隐含层,指除输入.输出层外,的中间层.输入.输出层对外可见.隐含层对外不可见.理论上,只要隐含层节点足够多,只有一个隐含层,神经网络可以拟合任意函数.隐含层越多,越容易拟合复杂函数.拟合复杂函数,所需隐含节点数,随隐含层数量增多指数下降. 过拟合,模型预测准确率在训练集上升,在测试集下降.泛化性不好,模型记忆当前数据特征,不具备推广能力.参数太多.Hinton教授团队,Dropout.随便丢弃部分输出数据节点.创造新随机样本,增大样本量,减少特征数量,防止过拟合.bagging方法,对特征新种采

多层感知机面临的问题

多层感知机 随着层数越多,所需的节点数目下降,但是随着层数的增多又会出现其他的问题: 过拟合 解决办法: DropOut 参数难以调试 尤其是梯度下降的参数使用Adagrad.Adam.Adadelta等自适应的方法可以降低调试参数的负担. 梯度弥散 使用Sigmoid在反向传播中梯度值会逐渐减少,经过多层的传递后会呈指数级的剧烈减少,因此梯度值在传递到前面几层时就变得非常小了这种情况下,根据训练数据的反馈来更新神经网络的参数将会非常缓慢 使用ReLU激活函数 特点: 单侧抑制性 相对宽阔的兴奋

MXNET:多层感知机

从零开始 前面了解了多层感知机的原理,我们来实现一个多层感知机. # -*- coding: utf-8 -*- from mxnet import init from mxnet import ndarray as nd from mxnet.gluon import loss as gloss import gb # 定义数据源 batch_size = 256 train_iter, test_iter = gb.load_data_fashion_mnist(batch_size) #

keras多层感知机MLP

肯定有人要说什么多层感知机,不就是几个隐藏层连接在一起的吗.话是这么说,但是我觉得我们首先要自己承认自己高级,不然怎么去说服(hu nong)别人呢 from keras.models import Sequential from keras.layers import Dense import numpy as np #设置随机种子,使得每次结果都是一致的 np.random.seed(7) import pandas as pd dataFrame = pd.read_csv("E:/数据集

动手深度学习10- pytorch多层感知机从零实现

多层感知机 定义模型的参数 定义激活函数 定义模型 定义损失函数 训练模型 小结 多层感知机 import torch import numpy as np import sys sys.path.append('..') import d2lzh_pytorch as d2l 我们仍然使用Fashion_MNIST数据集,使用多层感知机对图像进行分类 batch_size = 256 train_iter,test_iter = d2l.get_fahsion_mnist(batch_size