【复习】人工智能 第 8 章 人工神经网络及其应用

news2024/11/18 9:41:58

因为计算牵扯到导数,所以这章难的部分不会考太难。

人工神经网络是对人脑或生物神经网络若干基本特性的抽象和模拟。

深度学习是神经网络的发展。

人工智能曾经历过很长一段时间的停滞不前。

浩瀚的宇宙中,也许只有包含数千忆颗星球的银河系的复杂性能够与大脑相比。

还是提前看一下这篇文章吧:技术篇:单层神经网络是什么,看完这篇文章你就懂了 - 腾讯云开发者社区-腾讯云

(一定要看,弄懂权重w,和输入a是什么)

一、神经网络

生物神经网络: 由中枢神经系统(脑和脊髓)及周围神经系统(感觉神经、运动神经等)所构成的错综复杂的神经网络,其中最重要的是脑神经系统。

人工神经网络: 模拟人脑神经系统的结构和功能,运用大量简单处理单元经广泛连接而组成的人工网络系统。

如上图所示,神经元1的轴突传递了4个信号给神经元2,分别是输入1、输入2、输入3和输入4。

而神经元2的输出信号(输出1和输出2)分别是神经元3的输入信号(输入1和输入2)。

如果输入信号之和超过神经元固有的边界值(阈值),细胞体就会做出反应,向与轴突连接的其他神经元传递信号,这称为激活

激活时神经元输出的信号大小固定的。即便从邻近的神经元接收到很大的刺激,或者轴突连接着多个神经元,这个神经元也只输出固定大小的信号

激活的输出信号是由"0" 或 "1"表示的数字信息:无输出信号,y=0有输出信号,y=1

生物神经网络的最小单位——神经元

人工神经网络的最小单位——感知机

二、神经元特点及M-P神经模型

(1)多输入单输出

(2)输入类型包含兴奋性和抑制性

(3)空间整合特性和阈值特性(对全部输入信号进行整合,以确定各类输入的作用总效果,超过阈值了才会发送脉冲)

(4)我们有一个数据,称之为样本。样本有四个属性,其中三个属性已知,一个属性未知。我们需要做的就是通过三个已知属性预测未知属性。

(5)模型构建(M-P神经模型)

但是,在MP模型中,权重的值都是预先设置的,因此不能学习,所以才有了后面的BP神经网络和卷积神经网络。

三、感知机

感知机是首个可以学习的人工神经网络。

感知机是二分类的线性分类模型,具有简单而易于实现的优点

旨在求出将训练数据进行线性划分的分离超平面,旨在求出将训练数据进行线性划分的分离超平面

分离超平面在一维空间就是一条线,在二维空间就是一个面。

超平面将数据分成机器学习中正例和负例,类似于下图:

所以感知机学习策略就是找到一个将训练集正负实例点完全正确分开的分离超平面。

使用所有误分类的点到超平面的距离来表示损失,该损失表示了模型预测的准确性。

但是感知机只能解决线性可分的二分类问题,甚至连异或都解决不了,如果将计算层增加到两层,计算量则过大,而且没有有效的学习算法。

输入层里的“输入单元”只负责传输数据,不做计算。

输出层里的“输出单元”则需要对前面一层的输入进行计算。 我们把需要计算的层次称之为“计算层”,并把拥有一个计算层的网络称之为“单层神经网络”。

关于单层、多层可以看:https://cloud.tencent.com/developer/news/389738

四、BP神经网络(重点)

当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。

反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,多了个隐含层用于计算。

(1)学习的过程:

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

(2)学习的本质:

对各连接权值的动态调整

(3)学习规则:

权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。

基于BP算法的多层前馈网络模型

五、深度学习

人脑的深度结构决定了人类认知过程的逐层进行;

深度学习从某种程度上模拟了人类逐层进行、逐步抽象的认知过程。

深层神经网络在神经元数目一定的情况下,相比于传统浅层神经网络来说,具有更强大的学习能力,能够从原始输入中自动提取出具有高度抽象含义的特征。

深度学习别名,叫做非监督的特征学习

深度学习的学习过程可以简要概括为:

(1)逐层无监督地预训练单层学习模块

(2)每次都将上一层的输出结果作为下一层训练模块的输入

(3)训练完所有层后利用有监督的方式微调整个网络。

在无监督预训练阶段,希望输入数据经过整个深层网络后得到的输出结果仍然输入

简言之,深度学习多层表示的好处就是能够用较少的参数表征十分复杂的函数。

传统的BP算法仅有几层网络,需要手工指定特征且易出现局部最优问题,,而深度学习引入了概率生成模型,可自动地从训练集提取特征,解决了手工特征考虑不周的问题。

六、卷积网络(重点)

