【人工智能基础】人工神经网络

news2024/12/23 13:00:08

一、人工神经网络的三要素

人工神经元数理模型

MP模型是世界上第一个神经计算模型,为神经网络理论提供了基础 

mp神经元模型基本组成

MP模型功能

  • 对树突输入u的线性加权求和
  • 对净输入的非线性转换\

作用函数的功能作用函数的功能

MP神经元模型的作用函数是单位阶跃函数。当x≥0时f(x)=1,反之f(x)=0

作用函数的功能

  1. 控制输入对输出的激活作用
  2. 对输入、输出进行函数转换
  3. 将无限域的输入变换为有限范围内的输出

在神经元模型中,作用函数还有其他形式,包括:

  • 阈值型作用函数(单位阶跃函数,符号函数):采用阶跃作用函数的神经元,称为阈值逻辑单元
  • 连续非线性作用函数(双极性函数、双曲正切函数)
  • 分段线性作用函数

人工神经网络结构

根据网络拓扑结构形式分

层次型神经网络

  • 单纯型(前向神经网络):神经元分层排列,顺序连接,神经元间不存在反馈
  • 层内有互联型:任意两个神经元之间都有可能有相互连接
  • 有反馈型

互联型神经网络

根据神经网络内部信息传递方向分

  • 前馈型神经网络:没有反馈,结构简单,易于实现,适合解决一般的函数逼近和预测问题
  • 反馈型神经网络:有反馈,信息处理体现为状态变换。适合解决动态序列分析或联想记忆等问题

人工神经网络学习算法

神经网络的运行阶段

学习阶段:通过学习训练样本或其他方法调整权值矩阵

工作阶段:各连接权成熟,不再改变,用于求解实际问题

学习方式

有监督学习方式:根据实际输出和期望输出的偏差,按照一定准则调整权值

无监督学习方式:仅根据输入调整权值

学习规则

联想式学习(Hebb学习规则)

误差纠正式学习(Delta学习规则)

二、感知器

模拟人的视觉,接收环境信息,并由神经冲动进行信息传递的神经网络

感知器的连接权值可变,被赋予了学习的特性

单层感知器

  • 作用函数:阈值型函数
  • 网络结构:单层处理单元
  • 学习规则:感知器学习规则

训练步骤

  1. 设置权值的处置wj(0)(j=0,1……n)为较小的随机非0值,设置学习率η∈(0,1],t=0
  2. 给定输入/输出样本对:up/dp(p=1,2……L),当up∈A时dp=+1,up∈B,dp=-1
  3. 对全部要本逐一求感知器输出
  4. 若yp(t)≠dp,权值第t+1次调整
  5. 若误差为0,学习结束,反之t++,回到第三步

注意:判断输出误差时,要求所有样本误差为0,学习才结束

功能

n维输入的单节点感知器具有分类功能,其分类界面是n维空间的一个超平面,超平面法矢量是其连接权值向量,位置由神经元阈值确定

感知器的学习过程就是将分类知识存储于神经元的权值向量与阈值中

局限性

如果输入的两类模式是线性可分集合,则算法收敛。反之无法收敛

多层感知器(多层前馈神经网络)

在输入和输出层间增加一层或多层隐单元

三、误差反向传播网络(BP网络)

  • 单元特性:作用函数连续可微
  • 网络结构:多输入多输出的多层前馈网络
  • 学习规则:误差反向传播方法

基本思想

在外界输入样本的刺激下,不断改变网络的连接权值,使得网络的实际输出不断地接近期望的输出

基本步骤

  1. 设置初始权值W(0)为较小的随机非零值
  2. 给定输入/输出要本结婚{up,dp}
  3. 重复迭代下列过程,直到妈祖收敛条件
  4. 对任意样本p正向传播、计算每层输出,然后反向传播,计算灵敏度和梯度
  5. 利用负梯度修正权值

BP网络设计

网络层数:优先考虑一个隐层,最多两个;

输入层节点数:取决于输入向量的维数

隐层节点数:如果两个隐层,第一隐层包含较多节点,第二隐层较少

输出层节点数:根据实际问题的抽象模型确定

神经元的作用函数

  1. 回归问题:隐层一般采用Sigmoid,输出层采用线性作用函数
  2. 分类问题:隐层选择Sigmoid、tanh或者Relu,输出层可以使用Sigmoid。限制输出值在[0,1]或者[-1,1]之间

学习率:根据训练情况调整

优势

  • 非线性映射能力
  • 并行分布处理方式
  • 自学习和自适应能力
  • 在线学习和数据融合能力

局限性

  • 训练过程可能陷于局部最优
  • 参数选择缺乏有效方法
  • 网络学习的逼近和推广能力与训练样本有关
  • 网络具有不可重现性

四、深度学习概述

深度学习与浅层学习相比,强调了模型结构的深度,通常由5-10个活更多隐层。突出了特征学习的重要性,利用大数据来学习特征,能够刻画数据的丰富内在信息

深度前馈网络的逐层训练方式

  1. 采用自下而上的无监督学习,每次调整一层,每层采用wake-sleep算法调优
  2. 自顶向下的有监督学习,在学习获得各层参数基础上,在最顶层添加一个分类器,利用梯度下降法微调整个网络参数

优势

  • 通过深层非线性网络结构,实现复杂函数逼近,对输入数据进行分布式表示
  • 自动提取特征,对于各层学习到的特征由更好的解释性
  • 更充分利用无标签数据,不容易陷入局部最优
  • 结合大数据,不容易出现过拟合现象

五、卷积神经网络

基本结构

卷积层

每个隐层节点连接到图像某个足够小的局部上,局部卷积核参数共享,大大减少需要训练的权值参数

池化层

紧接在卷积层之后,简化从卷积层输出的信息,使用压缩方法,通过一个下采样的过程,减少图像规模,池化降低了每个特征映射的维度,但是保留了最重要的稀稀。池化有多种形式:最大、平均、求和等。最大池化效果最好

作用

  1. 减少网络中待计算的参数数量,抑制过拟合
  2. 增强网络对输入图像中小变形、扭曲、平移的鲁棒性

非线性激励层

一般位于卷积层和池化层之后,也可以位于两者之间,是深度网络非线性的主要来源

训练过程

  1. 用随机数初始化所有的卷积核参数和权重
  2. 将训练图片作为输入,执行前向步骤并计算每个类别对应输出概率
  3. 计算输出层总误差
  4. 反向传播,更新所有卷积核参数和权值,使输出误差最小化

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

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

相关文章

实现Node.js安装与配置。

一 、Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能、可扩展的网络应用程序。它发布于2009年5月,由Ryan Dahl开发,允许使用JavaScript进行服务器端编程,使开发者能够在前后端都使用同一种编程…

ASP.NET教务平台—学籍管理模块开发与设计

摘 要 教务平台之学籍管理模块是一个典型的教务信息管理系统(MIS),其开发主要包括后台数据库的建立和前端应用程序的开发两个方面。对于后台数据库要求实现数据的完整性、一致性和安全性;对于前台应用程序开发则要求模块功能完备、界面友好、易使用等特…

进程状态和优先级(进程第2篇)【Linux复习篇】

目录 一、进程状态 1、进程有什么状态? 2、 Linux下的进程状态有什么? 二、进程优先级 1、进程优先级是什么? 2、为什么要有优先级 3、怎么改进程优先级?要改吗? 4、操作系统如何根据优先级开展调度的&#xff…

Spring MVC和Spring Boot

上节已经提到过请求,这次梳理响应。 响应 响应基本上都要被Controller所托管,告诉Spring帮我们管理这个代码,我们在后面需要访问时,才可以进行访问,否则将会报错。并且其是由RestController分离出来的,Re…

【MCU】栈溢出问题

项目场景: 硬件:STM32F407,操作系统:rt_thread master分支 问题描述 问题栈溢出 id 499 ide 00 rtr 00 len 8 9 Function[rt_completion_wait] shall not be used in ISR (0) assertion failed at function:rt_completion_wait,…

MATLAB实现蚁群算法栅格路径优化

蚁群算法是一种模拟自然界中蚂蚁觅食行为的优化算法,常用于解决路径规划问题。在栅格路径优化中,蚁群算法可以帮助找到从起点到终点的最优路径。以下是蚁群算法栅格路径优化的基本流程步骤: 初始化参数: (1)设置蚂蚁数量&#xff…

【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)

牛客对应链接:数组中的最长连续子序列_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 排序 模拟。 注意:值连续,位置可以不连续!小心处理数字相同的情况。 二、代码 //值得学习的代码 class Solution { public:int MLS(vecto…

【数据库】Redis

