感知机
最早的人工智能模型。
给定输入x(向量),权重w(向量),和偏移b(标量),感知机输出:w、x做内积加上偏移b后代入sigma函数。感知机用于处理二分类问题。
感知机与线性回归输出的区别:
感知机输出的是离散的类,线性回归输出的是一个实数。
感知机与softmax回归输出的区别:
softmax可以进行多分类问题,感知机只能处理二分类问题。
感知机的缺点
感知机不能拟合Xor函数,它只能产生线性分割面。
感知机总结
感知机是一个二分类模型,是最早的AI模型之一
它的求解算法等价于使用批量大小为1的梯度下降
它不能拟合Xor函数,导致第一次AI寒冬
多层感知机
隐藏层
线性模型的局限性:
线性模型基于单调性假设,即特征与预测输出之间存在直接的正比反比关系。但生活中不一定所有现线均遵循单调规律。
线性模型忽略了特征间的相互作用和上下文效应,导致模型处理高维且结构化的数据时失效。
使用隐藏层克服线性模型的局限性:
隐藏层(Hidden Layer)是神经网络中位于输入层与输出层之间的层。多层感知机可能包含一个或多个隐藏层。每个额外的隐藏层都能够学习更为复杂的特征交互,从而增强模型对复杂数据分布的学习能力。
我们可以在网络中加入一个或多个隐藏层以克服线性模型的局限性。最简单的方法是将许多全连接层堆叠,如下图所示:
多层感知机(Multilayer Perceptron, MLP)是输入层与输出层间具有一个或多个隐藏层的神经网络。MLP中的每层神经元都与下一层的所有神经元全连接,故MLP中的所有隐藏层都是全连接层,每层的每个节点都受到上一层所有节点的影响。MLP的输出层仅负责接收原始数据,不涉及任何计算,输出层基于隐藏层的输出给出最终的预测或分类结果。
多层感知机的输入为矩阵,表示样本数量为n,每个样本具有d个特征的小批量。
隐藏层权重矩阵的维度由输入特征向量的特征数和隐藏层的隐藏单元个数共同决定。输入特征向量有n个特征,隐藏层中有d个隐藏单元,则隐藏层权重矩阵的维度为d x h,即
,偏置量b1则有
.
隐藏层输出,
H为n x h 的矩阵。
因为隐藏层与输出层全连接,输出层权重矩阵由隐藏层的隐藏单元个数h和输出类别数q共同决定。输出层权重矩阵,偏置量
。则感知机的输出O为
,O为n x q的矩阵。
。
为了使神经网络表达非线性函数,需要进入激活函数。激活函数的输出被称为活性值。通过非线性变换使得神经网络能够拟合非线性函数。有了激活函数,就不可能再将我们的多层感知机退化成线性模型。故隐藏层的输出变为:
,输出层输出仍为:
。
为了构建更通用的多层感知机,可以继续增加隐藏层从而产生更有表达能力的模型。
多隐藏层的计算表示如下:
多层感知机中,超参数为隐藏层的层数和每层隐藏层的大小 。
有多个隐藏层的多层感知机,每层隐藏层的大小应该逐步减少。
激活函数
几个经典的激活函数:
1. Sigmoid激活函数
sigmoid通常称为挤压函数(squashing function),它的作用是:在(-inf, inf)范围内任意输入压缩到区间(0, 1)中的 某个值:
sigmoid函数图像如下图所示:
2. Tanh激活函数
与sigmoid函数类似, tanh(双曲正切)函数也能将其输入压缩转换到区间(-1, 1)上。 tanh函数的公式如下:
当输入在0附近时,tanh函数接近线性变换。 函数的形状类似于sigmoid函数, 不同的是tanh函数关于坐标系原点中心对称。
3. ReLu激活函数
最受欢迎的激活函数。定元素𝑥,ReLU函数被定义为该元素与0的最大值,公式如下:
通俗地说,ReLU函数通过将相应的活性值设为0,仅保留正元素并丢弃所有负元素。
当输入值精确等于0时,ReLU函数不可导。 在此时,我们默认使用左侧的导数,即当输入为0时导数为0。
多层感知机总结
-
多层感知机在输出层和输入层之间增加一个或多个全连接隐藏层,并通过激活函数转换隐藏层的输出。
-
常用的激活函数包括ReLU函数、sigmoid函数和tanh函数。
-
使用Softmax来处理多类分类
-
超参数为隐藏层数和各个隐藏层大小