卷积神经网络目前是深度学习领域的热点,尤其是图像识别和模式分类方面

优势在于具有共享权值的网络结构和局部感知(也称为稀疏连接)的特点

能够降低神经网络的运算复杂度,因为减少了权值的数量,并可以直接将图像作为输入进行特征提取,避免了对图像的预处理和显示的特征提取

(1)卷积网络结构

生物神经元所能处理信息的复杂程度被称为神经元的感受野

神经元对于信息位置与方向变化不敏感的特性被称为平移不变性,卷积神经网络正是根据生物神经系统的这些特性而提出的神经网络模型。

卷积神经网络主要结构有:卷积层、池化层、和全连接层。

通过堆叠这些层结构形成一个卷积神经网络将原始图像转化为类别得分

其中卷积层全连接层拥有参数激活层池化层没有参数。

参数更新通过反向传播实现。

(2)卷积层

卷积是一类对矩阵的线性运算方式,包含卷积操作网络层被称为卷积层,其用来对输入图片进行特征提取输出相应图片的特征图

通过卷积层的运算

a.可以将输入信号在某一特征上加强,从而实现特征的提取

b.可以排除干扰因素,从而降低特征的噪声。

对两个矩阵进行卷积操作,左边为A,右边为B,矩阵A通常对应样本数据矩阵,矩阵B称之为卷积核。

开始滑动:

新生成的矩阵称为特征矩阵C。

卷积核每次移动的单位可设定为不同长度,这一长度称之为步长

步长越大,卷积操作所得到的特征矩阵越小

并且数据矩阵边界上的元素对特征矩阵的贡献较小,即丢失部分边界信息,所以为解决这些问题,通常会为原始数据填补上一圈或几圈元素,这一操作称之为填充。

类似下图填充0。

 

(3)池化层——pooling层

池化,即下采样,主要作用是通过去除输入的特征图中不重要的信息使特征图变小,进行特征压缩,进一步减少参数量,且同时提取其中的有效信息,一定程度上可以避免过拟合

操作:

池化的具体操作是定义池化窗口的大小

通常情况下,从某个池化窗口内进行采样的规则主要有取最大值、取最小值和取平均值三种。

所对应的池化操作分别称之为最大池化最小池化均值池化

 

(3)激活函数

了解即可

(4)全连接

卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间。

而全连接层是将学到的“分布式特征表示”映射到样本标记空间,从而最终引用到模型任务(分类、回归)中去。

例如:假设你是一只小蚂蚁,你的任务是找小面包。你的视野还比较窄,只能看到很小一片区域。当你找到一片小面包之后,你不知道你找到的是不是全部的小面包,所以你们全部的蚂蚁开了个会,把所有的小面包都拿出来分

在全连接层中,需要对所有的Feature Map进行扁平化,接一个或者多个全连接层,进行模型学习。

1998年,LeCun提出LeNet,并成功应用于美国手写数字识别。测试误差小于1%。

麻雀虽小,但五脏俱全,卷积层、池化层、全连接层,这些都是现代CNN网络的基本组件。

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

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

相关文章

HTML音乐播放器带歌词跟随效果源码附注释

音乐播放器效果截图 <!doctype html><!--声明html版本编写指令 H5--> <html><head><!--声明页面编码 uft-8 国际编码--><meta charset

Open CASCADE学习|非线性方程组

非线性方程组是一组包含非线性数学表达式的方程&#xff0c;即方程中含有未知数的非线性项。解这类方程组通常比解线性方程组更为复杂和困难。 非线性方程组在很多领域都有应用&#xff0c;例如物理学、工程学、经济学等。解决非线性方程组的方法有很多种&#xff0c;包括数值…

在Linux上搭建Maven仓库

目录 一、下载安装包二、安装maven三、修改配置文件settings.xml四、配置环境变量五、测试maven是否可用 一、下载安装包 我在这里为大家准备好了apache-maven-3.5.0-bin.tar.gz&#xff0c;百度网盘下载链接如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bGun…

已解决:UnicodeDecodeError: ‘gb2312‘ codec can‘t decode byte 0xe5 in position 1

起因 python 读文件报错。这个报错不是来自open而是read函数&#xff08;请看最后部分&#xff09;。 原因&#xff1a;文件编码不一致。 比如文件本身编码为 gb2312&#xff0c;而 python默认以 utf-8 编码打开&#xff0c;报错。 解决 初级&#xff1a;以通用的 utf-8 编码…

【Spring Boot】SpringBoot maven 项目创建图文教程

创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。以下是使用IntelliJ IDEA创建Spring Boot Maven项目的详细教程&#xff1a; 步骤 1&#xff1a;安装 IntelliJ IDEA 确保你已经安装了最新版本的 IntelliJ IDEA。你可以从官方网站下载并安装。 步骤 2&am…