文章目录 [toc]Redis终端操作进入Redis终端Redis服务测试切换仓库 String命令存储字符串普通存储设置存储过期时间批量存储 查询字符串查询单条批量查询 Key命令查询key查询所有根据key首字母查询判断key是否存在查询指定的key对应的value的类型 删除键值对 Hash命令存储hash查…

前端补充17(JS)

一、JS组成成分 JS的组成成分,由三部分组成 第一、ECMAScript:语法规则,如何定义变量,数据类型有哪些,如何转换数据类型,if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

HTML表单(详解网页表单如何实现)

目录 一、表单介绍 1.概念 二、表单用法 1.HTML表单 2.HTML 表单 - 输入元素 2.1.文本域(Text Fields) 2.2.密码字段 2.3.单选按钮(Radio Buttons) 2.4.复选框(Checkboxes) 2.5.提交按钮(Submit)…

SAP 变更记录表查询使用逻辑简介

通常用户在遇到问题后,经常会问某个单据的变更记录,很多模块中在前台的操作界面中都根据对应的菜单栏中可以找到对应的变更记录,像销售订单、交货单、采购申请、采购订单都在菜单栏位中都可以查询到对应的修改记录,但是对于想批量…

“豪门”子刊!中科院2区SCI,收稿范围广,发文量超20000!无预警记录,极速录用见刊!

(一)期刊简介概况 【期刊类型】网络数据类SCIE 【出版社】SPRINGER出版社 【期刊概况】IF:4.0-5.0,JCR2区,中科院2区 【版面类型】正刊,仅10篇版面 【预警情况】2020-2024年无预警记录 【收录年份】2…

【项目】基于JDBC+MySQL的Java教务管理系统(附源码+论文说明)

摘要 随着信息技术的不断发展,教育管理也在向数字化、智能化方向迈进。Java作为一种广泛应用于企业级应用开发的编程语言,与数据库技术的结合更是为教务管理系统的开发提供了强大的支持。 本文将介绍基于JDBC(Java Database Connectivity&a…

跨越未知,拥抱挑战——新征程

在浩瀚的IT领域里,每一位开发工程师都如同一位探险家,不断地探索、挑战和成长。作为一名新入职的Java开发工程师,我面临着全新的技术栈和业务领域,这是一次跨越未知的征程,也是一次自我提升的机会。 新入职 初入公司…

mac系统镜像源管理之nrm的安装与使用

之前有介绍过:pnpm安装和使用,nvm安装及使用,在前端开发中其实还有一个工具也会偶尔用到,那就是nrm,本文就详解介绍一下这个工具,非常的简单且好用~ 文章目录 1、什么是nrm?2、安装3…

为什么说这些倒腾AI的方式会把自己“搞死”

在AI技术的浪潮下,许多基于大模型的产品涌现而出,但并非所有创新都能带来成功,有时大模型的出现还会放大AI创业公司的内部矛盾。这个时候,我们需要搭建与AI相配的底层思考框架。 为什么说这些倒腾AI的方式会把自己“搞死”© …

go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件

实现日志收集服务的客户端 前言 从这篇文章开始我们就正式进入了日志收集系统的编写,后面几篇文章我们将学习到如何编写日志收集服务的客户端,话不多说,让我们进入今天的内容吧! 需要实现的功能 我们要收集指定目录下的日志文件,将它们发…

Flink CDC详解

文章目录 Flink CDC一 CDC简介1.1 CDC定义1.2 CDC应用场景1.3 CDC实现机制1.4 开源CDC工具对比 二 Flink CDC简介2.1 Flink CDC介绍2.2 Flink CDC Connector(连接器)2.3 Flink CDC && Flink版本2.4 Flink CDC特点 三 Flink CDC发展3.1 发展历程3.2 背景Dynamic Table &…

Ubuntu镜像下载与安装2024.4版本(超适合新手)

前言: 在VMware中安装Ubuntu镜像,首先需要去下载镜像,但是由于服务器在国外,下载速度相对较慢,国内也有镜像,较推荐在国内镜像站下载,例如阿里镜像和清华镜像。 官网:Ubuntu系统下…

LLM 为什么需要 tokenizer?

文章目录 1. LLM 预训练目的1.1 什么是语言模型 2. Tokenizer一般处理流程(了解)3. 进行 Tokenizer 的原因3.1 one-hot 的问题3.2 词嵌入 1. LLM 预训练目的 我们必须知道一个预训练目的:LLM 的预训练是为了建立语言模型。 1.1 什么是语言模…