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

相关文章:

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

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

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


多层感知机(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.mzph.cn/web/60701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue——响应式数据,v-on,v-bind,v-if,v-for(内含项目实战)

目录 响应式数据 ref reactive 事件绑定指令 v-on v-on 鼠标监听事件 v-on 键盘监听事件 v-on 简写形式 属性动态化指令 v-bind iuput标签动态属性绑定 img标签动态属性绑定 b标签动态属性绑定 v-bind 简写形式 条件渲染指令 v-if 遍历指令 v-for 遍历对象的值 遍历…

蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)

下将以括号序列、组合数问题超级吧难的题为例子讲解动态规划 别忘了请点个赞收藏关注支持一下博主喵!!!! ! ! ! ! 关注博主,更多蓝桥杯nice题目静待更新:) 动态规划 一、数字三角形 【问题描述】 上图给出了一…

YOLO-FaceV2: A Scale and Occlusion Aware Face Detector

《YOLO-FaceV2:一种尺度与遮挡感知的人脸检测器》 1.引言2.相关工作3.YOLO-FaceV23.1网络结构3.2尺度感知RFE模型3.3遮挡感知排斥损失3.4遮挡感知注意力网络3.5样本加权函数3.6Anchor设计策略3.7 归一化高斯Wasserstein距离 4.实验4.1 数据集4.2 训练4.3 消融实验4.3.1 SEAM块4…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法,以及通过理论课学习与实验参考书的帮助,熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作;作为后续实验的基础,根据实验要求重…

【Elasticsearch入门到落地】2、正向索引和倒排索引

接上篇《1、初识Elasticsearch》 上一篇我们学习了什么是Elasticsearch,以及Elastic stack(ELK)技术栈介绍。本篇我们来什么是正向索引和倒排索引,这是了解Elasticsearch底层架构的核心。 上一篇我们学习到,Elasticsearch的底层是由Lucene实…

【Spring Boot】# 使用@Scheduled注解无法执行定时任务

1. 前言 在 Spring Boot中,使用Scheduled注解来定义定时任务时,定时任务不执行;或未在规定时间执行。 import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;Component public c…

STM32总体架构简单介绍

目录 一、引言 二、STM32的总体架构 1、三个被动单元 (1)内部SRAM (2)内部闪存存储器 (3)AHB到APB的桥(AHB to APBx) 2、四个主动(驱动)单元 &#x…

C# Postman或者PostApi调试前端webapi接口发送带有request/body/head信息

知识: 前端接口,表单形式提交。 req.ContentType "application/x-www-form-urlencoded"; x-www-form-urlencoded 是一种常见的 MIME 类型,用于将键值对编码为 HTTP 请求体中的 URL 编码格式。在 Web API 中,x-www-for…

李宏毅机器学习课程知识点摘要(1-5集)

前5集 过拟合: 参数太多,导致把数据集刻画的太完整。而一旦测试集和数据集的关联不大,那么预测效果还不如模糊一点的模型 所以找的数据集的量以及准确性也会影响 由于线性函数的拟合一般般,所以用一组函数去分段来拟合 sigmoi…

七、SElinux

一、SElinux简介 SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linuxSELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用传统的访问控制在我们开启权限后,系统进程可以直接访问当我们对权限设置不严谨时…

小程序25- iconfont 字体图标的使用

项目中使用到图标,一般由公司设计进行设计,设计好后上传到阿里巴巴矢量图标库 日常开发过程中,也可以通过 iconfont 图标库下载使用自带的图标 补充:使用 iconfont 图标库报错:Failed to load font 操作步骤&#xff…

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装一、鸢尾花的认识1.1 对花结构和功能认识1.2、鸢尾花认识1.2.1 鸢尾花种类1.2.2 鸢尾花结构 二. Py…

Unity3D 截图

使用 Unity3D 自带的截图接口,制作截图工具。 截图 有时候我们想对 Unity 的窗口进行截图,如果直接使用一些截图工具,很难截取到一张完整分辨率的图片(例如,我们想要截取一张 1920 * 1080 的图片)。 其实…

Mysql的加锁情况详解

最近在复习mysql的知识点,像索引、优化、主从复制这些很容易就激活了脑海里尘封的知识,但是在mysql锁的这一块真的是忘的一干二净,一点映像都没有,感觉也有点太难理解了,但是还是想把这块给啃下来,于是想通…

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

Linux之日志

日志 在编写网络服务器, 各种软件时, 程序一定要打印一些日志信息. 1. 可以向显示器打印, 也可以向文件中写入. 2. 日志是软件在运行时记录的流水账, 用于排查服务进程挂掉的信息. 其中必须要有的是: 日志等级, 时间, 日志内容.可选的是文件名, 代码行数, 进程pid 等 日志…

IDEA指定Maven的settings不生效问题处理

文章目录 一、问题描述二、问题分析三、问题解决 一、问题描述 在Idea中手动指定了maven的settings配置文件,但是一直没生效。 如下图:设置加载settings-aliyun.xml文件,但是最后发现还是在加载settings.xml文件 二、问题分析 ‌在Intel…

【软考】数据库

1. 数据模型 1.1 概念数据模型 概念数据模型一般用 E-R 图表示,常用术语如下: 实体:客观存在的事物,如:一个单位、一个职工、一个部门、一个项目。属性:学生实体有学号、姓名、出生日期等属性。码&#…

oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist

oneplus6线刷android10.0.1 oneplus6线刷包(官方android10.0.1)下载、线刷教程: OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip 启用开发者模式 设置 / 连续点击6次版本号 : 启用开发者模式设置/开发者模式/{打开 usb调试, 打开 网络adb调试,…

ByteBuffer模拟拆包输出消息字符串

以下代码模拟网络编程中的粘包现象,用\n进行分割消息块 源码 public static void main(String[] args) {ByteBuffer byteBuffer1 ByteBuffer.allocate(60) ;byteBuffer1.put("Hello World\nWhat is you name?\nI am Licky!\nHo".getBytes());splice(byt…