神经网络(系统性学习三):多层感知机(MLP)

devtools/2024/11/26 3:35:08/

相关文章:

神经网络中常用的激活函数

神经网络(系统性学习一):入门篇

神经网络(系统性学习二):单层神经网络(感知机)


多层感知机MLP

多层感知机MLP)是一种经典的前馈神经网络(Feedforward Neural Network),通常用于解决分类、回归、监督学习任务。它由一个输入层、一个或多个隐藏层和一个输出层组成。

网络结构

  • 输入层:接收数据输入,特征维度等于数据的特征数。

  • 隐藏层:一个或多个隐藏层,每层包含若干个神经元,负责提取数据的特征。

  • 输出层:根据任务(分类或回归)输出最终的结果。

008ba30f281948f5a27376f5e98358bc.png

主要参数

  • 权重(Weights):连接各层神经元的参数,决定信号的强弱。

  • 偏置:为每个神经元添加额外的灵活性。

  • 超参数:学习率、隐藏层数、每个隐藏层的神经元数等

特别强调:每个神经元之间的权重和偏置绝大多数时候不相同!!!

核心步骤

以隐藏层只有一层为例。

(一)初始化权重和偏置

初始化权重和偏置矩阵。即对每个神经元之间的权重和偏置随机设定一个初始值。

1.1 避免对称性问题

如果所有权重都初始化为相同的值(比如都为0),反向传播计算的梯度对所有权重的更新将是完全相同的。这会导致所有神经元学习到相同的特征,从而失去模型的表达能力。

1.2 权重的初始化

权重的初始化影响网络的输入和输出值的分布。如果初始化值过大,可能导致激活函数的输出进入饱和区(如Sigmoid激活函数趋近于0或1),使得梯度变得极小,网络难以训练(梯度消失问题)。如果初始化值过小,网络学习速度会很慢。

权重可以初始化为均值为0的小随机值。

常见方法包括:

  • 均匀分布:随机生成值在 [−a,a] 区间内。

  • 正态分布:随机生成值符合 eq?N%280%2C%20%5Csigma%5E2%29

1.3 偏置的作用

偏置的初始化相对简单,通常设为零或一个小的随机值即可。它的作用是为神经元提供一个额外的自由度,允许模型学习非零输出。

(二)选择损失函数、激活函数

对于分类问题,常用交叉熵损失函数,对于回归问题,常用均方误差损失函数。以MSE损失函数为例,我们假定损失函数为L:

eq?L%20%3D%20%5Cfrac%7B1%7D%7B2%7D%20%5Csum_%7Bl%3D1%7D%5Em%20%28y_l%20-%20t_l%29%5E2

其中, eq?y_l 是预测值,eq?t_l 是真实标签。

激活函数的选择参考文章:常见的激活函数

(三)前向传播

1、从输入层到隐藏层

假设输入层的神经元为 eq?x_1%2C%20x_2%2C%20%5Cdots%2C%20x_n,隐藏层的神经元为 eq?h_1%2C%20h_2%2C%20%5Cdots%2C%20h_k​(隐藏层有 k 个神经元)。输入到第 j 个隐藏层神经元 hj 的计算公式如下:

eq?z_j%20%3D%20w_%7Bj1%7Dx_1%20+%20w_%7Bj2%7Dx_2%20+%20%5Cdots%20+%20w_%7Bjn%7Dx_n%20+%20b_j

其中:

  • eq?w_%7Bji%7D 是第 j 个隐藏层神经元与第 i 个输入神经元之间的权重。

  • xi​ 是输入层第 i 个神经元的输入值。

  • bj​ 是第 j 个隐藏层神经元的偏置。

经过激活函数 eq?%5Csigma%28z_j%29,得到隐藏层神经元的输出:

eq?h_j%20%3D%20%5Csigma%28z_j%29%20%3D%20%5Csigma%28w_%7Bj1%7Dx_1%20+%20w_%7Bj2%7Dx_2%20+%20%5Cdots%20+%20w_%7Bjn%7Dx_n%20+%20b_j%29

2、从隐藏层到输出层

隐藏层的输出 eq?h_1%2C%20h_2%2C%20%5Cdots%2C%20h_k​ 将作为输入传递到输出层的神经元。假设输出层有 m 个神经元,输出层的第 eq?l 个神经元的计算公式为:

eq?z%27_l%20%3D%20w%27_%7Bl1%7Dh_1%20+%20w%27_%7Bl2%7Dh_2%20+%20%5Cdots%20+%20w%27_%7Blk%7Dh_k%20+%20b%27_l

其中:

  • eq?w%27_%7Bli%7D 是第 eq?l 个输出层神经元与第 i 个隐藏层神经元之间的权重。

  • eq?h_i​ 是隐藏层第 i 个神经元的输出值。

  • eq?b%27_l​ 是第 eq?l 个输出层神经元的偏置。

同样,经过激活函数(通常是Softmax或Sigmoid)后,得到输出层的输出:

