快捷搜索:  汽车  科技

如何建立多层感知器:简单基础的多层感知机

如何建立多层感知器:简单基础的多层感知机隐藏层越多,表达能力越强,带有激活函数隐藏层的MLP,可以近似任何函数。激活函数是个非线性组件,提高模型的表达能力。Mitchell 《Machine Learning》Distributed Representations of Words and Phrases and their CompositionalityPaddlePaddle API 文档

MLP(multilayer perceptrons)/ANN(Aritical)/FNN(Forward)/DNN/DFN,指的都是多层感知机,以区别于CNN、RNN。

如何建立多层感知器:简单基础的多层感知机(1)

感知机

线性、加权、判别,组成的最直接、最简单、最基础的感知机,类比生物神经元,深度学习的基石。

如何建立多层感知器:简单基础的多层感知机(2)

Mitchell 《Machine Learning》

Sigmoid Unit,简单改了下判别函数为激活函数,提高了感知机的非线性表达能力,同时为信息持续传播,提供了可能。

如何建立多层感知器:简单基础的多层感知机(3)

Mitchell 《Machine Learning》

输入
  1. 输入是连续数值,如果本身是连续数值,一般经过归一化等处理
  2. 如果是离散值,一般经过one-hot等编码
  3. 一般都会在输入引入embedding层,丰富输入的特征表达

如何建立多层感知器:简单基础的多层感知机(4)

Distributed Representations of Words and Phrases and their Compositionality

如何建立多层感知器:简单基础的多层感知机(5)

PaddlePaddle API 文档

激活函数

激活函数是个非线性组件,提高模型的表达能力。

如何建立多层感知器:简单基础的多层感知机(6)

隐藏层

隐藏层越多,表达能力越强,带有激活函数隐藏层的MLP,可以近似任何函数。

以下数据摘自是Ian Goodfellow、Yoshua Bengio、Aaron Courville的《Deep Learning》。
整体来看,深度是网络表达能力的主要因素。

如何建立多层感知器:简单基础的多层感知机(7)

网络表达能力与深度成指数关系

如何建立多层感知器:简单基础的多层感知机(8)

网络越深,准确率越高

如何建立多层感知器:简单基础的多层感知机(9)

整体来看网络复杂需要建立在深度基础之上

具体网络深度及每层单元数,大趋势看起来少-多-少的结构较多:

如何建立多层感知器:简单基础的多层感知机(10)

如何建立多层感知器:简单基础的多层感知机(11)

如何建立多层感知器:简单基础的多层感知机(12)

http://uc-r.github.io/feedforward_DNN

如何建立多层感知器:简单基础的多层感知机(13)

输出
  1. 回归任务,连续输出,最后一层线性求和之后,可以直接输出
  2. 分类任务,离散输出,最后一层需要增加softmax层

如何建立多层感知器:简单基础的多层感知机(14)

如何建立多层感知器:简单基础的多层感知机(15)

PaddlePaddle API 文档

前向计算

如何建立多层感知器:简单基础的多层感知机(16)

Ian Goodfellow、Yoshua Bengio、Aaron Courville 《Deep Learning》

反向传播

如何建立多层感知器:简单基础的多层感知机(17)

Ian Goodfellow、Yoshua Bengio、Aaron Courville 《Deep Learning》

代码示例

如何建立多层感知器:简单基础的多层感知机(18)

PaddlePaddle 官方文档

应用场景

如何建立多层感知器:简单基础的多层感知机(19)

推荐系统DeepFM的DNN部分

如何建立多层感知器:简单基础的多层感知机(20)

强化学习框架IMPALA示例的全连接FC部分

如何建立多层感知器:简单基础的多层感知机(21)

NLP阅读理解BiDAF模型的Output Layer

猜您喜欢: