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

news2024/10/5 17:28:08

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

学习内容
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/546825.html

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

相关文章

【王道·计算机网络】第四章 网络层

一、 概述和功能 1.1 网络层功能 主要任务:把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务传输单位:数据报功能: 路由选择与分组转发,即选择最佳路径异构网络互联(依靠路由器)拥塞控制(所有结点都来不…

基于PyQt5的图形化界面开发——自制ssh工具

基于PyQt5的图形化界面开发——自制ssh工具 0. 前言1. 第三方库的安装2. ssh原理3. 完整代码4. 演示效果5. 其他PyQt文章 0. 前言 本节我们使用PyQt5来制作一个简单的ssh小工具。 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Pytho…

设计模式中的UML基础

目录 1、UML概述 2、UML的用途 3、UML的构成 4、UML图 5、UML类图 5.1、类的构成 5.2、类与类之间的关系 6、绘制UML图的软件工具 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycl…

java线程组

文章目录 1. 简介2. 线程对象关联线程组:一级关联3. 线程对象关联线程组:多级关联4. 自动归属属性5. 获取根线程组 1. 简介 为了方便某些具有相同功能的线程进行管理,我们可以把线程归属到某一个线程组。线程组中可以有线程对象、线程&#…

【三维激光扫描】实验03:点云着色渲染模式详解

在SiScan软件中,点云的着色模式有:高程彩色、倾斜度、反射强度、自有颜色、点云测站、分隔片、分类7中,本文进行详细讲解。 文章目录 一、高程彩色二、倾斜度三、反射强度四、自有颜色五、分隔片一、高程彩色 高程彩色模式是按点云数据的Z值起算,颜色渐变显示。 二、倾斜度…

【AIGC】10、Chinese CLIP | 专为中文图文匹配设计

文章目录 一、背景二、方法2.1 基础内容2.2 数据集2.3 预训练方法2.4 模型尺寸 三、效果 论文:Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese 代码:https://github.com/OFA-Sys/Chinese-CLIP 出处:阿里达摩院 时间&a…

061:cesium设置棋盘图材质(material-5)

第061个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置棋盘材质,请参考源代码,了解CheckerboardMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考:专栏目标…

第09章_子查询

第09章_子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果…

SeaweedFs使用-环境准备

SeaweedFs使用-环境准备 1.下载go语言包实现go语言环境2.下载SeaweedFs文件3.安装SeaweedFs SeaweedFs是一款开源的分布式存储软件,在存储大量小文件方面有更好的优化,比较适合存储web项目的图片等文件。 1.下载go语言包实现go语言环境 因为SeaweedFs是…

实战TCP三次握手

开篇 在几乎所有的后端开发面试题中,TCP三次握手绝对是最被面试官青睐的题目之一。但是这个东西,平时开发中看不见,摸不着,对于很多人来说,是纯理论的知识,玄之又玄。但是为了应对面试,又不得不…

《JavaEE》网络编程TCP/IP五层协议万字详解

文章目录 TCP/IP五层协议栈应用层xml (可读性比较好 但是运行效率不高)json(可读性好 但是运行效率不高)prtobuffer(可读性不好 但是运行效率很高) 传输层UDP TCPTCP数据解读32位序号32位确认序号4位首部的长度保留位6位标志位字段…

C语言实现学生管理系统

学习完C语言之后,我们可以通过简单写一个学生管理系统来检验自己学的怎么样。很多计算机系大学生都会学到C语言,对于C语言课程的设计作业可能会感到困难,该篇博客的核心点就是带领读者单独完成学生管理系统,此篇博客附有整个学生管…

【C++ 入坑指南】(11)指针

文章目录 一、概念定义和使用二、空指针 & 野指针2.1 空指针2.2 野指针2.3 小结 三、const 修饰的指针四、指针 和 数组五、指针和函数六、实例 学习 C 的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态…

数据全生命周期管理

数据存储 时代"海纳百川,有容乃大"意味结构化、半结构和非结构化多样化的海量的 ,也意味着批数据和流数据多种数据形式的存储和计算。面对不同数据结构、数据形式、时效性与性能要求和存储与计算成本等因素考虑,应该使用适合的存储…

组合预测模型 | ARIMA-CNN-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-CNN-LSTM时间序列预测(Python) 目录 组合预测模型 | ARIMA-CNN-LSTM时间序列预测(Python)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-CNN-LSTM是一种结合了传统时间序列模型和深度学习模型的…

chatgpt赋能Python-python3的下载

Python 3-您在编程路上不可或缺的伙伴 如果您正在寻找一种流行的编程语言,那么Python 3就是一个不错的选择。Python 3作为一种高级编程语言,可以轻松地创建各种应用程序和网站。它是最受欢迎的编程语言之一,就是因为它易于学习和使用。 Pyt…

本地部署 VisualGLM-6B

本地部署 VisualGLM-6B 1. 什么是 VisualGLM-6B2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 VisualGLM-6B6. 启动 VisualGLM-6B7. 访问 VisualGLM-6B8. API部署9. 命令行部署 1. 什么是 VisualGLM-6B VisualGLM-6B 是一个开源的,支持图像、中文和英文…

大模型时代下智能文档处理核心技术大揭秘

大模型时代下智能文档处理核心技术大揭秘 前言一张图全览文档图像分析与预处理图像预处理的整体架构核心技术点应用场景 版面分析与还原整体架构核心技术点应用场景 AI安全文档图像篡改检测 大模型时代思考总结 前言 最近,中国图像图形大会在苏州圆满结束&#xff0…

碳交易机制下考虑需求响应的综合能源系统优化运行(matlab代码)

目录 1 主要内容 架构模型: 需求响应模型: 目标函数: 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文献《碳交易机制下考虑需求响应的综合能源系统优化运行》,解决碳交易机制下考虑需求响应的综合能源系统优化…

Emacs之快速高亮查找字符(九十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…