什么是“感知机”?

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

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

分类

  • 单层感知机
  • 多层感知机( 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

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

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

相关文章

【lesson55】线程同步

线程同步 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,叫做同步 例一:我们之前的抢票代码,一个线程把票全抢完了,它错了吗?没错…

Qt Creator 继承分文件编写代码流程实现简单案列

Qt Creator 继承分文件流程实现简单案列 打开Qt Creator&#xff0c;新建c项目 添加类 完成之后&#xff0c;会自动生成.h和.cpp文件 一、animal.h文件 主要用来写类&#xff0c;包括成员变量和函数 #ifndef ANIMAL_H #define ANIMAL_H #include <iostream> #inclu…

高效货运 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 老李是货运公司承运人&#xff0c;老李的货车额定载货重量为wt&#xff1b;现有两种货物&#xff0c;货物A单件重量为wa&#xff0c;单件运费利润为pa&#xff0c…

【matalab】基于Octave的信号处理与滤波分析案例

一、基于Octave的信号处理与滤波分析案例 GNU Octave是一款开源软件&#xff0c;类似于MATLAB&#xff0c;广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例&#xff0c;说明如何在Octave中生成一个有噪声的信号&#xff0c;并设计一个滤波器来去除噪声。 首…

从数字孪生到智慧城市:科技引领下的城市未来展望

一、引言 随着科技的飞速发展&#xff0c;数字孪生和智慧城市已成为当今世界城市发展的重要趋势。数字孪生通过建立物理世界的数字模型&#xff0c;为城市管理和规划提供了前所未有的可能性&#xff1b;而智慧城市则借助先进的信息通信技术&#xff0c;使城市运行更加高效、便…

python调用智谱ai 大模型的完整步骤 (国内的 AI 大模型 对话)

要使用Python调用智谱AI的API进行异步调用&#xff0c;您需要遵循以下步骤&#xff1a; 1. **获取API密钥**&#xff1a; - 您需要从智谱AI平台获取一个API密钥&#xff08;API Key&#xff09;&#xff0c;这个密钥将用于所有API请求的身份验证。 2. **安装…

Springmvc 的参数绑定之list集合

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…

C语言学习day14:跳转语句

今天学习的跳转语句主要是三种&#xff1a; break continue goto 上一篇文章已经说过了break和continue break&#xff1a;结束这个循环 continue&#xff1a;结束当前的循环迭代&#xff0c;进行下一次的迭代 看看二者代码的区别 代码&#xff08;break&#xff09;&am…

嵌入式I2C 信号线为何加上拉电阻(图文并茂)

IIC 是一个两线串行通信总线&#xff0c;包含一个 SCL 信号和 SDA 信号&#xff0c;SCL 是时钟信号&#xff0c;从主设备发出&#xff0c;SDA 是数据信号&#xff0c;是一个双向的&#xff0c;设备发送数据和接收数据都是通过 SDA 信号。 在设计 IIC 信号电路的时候我们会在 SC…

相机图像质量研究(19)常见问题总结:CMOS期间对成像的影响--Sensor Noise

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

C# VS2022+WinForm+Oracle19.3+Excel,根据数据库表定义书生成SQL

目标&#xff1a; 用Excel写数据库的表的定义书&#xff0c;用该工具生成SQL&#xff0c;在客户端执行&#xff0c;把表结构导入数据库&#xff0c;生成真正的表 Github代码下载 目录 0.完成下面开发环境的准备1 操作系统Win11 专业版 21H22 oracle 19.33 Visual Studio Commun…

C++,stl,常用遍历查找算法

目录​​​​​​​ 1.常用遍历算法 for_each transform 2.常用查找算法 find find_if adjacent_find binary_search count count_if 1.常用遍历算法 for_each #include<bits/stdc.h> using namespace std;void print(int v) {cout << v << ; }…

AVL_Cruise后处理(中文

下载 https://download.csdn.net/download/jintaihu/68332464

Linux--编译器-gcc/g++使用

目录 前言 1.看一段样例 2.程序的翻译过程 1.第一个阶段&#xff1a;预处理 2.第二个阶段&#xff1a;编译 3.第三个阶段&#xff1a;汇编 4.第四个阶段&#xff1a;链接 3.程序的编译为什么是这个样子&#xff1f; 4. 关于编译器 5.链接&#xff08;动静态链接&#x…

Three.js学习7:dat.GUI 参数控制

-----------------------------华丽的分割线--------------------- 相关代码均已上传到 gitee 中&#xff1a;myThree: 学习 Three.js &#xff0c;努力加油~&#xff01; Gitee 静态演示地址&#xff1a;Three JS 演示页面 -----------------------------华丽的分割线------…

TCP_IP(6)

网络层 在复杂的网络环境中确定一个合适的路径. IP协议 与TCP协议并列,都是网络体系中最核心的协议. 基本概念 主机:配有IP地址,但是不进行路由控制的设备; 路由器:即配有IP地址,又能进行路由控制; 节点:主机和路由器的统称; 协议头格式 4位版本号(version):指定IP协议的版…

【面试】盘点10个高频的前端算法题,你全都会了吗?

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 现在前端的面试中&#xff0c;算法出现的频率越来越高了&#xff0c;大厂更是必考算…

字符输入/输出和输入验证 DAY19

文章目录 前言一、单字符I/O二、缓冲区为什么要引入缓冲区&#xff1f;文件结尾补充**注意几点** 重定向和文件重定向输入cmd是什么&#xff1f;重定向输出组合重定向小试牛刀&#xff1a;文件输出 创建更友好的用户界面使用缓冲输入 如果您发现文章有错误请与我留言&#xff0…

STM32,嵌入式系统中的I2C协议

I2C协议——读写EEPROM 关注我&#xff0c;共同交流&#xff0c;一起成长 前言一、协议简介二、I2C特性及架构三、通信过程 前言 这是一种主要用于集成电路和集成电路&#xff08;IC&#xff09;通信&#xff0c;计算机中复杂的问题大多数就是用分层来进行解决&#xff0c;这个…

OpenAI 文生视频大模型Sora,看完别说WC啊

OpenAI&#xff0c;发布了他们的文生视频大模型Sora&#xff08;Sora 是一个 AI 模型&#xff0c;可以根据文本指令创建现实且富有想象力的场景&#xff09; 来感受下震撼视觉冲击&#xff0c;看看你有没有说WC… 地址&#xff1a;sora 提示&#xff1a;一位时尚女性走在充满…