深度学习+感知机
- 1感知机
- 总结
- 2多层感知机
- 1XOR
- 2激活函数
- 3多类分类
- 总结
- 3代码实现
1感知机
是个很简单的模型,是个二分类的问题。
感知机(perceptron)是Frank Rosenblatt在1957年提出的一种人工神经网络,被视为一种最简单形式的前馈神经网络,同时也是神经网络与支持向量机的基础。感知机是一种二元线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机利用梯度下降法对损失函数进行极小化,提出可将训练数据进行线性划分的分离超平面,从而求得感知机模型。
总结
感知机是一个二分类模型,是最早的AI模型之一。
它的求解算法等价于使用批量大小为1的梯度下降。
它不能拟合 XOR函数,导致的第一次 A寒冬。
2多层感知机
1XOR
在深度学习中,XOR(异或)函数是一个重要的概念,经常用于解释和演示神经网络的原理和能力。XOR函数是一个二元逻辑函数,其输出仅当输入的两个二进制位不同时才为1,否则为0。
对于简单的线性模型,如逻辑回归或感知机,它们无法直接学习XOR函数,因为XOR函数在输入空间中不是线性可分的。这意味着不能通过一条直线(或一个超平面)来分隔XOR函数的四个可能输入。然而,通过引入隐藏层(非线性层),神经网络可以学习并表示XOR函数。这是神经网络能够学习复杂函数和非线性关系的关键。
具体来说,一个具有至少一个隐藏层的前馈神经网络可以学习并模拟XOR函数。隐藏层的神经元可以捕获输入数据中的非线性关系,并将这些关系传递给输出层。通过调整网络中的权重和偏置,神经网络可以逐渐逼近XOR函数的输出。
因此,XOR函数在深度学习中常常被用作一个示例,来展示神经网络如何处理非线性问题和逼近复杂函数的能力。通过学习和理解XOR函数,可以更深入地理解神经网络的原理、结构和工作方式
2激活函数
激活函数(Activation Function)在人工神经网络的神经元上运行,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解复杂和非线性的函数起到了至关重要的作用。它们将非线性特性引入到网络中,使得神经网络可以任意逼近任何非线性函数。
以下是几种常见的激活函数:
Sigmoid函数:它的输出取值范围是(0, 1)。这个函数对中央区的信号增益较大,对两侧区的信号增益小,从而在信号的特征空间映射上具有良好的效果。然而,使用sigmoid激活函数可能会造成神经网络的梯度消失和梯度爆炸问题。
Tanh函数:它的输出取值范围是(-1, 1)。Tanh函数的图像与sigmoid函数相似,但也具有梯度消失的缺点,并且计算相对复杂。
ReLU函数:其解析式为out = max(0, x)。当输入x<0时,输出为0;当x>0时,输出为x。ReLU函数使网络更快速地收敛,并且不会饱和,可以对抗梯度消失问题。
Leaky ReLU函数:该函数将ReLU的负区域也设成有梯度的斜线,以解决ReLU在负值区域的“死亡ReLU”问题。
除了上述的几种激活函数,还有其他多种激活函数,如ELU、PReLU、RReLU、Maxout等,它们各有特点,适用于不同的应用场景。
总的来说,选择哪种激活函数取决于具体的应用场景和需求。在实际应用中,可能需要通过试验和调整来找到最适合的激活函数。
激活函数和目标函数在深度学习和机器学习的神经网络模型中各有其独特的作用,它们之间的主要区别体现在以下几个方面:
功能与目的:激活函数的主要作用是为神经网络提供非线性建模能力,通过分层的非线性映射学习,使得网络可以拟合各种复杂的函数。这对于处理现实世界中的复杂数据和问题是至关重要的。而目标函数(或称为损失函数)的主要目的是衡量模型预测结果与实际结果之间的差距,通过最小化这个差距,模型可以在训练过程中逐渐优化自身的参数,从而提高预测精度。
应用位置:激活函数通常被应用于神经网络的每一层,特别是在全连接层或卷积层之后,用于对输入数据进行非线性变换。而目标函数则主要在模型的训练阶段使用,用于计算模型预测结果与实际结果之间的误差,并据此更新模型的参数。
种类与选择:激活函数的种类很多,包括Sigmoid、Tanh、ReLU、Leaky ReLU等,每种函数都有其特定的应用场景和优缺点。选择哪种激活函数通常取决于具体任务和数据特性。而目标函数的种类也较多,如均方误差、交叉熵等,选择哪种目标函数也取决于具体的任务需求。
总的来说,激活函数和目标函数在神经网络中各自扮演着不同的角色,共同协作以实现模型的优化和预测能力的提升。激活函数负责引入非线性特性,使网络能够拟合复杂函数;而目标函数则负责衡量模型预测结果与实际结果的差距,并指导模型的参数更新。
3多类分类
总结
多层感知机(MLP,Multilayer Perceptron)是一种人工神经网络(ANN,Artificial Neural Network)。它除了输入输出层之外,中间可以有多个隐藏层,其中最简单的多层感知机结构仅包含一个隐藏层,形成三层的网络结构。
多层感知机的核心特性在于其层与层之间的全连接性,即每一层的每一个节点都与下一层的每一个节点连接。这种连接模式使得多层感知机能够模拟复杂的非线性关系,并处理各种模式识别和数据分类任务。
在多层感知机中,隐藏层和输出层都具备计算加权和以及通过激活函数处理的功能。激活函数的使用是多层感知机的关键,通过在隐藏层中加入非线性激活函数,多层感知机能够实现对数据的非线性化处理,从而大幅提升其处理复杂问题的能力。常见的激活函数包括ReLU、sigmoid和tanh等。
多层感知机在训练过程中,通过反向传播算法(Backpropagation)来更新网络中的权重和偏置项,以最小化预测结果与实际结果之间的误差。这种训练过程使得多层感知机能够逐渐学习到数据的内在规律和模式,从而实现对新数据的准确预测和分类。
由于多层感知机具有强大的学习和处理能力,它在多个领域都有广泛的应用,如图像识别、语音识别、自然语言处理、数据挖掘等。通过构建和训练多层感知机模型,人们可以解决各种复杂的实际问题,并推动人工智能技术的发展。
多层感知机目前的应用非常广泛。作为人工神经网络的一种,多层感知机在机器学习和深度学习的许多领域中都发挥着重要作用。其强大的学习和处理能力使得它成为处理复杂非线性问题和模式识别任务的首选模型。
多层感知机可以应用于图像识别、语音识别、自然语言处理、数据挖掘等多个领域。在图像识别中,多层感知机可以通过学习图像的特征表示来进行准确的分类和识别;在语音识别中,它可以识别和理解人类的语言;在自然语言处理中,多层感知机可以用于文本分类、情感分析、机器翻译等任务;在数据挖掘中,它可以用于预测和分析大量的数据。
此外,随着深度学习技术的不断发展,多层感知机也在不断地进行改进和优化,以更好地适应各种复杂任务的需求。因此,可以说多层感知机目前的应用非常广泛,并且在未来仍将继续发挥重要作用。
3代码实现
简洁实现: