人工智能应用--深度学习原理与实战--神经网络的工作原理

news2024/11/26 13:44:48

机器学习是将输入(比如图像)映射到目标(比如标签“猫”),并建立映射规则(即模型)。在深度学习中,神经网络通过一系列数据变换层来实现这种输入到目标的映射,本章节我们具体来看这种学习过程是如何实现的。

学习内容
1、理解层(Layer)及权重(weight)的概念及作用
2、理解损失函数(Loss function)的作用
3、理解优化器(optimizer)的作用、了解反向传播(back propagation)过程以及梯度下降
4、理解神经网络的工作原理
5、了解常见的神经网络架构

神经网络本质上是一个求解智数的多层数学框架

神经网络的本质是一个求解数的多层数学框架。以图像识别为例,建立一个“猫脸识别”神经网络模型的过程,实际上类似手求一个复合函数的智数:
求解f(x)= y的参数(也叫做权重)
其中,x =(多张猫的图片)
y =猫(即标签)

例如: 输入以下多张图片
请添加图片描述

神经网络最终得出的是输入数据(如照片)和预期输出标签(如猫)之间的映射规则(核心是权重参数)。

请添加图片描述

理解神经网络的基本单元——神经元

神经网络的每个层中包括一个或多个神经元,神经元是最基本的计算单元。每个神经元由一个线性函数和一个非线性激活函数组成,函数的参数即神经网络需要学习得出的权重。

请添加图片描述

如果不使用非线性激活函数,那么每一个神经元都是线性的,多个神经元的线性组合仍然是线性的,最终的输出也是线性拟合,导致神经网络无法拟合非线性的问题。

理解神经网络的核心组件——层(Layer)

神经网络的核心组件是层(Layer) ,它是一种数据处理模块,可以将它看成数据过滤器。具体来说,层从输入数据中提取特定的数据表示,将多个简单的层链接起来,可以实现渐进式的数据蒸馏(data distillation) 。深度神经网络模型就像是数据处理的“筛子”——包含一系列越来越精细的数据过滤器(即层),最终得到给定数据到目标(LabeL)之间的映射规则。

请添加图片描述

举例来说:
在一个人脸识别模型中,我们建立了包含4层的神经网络。逐层提取输入图像的特征,每一层都会继续处理已被前面的层处理过的数据,提取的特征也越来越抽象,
如图:

请添加图片描述

第1层:开始识别明/暗像素
第2层:识别边缘和形状
第3层:学习到更为复杂的形状和睑部单元
第4层:学习人脸由哪些单元定义

这些层链接在一起形成一个数学框架,最终建立人脸图片与姓名的映射规则。

理解权重(weight)的概念及作用

神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一串数字。每一层实现的变换由其权重来数化,权重也被称为每一层的参数(parameter) 。

请添加图片描述

学习(训练)的目的就是为神经网络的所有层都找到一组权重值,使得该网络能够将每个数据输入与其目标正确他对应(即建立映射规则)。一个神经网络可能包含数干万个参数,找到所有数的正确取值可能是一项非常艰巨的任务,往往需要强大的硬件、优秀的深度学习算法及框架支持。

从数学意义上说,深度学习(神经网络)本质上是一个求解权重参数的过程,从而定义出输入和目标的映射规则。

理解损失函数(Loss function)的作用

损失函数(Loss function)也叫目标函数、误差函数,其作用是衡量当前输出值与预期值之间的距离(即损失值、误差值),从而衡量出当前神经网络的好坏。

图-损失函数用来衡量网络输出结果的质量
请添加图片描述

深度学习会依据这个距离值作为反馈信号来调整网络中每一层的权重参数,以降低损失值,(而得出更准确的模型(即输入数据和目标之间的映射)。

理解优化器(Optimizer)的作用

深度学习的基本技巧就是利用损失函数的误差值作为反馈来对权重进行微调,以降低当前示的损失值。这种调节由优化器(optimizer)完成,它实现了所谓的反向传播(backpropagation)算法,这是深度学习的核心算法。

图-将损失值作为反馈信号来调节权重

请添加图片描述

网络各层的权重是随机初始化的,其初始输出值和目标值相去甚远,即损失值很高,但随着训练的迭代,网络处理的数据样本越来越多,权重值也会向正确的方向逐步微调,损失值逐渐降低。当训练次数足够多时,最终得到的权重值就司以使损失函数最小,输出值与目标值尽可能他接近,从而得到训练好的网络。

权重参数、损失函数、优化器及反向传播算法共同形成了神经网络的工作原理,本质上是一个数学框架。

理解神经网络的学习方式——反向传播算法

神经网络的学习过程是对各层权重参数的迭代优化,属于监督学习范畴。权重的修改基于网络在训练集上的表现,训练集中样本所属的分类是已知的。学习的目标是最小化损失函数。

反向传播是神经网络的核心算法,该算法的基本步骤如下所示:

第一步:以随机权重初始化神经网络。

第二步:对于每个训练样本,重复以下过程:
●前向传播:使用误差函数计算网络产生的总误差,即网络的输出与正确输出的差值。

●反向传播:从输出层到输入层,反向遍历所有层。

第三步:在反向遍历过程中,根据上一层的误差和对应权值,逐层计算网络内部各层误差,从而将总误差输出层向隐藏层(即中间层)反向传播,直至传擂到输入层。

第四步:根据各层误差调整各层的权重,以最小化损失函数(即误差函数)。

理解神经网络的学习方式——权重优化(梯度下降)

优化器是如何最小化损失函数的呢?(即如何优化神经网络各层的权重),最常用的算法是赫度下降法(Gradient Descent,GD)。梯度即曲面上一个点沿着给定方向的倾斜程度,数学上是一个偏导数。

请添加图片描述

该算法的具体步骤如下所示:
(1)随机选择参数初始值;
(2)对模型中的每个参数,计算误差函数的梯度G;
(3)调整模型参数,使其向误差减小的方向,即G方向移动;
(4)重复步骤2和3,直到G的值趋于0。

梯度下降方法一个形象的比喻是:走哪条路能更快到达山底(即最低位置,相当于损失函数的最小值)

了解常见的神经网络架构

神经网络的架构是由节点间的连接方式、网络的层数(即输入层与输出层之间的节点层数)和每层的神经元数量决定的。神经网络的架构有很多种,常用的有三大类——多层感知机(前馈神经网络)、卷积神经网络(CNN)与循环神经网络(RNN)。

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

1.每个神经元与下一层的所有神经元均相连
2.同一层的神经元之间均不相连
3.不相邻的层中的神经元之间没有联系
4.网络的层数和每层中神经元的数量取决于需要解决的问题

请添加图片描述

前馈神经网络是应用最广泛的神经网络,卷积神经网络(CNN)就是一种经典的前馈神经网络。

卷积神经网络与循环神经网络

卷积神经网络(CNN)针对图像识别任务,引入卷积层,使用卷积核【矩阵】对数据逛行卷积操作,得到多个特征映射。

请添加图片描述

循环神经网络(RNN)的神经元包含反馈连接,能够处理与时间序列相关的任务,在自然语言处理(NLP)应用广泛,如语音识别、语言建模、机器翻译等。

请添加图片描述

总结

神经网络本质上是一个实现深度学习的多层数学框架,每一层都对输入数据做一定的转换,在训练(学习)的过程中不断调整优化各层的权重参数,最终得到能够准确映射输入数据和目标输出的网络模型。

优化器的作用是依据误差值来逐步调整各层的权重然数,以降低误差值。这一过程的算法叫做反向传播(Backpropagation )算法,梯度下降(GD)是反向传播算法中常用的方法。

通过在大量数据上多次循环训练,最终可以得到最小化的损失函数,从而得出训练好的神经网络(即能够准确映射输入数据和目标输出的深度学习模型)。

神经网络各层的权重参数在初始化时是随机赋值的,训练过程就是不断优化权重的过程。

卷积神经网络和循环神经网络是当前应用最广泛两种神经网络结构。

权重参数、损失函数、优化器及反向传播算法共同形成了神经网络的工作原理,本质上是一个数学框架。

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

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

相关文章

Java调用C#

由于项目采用Hybrid热更,走纯C#开发,目前战斗由客户端到服务端(客户端提供dll),服务端负责调用,故需要走Java 调C# dll逻辑。 1、JNI:不支持泛型(pb)没法转C成功 2、JN…

MatebookE2022款i7集显 华为智能磁吸键盘(DRC-W76)原装出厂Win11系统恢复原厂OEM系统

HUAWEI华为笔记本电脑,Matebook E 2022款 i7 集显 华为智能磁吸键盘 16GB512GB (DRC-W76)原装出厂Windows11系统恢复原厂OEM系统 系统自带所有驱动、办公软件、华为电脑管家等预装软件 链接:https://pan.baidu.com/s/1t7bczFO_RvD31g1uIZoGgw?pwdq2g0 …

前端面试题整理2

目录 1.讲解es6新增map和set? 2.Ts的枚举和元组是什么? 3.vue3中的beforeEnter钩子函数怎么用? 4.获取数据时,加载loading动画,在哪取消比较好Diff算法的优化在哪? 5.Jq中的$(this)和this的区别&#x…

单片机--STM32

【1】课程回顾 【2】课程介绍 1.单片机简介 单片机是单片微型计算机的简称,Mcu是Microcontroller的简称,也就是嵌入式微控制器。采用集成电路技术将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、定时器/计时器、多种I/O口和中断系统…

P1772 [ZJOI2006] 物流运输

题目提供者 洛谷 难度 提高/省选- 题目描述 物流公司要把一批货物从码头 A 运到码头 B。由于货物量比较大,需要 n 天才能运完。货物运输过程中一般要转停好几个码头。 物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟…

20230516使用python3确认三门问题

最烧脑的悖论,意识为什么会影响未来?颠覆你认知的三门问题播报文章 小红虾实验室 2023-04-09 06:08 四川 好看视频优创联盟,优质科学领域创作者 关注 对于懂概率的人来说,他中大奖的概率将成倍增加,甚至获奖率能够达到100%。 今…

【量化交易笔记】6.布林带的实现

上一讲介绍A股移动平均值(MA)指标,本讲我们来讲解布林布的实现。 布林线(BOLL)技术指标简介 布林线(Bollinger Bands,BOLL)又称布林带,是约翰布林(John Bol…

dbForge Studio for SQL Server Crack

dbForge Studio for SQL Server Crack 增加了对源代码管理中的数据操作语言(DML)触发器排序的支持。 添加了对不使用EXEC/EXECUTE关键字调用过程/函数的语法支持。 在语法检查中添加了对EXEC命令的支持。 dbForge Studio for SQL Server是一个IDE,用于SQL Server中的…

抖音本地生活服务商贴牌小程序

作为社交电商平台的一部分,抖音本地生活服务的市场前景非常广阔。以下是抖音本地生活服务商市场前景的几个方面: 巨大的用户群体:抖音拥有数亿的用户,这些用户中有很多人需要本地生活服务,如美食、酒店、旅游等&am…

对话三维家创始人蔡志森:AIGC让家装从“填空题”变成了“选择题”

(图片来源:Pixels) 三维家讲透了一个道理:数字化企业如何利用已有优势构建AGI能力。 数科星球原创 作者丨苑晶 编辑丨大兔 AIGC火热半年有余,人们已对ChatGPT不再陌生。 从互联网巨头再到上一代AI企业,…

TiKV 新架构:Partitioned Raft KV 原理解析

作者:徐奇 TiKV 推出了名为“partitioned-raft-kv”的新实验性功能,该功能采用一种新的架构,不仅可以显著提高 TiDB 的可扩展性,还能提升 TiDB 的写吞吐量和性能稳定性。 在上一篇文章中,我们介绍了 Partitioned Raf…

就业内推 | 中国移动招网工,有云计算认证的看过来

01 中移集成 🔷招聘岗位:云网络工程师 🔷职责描述: 1、具有云网项目售前工作经验,精通云网络架构和技术原理;熟悉国内主流云厂商阿里云、腾讯云等整体架构和产品体系。 2、具备一定的云网项目交付能力&…

【追梦之旅】——栈居然还能这样玩?!+ 力扣 - 有效括号

【追梦之旅】——栈居然还能这样玩?! 力扣 - 有效括号 ~😎 前言🙌什么是栈?栈的C语言实现头文件编写源码:功能文件编写源码:测试文件编写源码: 力扣题解——有效的括号 总结撒花&…

从C出发 33 --- 自定义数据类型(中)

struct 结构体类型的本质是 数据类型 ,既然是数据类型,就是用来创建变量,而创建的这个变量其实是 变量的集合,是结构体里面成员变量的集合 struct Test {int a,b;}; struct Test tt.a 1; t.b 2;//意味着,结构体变…

数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)

目录 深度优先搜索 概念 图解过程 伪代码 时间复杂度 具体代码(C语言) 广度优先搜索 概念 图解过程 伪代码 时间复杂度 具体代码(C语言) 为什么需要两种遍历 图不连通怎么办 连通 路径 回路 连通图 连通…

FreeRTOS(2)----任务管理

一,任务的基本概念 FreeRTOS是一个支持多任务的操作系统,多个任务可以共享一个优先级,当任务configUSE_TIME_SLICING 为 1,则可以使用时间调度的方式共享处理器。 简而言之,freertos任务就是一系列任务的集合。 二&…

day05_Java中的运算符

在Java中提供了丰富的运算符 其按照功能分:算术运算符、赋值运算符、比较运算符、逻辑运算、条件运算符按照操作数个数分:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符 (三目…

python 元类

目录 元类type介绍使用元类创建类直接使用type继承type 类和对象的创建过程元类有什么用使用元类实现一个单例模式 元类type介绍 我们知道在python中一切皆对象,即使是类,也是对象,那么类这个对象是的类是谁呢?那就是元类。 通过…

Autosar NM网络管理机制(三大三小模式切换、NM网络报文的帧格式解析、NM中用到的定时器配置)

网络管理机制 AUTOSAR网络管理机制其实十分简单,概括下来三句话: 需要通信就发网络报文,否则就停发网络报文,所有节点同睡同醒。 下图是网络管理的状态机: 网络管理包括三个模式:Network Mode、Prepare …

【指针初阶 2023516】

#include <stdio.h>int main() {int a 100;int * pa &a;//pa是专门用来存放地址&#xff08;指针&#xff09;的&#xff0c;这里的pa就被称为指针变量char* pc &a;//指针变量在32为平台下是4个字节//指针变量在64为平台下是8个字节//int arr[10];//printf(&q…