eq?y_l%20%3D%20%5Csigma%28z%27_l%29%20%3D%20%5Csigma%28w%27_%7Bl1%7Dh_1%20+%20w%27_%7Bl2%7Dh_2%20+%20%5Cdots%20+%20w%27_%7Blk%7Dh_k%20+%20b%27_l%29

反向传播与权重更新

(四)误差计算与反向传播

训练MLP时,使用反向传播算法来更新网络中的权重和偏置。反向传播算法基于链式法则计算损失函数对每个权重和偏置的梯度,然后使用梯度下降法(默认使用全批量梯度下降)来更新参数。

假设损失函数为 L,权重为 w,偏置为 b,则每个权重和偏置的更新规则为:

eq?w_%7Bji%7D%20%5Cleftarrow%20w_%7Bji%7D%20-%20%5Ceta%20%5Cfrac%7B%5Cpartial%20L%7D%7B%5Cpartial%20w_%7Bji%7D%7D

eq?b_j%20%5Cleftarrow%20b_j%20-%20%5Ceta%20%5Cfrac%7B%5Cpartial%20L%7D%7B%5Cpartial%20b_j%7D

其中 η 是学习率,eq?%5Cfrac%7B%5Cpartial%20L%7D%7B%5Cpartial%20w_%7Bji%7D%7D 和 eq?%5Cfrac%7B%5Cpartial%20L%7D%7B%5Cpartial%20b_j%7D​ 是损失函数关于权重和偏置的偏导数。

(五)迭代过程

重复步骤三和步骤四,不断迭代更新权重和偏置。

终止条件:达到最大迭代次数、损失收敛、目标性能达标等。

注:整个过程只以一个隐藏层为例,如果有多个隐藏层,从隐藏层到隐藏层之间的传递也是类似的。也是以上一层的输出作为该层的输入,并通过激活函数将该层输入转化为该层的输出;其次就是注意每个神经元之间的权重和偏置不一样。

MLP优缺点总结

ff8917d60afc41519efde2157e448941.png

        MLP 是一种通用的神经网络模型,广泛用于分类、回归、特征提取和强化学习等任务。尽管它的能力和表现已经被更复杂的模型(如卷积神经网络 CNN 和循环神经网络 RNN)在某些领域超越,但由于其简单性和强大的非线性拟合能力,MLP仍然是很多基础任务和小型数据集问题中的首选模型。同时,它常常作为其他复杂模型中的子模块,为解决复杂问题提供基础支持。

 

# 若对大噶有帮助的话,希望点个赞支持一下叭!

 


http://www.ppmy.cn/devtools/137015.html

相关文章

【数据结构】【线性表】一文讲完队列(附C语言源码)

队列 队列的基本概念基本术语基本操作 队列的顺序实现顺序队列结构体的创建顺序队列的初始化顺序队列入队顺序队列出队顺序队列存在的问题分析循环队列代码汇总 队列的链式实现链式队列的创建链式队列初始化-不带头结点链式队列入队-不带头节点链式队列出队-不带头结点带头结点…

中标麒麟部署k8sV1.31版本详细步骤

在中标麒麟操作系统上部署 Kubernetes v1.31 的详细步骤如下。这些步骤假定您对 Kubernetes 和 Linux 环境有基本了解,并且中标麒麟系统已正确安装并配置。 环境准备 更新系统并安装必要的软件包 sudo yum update -ysudo yum install -y wget curl vim net-tools…

k8s1.31版本最新版本集群使用容器镜像仓库Harbor

虚拟机 rocky9.4 linux master node01 node02 已部署k8s集群版本 1.31 方法 一 使用容器部署harbor (1) wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce systemctl enable docker…

前端工程化-node/npm/babel/polyfill/webpack 一文速通

文章主要介绍了前端工程化的相关内容,包括 Node 环境、npm 包管理器及其命令、配置和镜像,package.json 文件,babel 和 polyfill 用于解决 JavaScript 兼容性问题,以及 webpack 这一前端构建工具的作用、核心概念、构建流程、安装…

自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例

Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!

【雪球导读】 「OpenAI推出ChatGPT桌面端」 OpenAI重磅推出ChatGPT桌面端,全面支持Windows和macOS系统!这款新工具为用户在日常生活和工作中提供了前所未有的无缝交互体验。对于那些依赖桌面端进行开发工作的专业人士来说,这一更新带来了令人…

云原生基础-云计算概览

目录 云计算的基本概念 云计算的服务模型 云计算的部署模式 云计算的基本概念 云计算是一种通过互联网提供计算资源和服务的模式。允许用户按需访问和使用各种计算资源,如服务器、存储、数据库、网络等,而无需了解底层基础设施的具体细节。云计算的核心理…

美创科技入选2024数字政府解决方案提供商TOP100!

11月19日,国内专业咨询机构DBC德本咨询发布“2024数字政府解决方案提供商TOP100”榜单。美创科技凭借在政府数据安全领域多年的项目经验、技术优势与创新能力,入选收录。 作为专业数据安全产品与服务提供商,美创科技一直致力于为政府、金融、…