MLP是一种基于前馈神经网络(Feedforward Neural Network)的深度学习模型,由多个神经元层组成,其中每个神经元层与前一层全连接。多层感知机可以用于解决分类、回归和聚类等各种机器学习问题。
MLP也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
神经网络(Neural Network)是一种受到生物神经系统启发的计算模型,用于模拟和解决各种机器学习和人工智能任务。它由多个互连的节点(或神经元)层次结构组成,每一层都包含多个神经元,这些神经元之间通过带有权重的连接相互链接。神经网络的核心思想是通过学习这些权重来执行复杂的任务,例如分类、回归、图像识别、自然语言处理和控制等
结构:神经网络通常包括输入层、隐藏层(可以有多层)和输出层。每一层都由多个神经元组成,它们之间通过连接进行信息传递。
权重:权重是每个连接的参数,决定了信号如何在网络中传播。通过训练,神经网络会自动调整这些权重以适应特定任务。
激活函数:激活函数用于引入非线性性质,使神经网络能够学习复杂的函数。常见的激活函数包括Sigmoid、ReLU(Rectified Linear Unit)和Tanh等。
前向传播:在前向传播过程中,输入数据从输入层流向输出层,通过层与层之间的权重和激活函数的组合来生成预测结果。
反向传播:反向传播是神经网络的训练过程,它使用损失函数来计算预测与实际值之间的误差,然后通过链式法则来更新权重,以减小误差。
MLP是神经网络的一种,它们都由神经元和层组成,可以用于各种机器学习任务。它们都使用激活函数来处理输入数据。
MLP是神经网络的一个子集,而神经网络是一个更广泛的概念,可以包括各种不同类型的结构,如卷积神经网络(CNN)和循环神经网络(RNN)。MLP通常是前馈的,而神经网络可以包括循环连接和卷积结构,适用于不同类型的数据和任务。
多层感知机是神经网络的一种特定形式,用于监督学习任务,而神经网络是一个更通用的术语,包括多种不同类型的网络结构
自动特征提取:神经网络能够自动学习特征,不需要手动提取特征,这有助于简化问题的处理。
在机器学习中进行分类任务,我们首先就需要明确特征和标签,而特征数目的选取将决定模型的好坏,征数目过少,欠拟合,如果特征数目过多,过拟合,意味着我们需要花费大量时间精力在特征工程上
适用性广泛:神经网络在各种领域中都表现出色,包括图像识别、语音识别、自然语言处理、推荐系统、控制系统等。它们可以用于解决多种复杂的问题。
非线性建模:神经网络通过激活函数引入非线性,可以处理复杂的非线性关系,这在许多现实世界问题中非常重要。
可扩展性:神经网络可以根据任务的复杂性进行扩展,可以构建深度神经网络(深度学习)来解决更复杂的问题。
泛化能力:当经过训练后,神经网络通常能够很好地泛化到之前未见过的数据,这是因为它们具有适应新数据的能力
卷积神经网络(Convolutional Neural Network,CNN)是传统神经网络的一个改进,它包括三个基本层
CNN的核心是卷积层,这些层使用卷积操作来提取图像中的特征。卷积操作通过滑动一个小的滤波器(卷积核)在输入图像上,将局部区域与滤波器进行卷积操作,从而捕捉特定特征,例如边缘、纹理等。
卷积可以理解为一种类似于加权运算的操作
在进行卷积操作之前,需要定义一个过滤器(卷积核),其中的每一格都有一个权重值。
卷积的过程是将每个格子中的权重值与图片对应的像素值相乘并累加,所得到的值就是特征图FeatureMap(经过卷积运算后的神经元集合)中的一个值。
注意:
- 卷积核的通道数与输入数据的通道数相同
- 卷积核的个数与输出的通道数相同
在卷积层之后,通常会添加池化层。池化层通过取局部区域的最大值或平均值来降低特征图的维度,从而减小计算复杂度并提取最重要的信息。
在卷积和池化层之后,通常有一个或多个全连接层,用于将提取的特征映射到最终的分类或回归结果
CNN通过“局部连接”和“参数共享”可以更高效地完成图像识别任务
局部连接:每个神经元不再和上一层的所有神经元连接,而只和上一层相邻的局部区域内的神经元连接。
参数共享:在卷积的过程中,一个卷积核内的参数是共享的
特征学习:CNN 能够自动学习图像的特征,无需手动提取特征。这使得它们非常适合图像处理任务,如图像分类、物体检测和图像分割。
平移不变性:CNN 使用卷积操作来捕获局部特征,具有平移不变性。这意味着模型能够识别相同特征的不同实例,无论它们在图像中的位置如何。
参数共享:卷积层中的参数共享使得网络更加高效,减少了需要训练的参数数量,降低了过拟合的风险。
适用性广泛:CNN 不仅仅适用于图像处理,还可用于其他网格结构数据的处理,如文本分类和音频识别。
深度学习:CNN 可以扩展为深度卷积神经网络,即深度学习模型,可以处理更复杂的问题,并在大规模数据上取得显著的性能提升。
由于过滤器(卷积核)在移动到边缘的时候就结束了,中间的像素点比边缘的像素点参与计算的次数要多。因此越是边缘的点,对输出的影响就越小,我们就有可能丢失边缘信息。
为了解决这个问题,可以进行填充(padding),即在图片外围补充一些像素点,并将这些像素点的值初始化为0。