什么是“感知机”?

感知机(神经网络和支持向量机的理论基础

概念:简单来说,感知机就是一个旨在建立一个线性超平面对线性可分的数据集进行分类线性模型

分类

  • 单层感知机
  • 多层感知机( Multi-Layer Perceptron,MLP)/神经网络模型

1.单层感知机

单层感知机包含两层神经元输入神经元和输出神经元,可以非常容易地实现逻辑与、逻辑或、逻辑非等线性可分情形。

基本结构如图1.4所示:一个n维输入的单层感知机模型。
在这里插入图片描述

图1.4 感知机模型

  • x1~xn:n维输入向量的各个分量

  • w1~wn:各个输入分量连接到感知机的权重(权值)

    权重W初始值一般是随机设置,往往达不到较好的拟合结果,那么如何更改权重数值使标量输出y更逼近实际值呢?使用梯度下降法最速下降法)进行学习

  • Θ \Theta Θ阈值(偏置)

  • f:激活函数(激励函数/传递函数)(通常是越阶函数或Sigmoid函数)

  • y:标量输出

完整的单层感知机训练的过程:

  1. 前向计算:图1.1从左到右为感知机模型的计算执行方向,模型接受了x1,x2,x3三个输入,将输入与权值参数w进行加权求和并经过sigmoid函数进行激活,将激活结果y作为输出

  2. 执行完前向计算得到基本输出之后,模型需要根据当前的输出和实际的输出按照损失函数计算当前损失,计算损失函数关于权值和偏置的梯度,然后根据梯度下降法更新权值和偏置,经过不断地迭代调整权值和偏置使损失最小,这就是完整的单层感知机训练的过程。

    注:单层感知机没有反向转播这个概念,而是直接建立损失函数和偏置参数进行梯度优化。

图1.2所示是输入为图像的感知机计算过程

在这里插入图片描述

2.多层感知机

单层感知机问题

单层感知机不能处理稍微复杂的异或问题,即本质缺陷是不能处理线性不可分问题。如图1.7所示。

解释:单层感知机的学习能力非常有限,对与像异或问题这样的线性不可分情形,单层感知机就搞不定(线性不可分即输入训练数据存在一个线性超平面能够将其进行线性分类)。其学习过程会出现一定程度的震荡,权值参数w难以稳定下来,最终不能求得合适的解。

图1.7:其中,(1,1)和(-1,-1)是一类,(1,-1)和(-1,1)是一类。
由于单层感知机本质上就是该平面的一条直线,因此不可能解决这个分类问题。
所以需要多层感知机。

解决:两种方法

  • 支持向量机(旨在通过核函数映射来处理非线性的情况)
  • 神经网络模型多层感知机 Multi-Layer Perceptron,MLP)

多层感知机

  • 多层感知机(Multi-Layer Perceptron,MLP)是由单层感知机推广而来的。
  • 多层感知机与单层感知机的主要区别:MLP多了若干隐藏层,这使得神经网络能够处理非线性问题。
  • 多层感知机最主要特点:有多个神经元层,可以实现复杂的非线性变换(可以解决异或问题)。
  • 一般将MLP的第一层称为输入层,中间层成为隐藏层,最后一层成为输出层

一个单隐藏层的神经网络的结构如图1.8所示。

图1.8

图1.9

可以看出,图1.8相较于两层神经元的单层感知机,该多层感知机中间多了一个隐藏层

输入层的神经元:仅接收外界信息并将其传递给隐藏层

隐藏层与输出层的神经元:对信号进行加工

MLP并没有规定隐藏层的数量,可以根据实际处理需求选择合适的隐藏层数目,对于隐藏层和输出层中每层神经元的个数,MLP也没有限制。

多层感知机可以解决如图1.10所示的异或问题,因为MLP模型不再是一个平面中的直线。

图1.10

何为隐藏层

在神经网络的训练过程中只观察到输入层和输出层的数据,对于中间隐藏层的数据变化是看不见的。

