多层感知机
多层感知机(MLP,Multilayer Perceptron)是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上。它最主要的特点是有多个神经元层,因此也叫深度神经网络(DNN: Deep Neural Networks)。
感知机是单个神经元模型,是较大神经网络的前身。神经网络的强大之处在于它们能够学习训练数据中的表示,以及如何将其与想要预测的输出变量联系起来。从数学上讲,它们能够学习任何映射函数,并且已经被证明是一种通用的近似算法。
神经网络的预测能力来自网络的分层或多层结构。而多层感知机是指具有至少三层节点,输入层,一些中间层和输出层的神经网络。给定层中的每个节点都连接到相邻层中的每个节点。输入层接收数据,中间层计算数据,输出层输出结果。
- 感知机是人工智能最早的模型;
是一个有监督的学习算法; - 本质上感知机是一个二分类的问题:输入大于0就输出1,否则输出0。
与线性回归的不同:线性回归输出的是一个实数而感知机输出的是一个离散的类。
与softmax的区别:在有n个类的情况下,softmax会输出n个元素,所以可以是一个多分类的问题,但是感知机这里只输出一个元素,说明感知机最多只能做一个二分类问题 。
隐藏层
以通过在网络中加⼊⼀个或多个隐藏层来克服线性模型的限制,使其能处理更普遍的函数关系类型。 要做到这⼀点,最简单的方法是将许多全连接层堆叠在⼀起。每⼀层都输出到上面的层,直到生成最后的输出。我们可以把前L−1层看作表示,把最后⼀层看作线性预测器。
上图这个多层感知机有4个输入,3个输出,其隐藏层包含5个隐藏单元。输入层不涉及任何计算,因此使用此网络, 产生输出只需要实现隐藏层和输出层的计算。因此,这个多层感知机中的层数为2。注意,这两个层都是连接的。每个输入都会影响隐藏层中的每个神经元,而隐藏层中的每个神经元又会影响输出层中的每个神经元。
激活函数
激活函数(activation function)通过计算加权和并加上偏置来确定神经元是否应该被激活,它们将输⼊信号 转换为输出的可微运算。⼤多数激活函数都是非线性的。
总结
多层感知机使用隐藏层和激活函数来得到非线性模型
常用激活函数是Sigmoid,Tanh,RELU
使用Softmax来处理多分类
超参数为隐藏层数和各个隐藏层大小
当然,不仅限于多层感知机(Multilayer Perceptron,MLP)或深度神经网络。神经网络包括多层感知机在内,都十分依赖如下条件:
1.学习过程
神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。
学习的本质:对可变权值的动态调整。
2.参数更新
前向传播(正向传播):输入样本--输入层--各隐藏层--输出层
反向传播(误差反传):输出层——各隐藏层——输入层
计算神经网络参数梯度的方法:修正各层单元的权值
3.训练误差和泛化误差
训练误差:模型在训练数据集上的误差
泛化误差: 模型在新数据集上的误差
示例:使用历年试真题准备将来的考试
在历年考试真题取得好成绩(训练误差)并不能保证未来考试成绩更好(泛化误差)
学生A 通过死记硬背学习在历年真题考试中取得好成绩
学生B理解并给出答案的解释
4.验证数据集和测试数据集
验证数据集:一个用来评估模型好坏的数据集
测试数据集:评估最终模型的性能
5.过拟合和欠拟合
当学习器把训练样本学得"太好"了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质——过拟合;
对训练样本的一般性质尚未学好——欠拟合
6.模型复杂度的影响
很难比较不同算法之间的复杂度;例如树与神经网络
给定算法族,两个主要因素很重要:参数个数、每个参数值的选择范围
7.数据复杂度的影响
多种因素很重要:
样本数量
每个样本中的特征数量
时间、空间结构
多样性