Python教程(21)——面向对象编程的三大特性

面向对象三大特性 封装继承多态 在Python中&#xff0c;面向对象编程是一种核心的编程思想。Python被称为“一切皆对象”的语言&#xff0c;因为在Python中&#xff0c;几乎所有的数据都被视为对象。这包括数字、字符串、列表、函数等基本类型&#xff0c;还有自定义的类和对象…

安卓(雷电)模拟器清除屏幕密码

1、设置磁盘可写 启动模拟器&#xff0c;然后在模拟器的设置界面&#xff0c;设置磁盘共享为可写入&#xff0c;重启模拟器&#xff0c;如下图&#xff1a; 2、找到模拟器目录 返回桌面&#xff0c;右键模拟器图标&#xff0c;打开文件所在目录&#xff0c;如下图&#xff1a…

【Spring Cloud】Gateway组件的三种使用方式

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…

【2024系统架构设计】 系统架构设计师第二版-面向服务架构设计理论与实践

目录 一 概述 二 SOA的参考架构 三 SOA主要协议和规范 四 SOA设计标准和原则 五 SOA的设计模式 六 SOA的构建和实施 ​

【前端】前后端的网络通信基础操作(原生ajax, axios, fetch)

概述 前后端网络请求工具 原生ajaxfetch apiaxios GET和POST请求 get只能发纯文本 post可以发不同类型的数据&#xff0c;要设置请求头&#xff0c;需要告诉服务器一些额外信息 测试服务器地址 有一些公共的测试 API 可供学习和测试用途。这些 API 允许你发送 HTTP 请求…

浏览器不支持 css 中 :not 表达式的解决方法

问题 使用 :not 表达式的样式在不同浏览器中存在不生效的问题。 原因 不生效是因为浏览器版本较低所导致的。&#xff08;更多详细信息请看&#xff1a;MDN&#xff09; 解决方法 初始写法&#xff1a; .input-group:not(.user-name, .user-passwork){width: auto; }改成…

基于jsp的在线求职招聘信息系统 设计与实现

当前企业求职招聘的方式更多是通过传统的线下招聘会或职业介绍所来实现的&#xff0c;其不但受众具有很大的局限性&#xff0c;而且往往不可能在短时间内招聘的需要的人才。而互联网的普及为企业求职招聘的方式带来了翻天覆地的改变。通过互联网将招聘信息进行发布可以在短时间…

(1)(1.13) SiK无线电高级配置(五)

文章目录 前言 10 可用频率范围 11 DUTY_CYCLE 设置 12 低延迟模式 13 先听后说 (LBT) 14 升级无线电固件 15 MAVLink协议说明 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 1…

Web缓存代理

目录 一.Web缓存代理 配置Nginx 缓存代理&#xff1a; 修改web服务器的配置文件&#xff1a; 修改192.168.233.10代理服务器的配置文件&#xff1a; 访问页面看看&#xff1a; 对于一些实时性要求非常高的页面或数据来说&#xff0c;就不应该去设置缓存&#xff0c;下面来…

STL-vector

目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.3 vector 增删查改 1.2.4 vector 迭代器失效问题。&#xff08;重点&#xff09; 1. 会引起其底层空间改变的操作&#x…

C++:多态究竟是什么?为何能成为面向对象的重要手段之一?

C&#xff1a;多态究竟是什么&#xff1f;为何能成为面向对象的重要手段之一&#xff1f; 前言一、多态的概念二、多态的定义及实现2.1 多态的构成条件2. 2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的例外1&#xff1a;协变(基类与派生类虚函数返回值类型不同)2.3.2 虚函数重写…

【信息论与编码】【北京航空航天大学】实验一、哈夫曼编码【C语言实现】(上)

信息论与编码 实验1 哈夫曼编码 实验报告 一、运行源代码所需要的依赖&#xff1a; 1、硬件支持 Windows 10&#xff0c;64位系统 2、编译器 DEV-Redpanda IDE&#xff0c;小熊猫C 二、算法实现及测试 1、C语言源程序 # define _CRT_SECURE_NO_WARNINGS # include <std…

江山易改本性难移之ZYNQ SDK FSBL加载启动代码详解

SDK版本&#xff1a;2018.3 写在前面&#xff1a; 该文档不足以使你清楚FSBL启动的寄存器级的操作细节&#xff0c;但可以让你看明白整个ZYNQ7000 FSBL代码执行的主要流程。 1. ZYNQ7000加载启动流程 &#xff08;1&#xff09;BootRom阶段为ARM上电后最早加载的代码&#x…

Android SDK环境搭建

一、Android SDK简介 SDK&#xff1a;&#xff08;software development kit&#xff09;软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此&#xff0c;Android SDK 指的是Android专属的软件…