因而在深度神经网络(Deep NeuralNetworks,DNN)中,将中间看不见又难以对其效果进行合理解释的隐藏层称为“黑箱子”

含隐藏层的神经网络如何训练?

多层感知机关键问题如何训练各层之间的连接权值

训练方式大致分为两类:

  1. 一类是将其他连接权值进行固定,只训练某两层之间的连接权值

  2. 另一类即反向传播(Back Propagation,BP)算法。

    BP算法通常使用Sigmoid和Tanh等连续函数模拟神经元对激励的相应,使用反向传播对神经网络的连接权值进行训练

反向传播的过程就是更新神经元的误差值,然后再根据所求出的误差值正向更新权值和偏置

与感知机一样,神经网络的训练包含前向计算反向传播(Back Propagation,BP)两个主要过程。

前向计算:权值偏置与输入的线性加权和激活操作,在隐藏层上有个嵌套的过程。

反向转播算法:(也称为误差逆传播算法),作为神经网络的训练算法,反向传播算法可谓是目前最成功的神经网络学习算法。

  • 通常所说的BP神经网络是指应用反向传播算法进行训练的神经网络模型。

  • 反向传播是基于梯度下降策略的,主要是以目标参数的负梯度方向对参数进行更新,所以基于损失函数对前向传播过程中各个变量进行梯度计算就非常必要。

  • 总结起来就是前向计算得到输出,反向传播调整参数,最后以得到损失最小时的参数为最优学习参数。

  • 反向传播的基本过程?

    以一个两层(单隐藏层)网络为例,即图1.4中的网络结构。

在这里插入图片描述

图过程

以上就是BP神经网络模型和算法的基本工作流程,如图过程所示。

总结起来就是前向计算得到输出,反向传播调整参数,最后以得到损失最小时的参数为最优学习参数。
经过近十几年的发展,神经网络的结构已经从普通的全连接网络发展到卷积神经网络、循环神经网络、自编码器、生成对抗网络和图神经网络等各种各样的结构,但BP算法一直都是神经网络的一个经典和高效的寻优工具。

参考文献:

1.《深度学习笔记》 鲁伟 编著

出版社:北京大学出版社,出版时间:2020年7月1日

ISBN:978-7-301-16122-7
2.《深度学习之图像识别 核心算法与实战案例 (全彩版)》言有三 著

出版社:清华大学出版社 ,出版时间:2023年7月第一版(第一次印刷)

ISBN:978-7-302-63527-7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/394487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不同品牌和种类的电容与电感实测对比(D值、Q值、ESR、X)

最近买了个LCR电桥,就想测一下手头上的各种电容电感的参数,对比一下。 测试设备是中创ET4410,测量的参数有:电容值、电感值、D(损耗角正切值)、Q(品质因数)、ESR(等效串联电阻)、X(电抗,通常表示为感抗XL或容抗XC)。 …

css2背景

css2背景 一.背景颜色二.背景图片三.背景平铺四.背景图片位置五.背景图像固定六.复合型写法七.背景颜色半透明八.总结 一.背景颜色 默认是transparent(透明) 二.背景图片 默认是none 三.背景平铺 默认是background-repeat(平铺) 四.背景图片位置…

如何根据需求理解CPU、SoC和MCU的区别

在当今数字化的世界中,我们经常听到关于CPU、SoC和MCU的名词,它们都是计算机科学和电子工程领域中的重要组成部分。然而,这三者之间存在着明显的区别。本文将深入探讨CPU(中央处理器)、SoC(系统芯片&#x…

STM32 学习2 库函数控制GPIO输出

STM32 学习2 库函数控制GPIO输出 一、GPIO寄存器介绍1. GPIO简介2. GPIO功能(1)模式分类(2)模式设置方法MODE[1:0]:模式控制,用于配置端口引脚的模式:CNF[1:0]:配置引脚输出速度&…

一.重新回炉Spring Framework: 理解Spring IoC

1. 写在前面的话 说实话,从事java开发工作时间也不短了,对于Spring Framework,也是天天用,这期间也碰到了很多问题,也解决了很多问题。可是,总感觉对Spring Framework还是一知半解,不能有个更加…

有趣的CSS - 新拟态输入框

我是 Just,这里是「设计师工作日常」,《有趣的css》系列已更新 11 篇了,今天这篇是关于新拟态风格的一个输入框效果,希望你们喜欢。 目录 页面效果核心代码html代码css代码 完整代码html页面css样式 页面效果 此效果使用 css 中 b…

计算机组成原理(4)-----Cache的原理及相关知识点

目录 1.Cache的原理 2.Cache的性能 3.Cache和主存的映射方式 (1)全相联映射 (2)直接映射 (3)组相联映射 4.替换算法 (1)随机算法(RAND) (2)先进先出算法(FIFO) (3)近期最少使用(LRU) (4)最近不经…

Netty通信框架功能设计

源码部分请见Netty的高级用法(一) 功能描述 通信框架承载了业务内部各模块之间的消息交互和服务调用,它的主要功能如下: 基于Netty的NIO通信框架,提供高性能的异步通信能力提供消息的编解码框架,可以实现POJO的序列化和反序列化消息内容的…

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01

从源码编译 rocSolver 本人只操作过单个rocm版本的情景,20240218 ubuntu 22.04.01 1,卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…

IO 流分类

一、File File 类(磁盘操作)可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件: public static void listAllFiles(File dir) {if (dir null || !dir.exists()) {return;}if (dir.isFile())…

收藏 数据结构链表的知识点总结

数据结构链表知识点总结 1. 链表的基本概念 - 链表是一种线性数据结构,由一系列节点(或元素)组成。 - 每个节点包含两部分:数据域和指针域(或称为链接)。 - 指针域存储指向下一个节点的地址&#xff0c…

扶贫助农|基于springboot的扶贫助农系统设计与实现(源码+数据库+文档)

扶贫助农系统目录 目录 基于springboot的扶贫助农系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、扶贫任务管理 3、论坛信息管理 4、扶贫公告管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐…

java面试多线程篇

文章说明 在文章中对所有的面试题都进行了难易程度和出现频率的等级说明 星数越多代表权重越大,最多五颗星(☆☆☆☆☆) 最少一颗星(☆) 1.线程的基础知识 1.1 线程和进程的区别? 难易程度:☆☆…

JAVA--泛型(Generic)

目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 2.3 相关使用说明 3. 自定义泛型结构 3.1 泛型的基础说明 3.2 自定义泛型类或泛型接口 3.2.1 说明 3.2.2 注意 …

LabVIEW智能监测系统

LabVIEW智能监测系统 设计与实现一个基于LabVIEW的智能监测系统,通过高效的数据采集和处理能力,提高监测精度和响应速度。系统通过集成传感器技术与虚拟仪器软件,实现对环境参数的实时监测与分析,进而优化监控过程,提…

平滑升级旧版nginx,使其支持健康检测模组

nginx是部署在华为欧拉的docker容器中,版本是2203sp1.x86_64 查看旧版nginx的版本与编译配置信息: nginx -Vnginx version: nginx/1.14.1 built by gcc 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC) built with OpenSSL 1.1.1g FIPS 21 Apr 2020 (running …

解决Ubuntu下网络适配器桥接模式下ping网址不通的情况

问题反应:ping不通网址 打开虚拟机中的设置,更改网络适配器为NAT模式 确定保存更改之后,退出输入如下命令。 命令1: sudo /etc/network/inferfaces 命令2: sudo /etc/init.d/network/ restart

SpringCloud-Config:分布式配置

10. Spring Cloud Config 分布式配置 Dalston.RELEASE Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象…

电商云平台系统的设计与实现

随着电商市场的不断发展,越来越多的企业和个人选择通过电商平台开展业务。为了更好地满足电商市场的需求,一个高效、安全、可扩展的电商云平台系统是必不可少的。本文将介绍电商云平台系统的设计与实现。 1. 系统架构设计 电商云平台系统的架构设计主要…

SSTI模板注入漏洞(vulhub 复现)

首先了解模板引擎: 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎…