深度学习简介-AI(三)

news2024/11/25 13:29:29

深度学习简介

  • 深度学习简介
    • 深度学习例子
    • 深度学习训练优化
      • 1.随机初始化
      • 2.优化损失函数
      • 3.优化器选择
      • 4.选择/调整模型结构
    • 深度学习常见概念
      • 隐含层/中间层
      • 随机初始化
      • 损失函数
      • 导数与梯度
      • 优化器
      • Mini Batch/epoch
    • 深度学习训练逻辑图

深度学习简介

深度学习例子

猜数字

A: 我现在心里想了一个0-100之间的整数,你猜一下?
B: 60。
A: 低了。
B:80。
A:低了。
B:90。
A:高了
B:88。
A:对了

我们可以通过这个典型的例子来学习深度学习的思想。上面的过程中,可以把B当成我们的模型,A心里面想的数字,是我们想要模型预测的内容。整个过程就是我们训练模型如何快速的预测数字的过程,1-100中,我们猜测的数据就是我们的样本。

备注:一般的样本中,应该是输入和输出1对1的;这里我们可以理解为输入就是1-100的任意一个数,任何都可以,我这里假设输入为100,比较好计算

深度学习过程-拆解:

1.B 随机预测一个数 --模型随机初始化的参数进行输出
选择一个模型(函数作为猜的方法)为:Y = k*X 此时这个样本就是(1-100的数)
第一次输出为为60 ,X输入为100,k初始化为0.6
2.计算模型猜出的数字与真正的答案的差距 ---计算loss,就是预测和真实值的差距,计算loss的公式叫损失函数=sign(y_true-y_pred)
3.根据loss,就可以告诉B是偏大还是偏小 ---模型得到loss信息
4.B根据获得信息调整自己的预测方案,就是K值 ---反向传播
5.B中的K可以预先设定调整的幅度大小,比如偏大,则k减小0.1,偏小则k加0.1 ---调整的东西叫优化器,调整的幅度大小就是学习率
6反复重复上述1-5;直到预测和真实值的差距 loss小于我们预设的值,则停止 --模型训练的轮数

释义: 上述的整个过程,就是深度学习训练模型的过程,就是找到模型(y=kx)中,k取什么值,可以满足xk得到B心中想要的数字。当然咱们这个例子中,这个k不是固定的,一个真实的完整训练模型,最后肯定是为了得到一共固定的k值,在这里只是举例说明。

深度学习训练优化

从猜数字的过程,可以类比为一个模型训练的过程,那么我们的目的是尽快训练出一个满足我们任务的模型,我们可以从以下部分考虑取优化:

1.随机初始化

如果B一开始初始化的值k就是88,那么我们就直接得到正确的模型了
所以 我们根据经验初始化一个值,一定程度上可以帮助计算机更快的找到正确的k。
NLP中预训练模型实际上计算对随机初始化的技术优化

2.优化损失函数

如果: A不是告诉B偏大还是偏小,而是直接告诉它还差多少,那么B就能很快的得到一个正确的k

所以我们可以选择一个好的损失函数,或者计算损失值时,我们可以给到模型准确的值

3.优化器选择

上述的例子中,如果我们采用2分法去预测数据:50-->75-->88....这样去设置我们预测参数的策略,无疑会更快的找到正确的k

4.选择/调整模型结构

上面我们选择的模型是y=k*x,我们知道这是一条直线;那如果我们预测的规律不是直线,那么不管我们怎么调整,都无法很好的预测结果,这就和我们选择的模型有关
示例:
就像一个只有文科天赋的学生,让他去研究数学一样,即时他已经很努力了,但是效果却差强人意

深度学习常见概念

深度学习中的神经网络是一种拟人化的说法,是为了我们便于理解,本质上就是一系列数学公式。

隐含层/中间层

释义: 神经网络模型输入层和输出层之间的部分
隐含层可以有不同的结构,如下面一些著名的网络结构:

RNN
CNN
DNN
LSTM
Transformer
…上述的网络本质上区别,就是数学公式不同的而已。

随机初始化

释义: 较大的模型,隐含层会包含很多的权重矩阵,这些矩阵需要有初始值,才能开始进行计算。
注意

  1. 初始值的选择会影响最终训练模型的结果
  2. 一般情况下,初始值随机初始化也是在一定范围内进行的
  3. 使用预训练模型时,初始值是提前被训练好的参数

损失函数

释义:用来计算模型的预测值和真实值之间的差距。
备注

  1. 损失函数的价值是让我们知道,当前离目标还有多大的差距,这个计算是通过预测值和目标值来计算的。示例:就像考试,是让我们知道距离想要完全掌握知识还差多少
  2. 损失函数有很多,需要选择合理的损失函数才能训练出想要的模型。示例:就像我们想要学好数学,那么就要做数学卷子,我们才知道还差多少

导数与梯度

释义: 导数表示函数曲线的切线斜率,即在该函数值点上的变化率。
在这里插入图片描述
作用: 导数可以告诉我们值得变化是增大还是减小;想想我们需要求预测值和真实值之间得差距loss;那么在这里记住,y、x都是输入得值,实际得函数是k和loss之间得关系;现在我们需要找到k得值,使得loss最小;那么是不是要对k在这个预测值得位置求导数,这样我们就知道,k该增大还是减小,才能使loss减小了。

梯度释义: 梯度通常就相当于函数在某个数据导数,由于人工智能计算通常使用向量,所以实际就是函数某一点的方向向量,有方向并且梯度的方向是该点增长最快的点,所以梯度的反方向就是减小最快的点。
所以需要梯度下降: 梯度下降得目的是找到函数得极小值

优化器

释义: 上面例子中调整预测数据大小的整个动作就是人工智能中的优化器。他的作用就是运用一定的调整策略,使得能够较好的找到一个适合的点,使得模型预测准确
相关概念: 学习率(learning rate)就是调整k的幅度大小
动量(Momentum)动量可以理解成物理中的惯性;目的是为了降低模型微调中,脏数据的影响。(即计算梯度方向会和之前的比较,如果完全相反,会继续向之前的方向前进一下步,如果方向相同,会适当的调大学习率)

Mini Batch/epoch

Batch释义: 简单理解就是一次性加入多个训练的语料,进行训练后,将他们梯度综合进行处理;这是避免,单条数据进行训练,梯度一会上一会下,导致最终训练没有办法拟合整体的数据规律。

Mini Batch释义: 但一次也不能太多数据一起训练,数据过多会导致需要的硬件设备太大,计算也较慢;预算成本达不到。

epoch: 是指将完整的训练数据训练完一次。因为在实际的训练中,训练集数据,不是指训练一次;会根据loss来控制或者是指定训练的轮,即epoch数

深度学习训练逻辑图

在这里插入图片描述

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

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

相关文章

Python特征工程 — 1.3 对数与指数变换

目录 1 对数变换 1.1 对数变换的概念 1.2 对数变换实战 2 指数变换 2.1 指数变换的概念 2.2 指数变换实战 3 Box-Cox变换 3.1 Box-Cox变换概念 3.2 Box-Cox变换实战 1 对数变换 1.1 对数变换的概念 特征对数变换和指数变换是数据预处理中的两种常用技术,…

基于Hadoop平台的电信客服数据的处理与分析④项目实现:任务15:数据生产

任务描述 电信数据生产是一个完整且严密的体系,这样可以保证数据的鲁棒性。在本项目的数据生产模块中,我们来模拟生产一些电信数据。同时,我们必须清楚电信数据的格式和数据结构,这样才能在后续的数据产生、存储、分析和展示环节…

前端基础:CSS(篇一)

目录 css概述 CSS与HTML的关系 基本语法 行内样式表 代码 运行 内嵌样式表 代码 运行 外部样式表 代码 运行 选择器 标签选择器 代码 运行 id选择器 代码 运行 类选择器 代码 运行 选择器优先问题 通配选择器 选中所有的标签 代码 运行 选择器组…

网安小贴士(6)TCP/IP分层

一、前言 1983年,美国国防部决定将TCP/IP作为所有计算机网络的标准协议,这标志着TCP/IP正式成为互联网的基础协议。随着个人计算机的普及和网络技术的发展,TCP/IP模型被广泛应用于各种网络环境中,包括局域网(LAN&#…

MySQL单表千万级数据查询优化大家怎么说(评论有亮点)

题图来自APOD 上次写了一篇MySQL优化实战的文章“MySQL千万级数据从190秒优化到1秒全过程”。 这篇文章主要还是在实战MySQL优化,所以从造数据到查询SQL优化SQL都没有业务或者其它依赖,优化的技巧也不涉及软件架构就是纯SQL优化。 由于笔者经验有限和…

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理

AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 目录 AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理 一、简单介绍 二、Transformer 三、Transformer架构 四、编码器 1、自注意…

【flutter问题记录】 无效的源发行版:17

问题描述 在看开源项目的时候,clone下来后一直编译失败,提示:无效的源发行版:17,看描述大概是jdk的版本问题,但是在Android studio各种指定都无用,网上资料也没有flutter项目的解决方案,最后在…

智源十大行业高质量数据集开放申请,经验证可显著提升模型行业能力!

近日,智源研究院非开源、高质量行业预训练数据集开放申请。该数据集覆盖医疗、教育、文学、金融、旅游、法律、体育、汽车、新闻、农业十大行业,总量达597GB。 智源研究院对较难获取的非开源高质量数据、合作伙伴贡献的数据、有行业特征的开源数据进行了…

深度分析和对比本地大语言模型Ollama和LocalAI

前言 在充满活力的人工智能(AI)世界中,开源工具已成为开发人员和组织利用LLM(大型语言模型)力量的重要资源。这些工具通过提供对高级LLM模型的访问权限,使各种用户能够构建创新和前沿的解决方案。在众多可…

【Python】变量与基本数据类型

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言变量声明变量变量的命名规则 变量赋值多个变量赋值 标准数据类型变量的使用方式存储和访问数据:参与逻辑运算和数学运算在函数间传递数据构建复杂的数据结构 NameE…

【博客21】缤果Qt5仿小米耳机APP布局_PC端软件(高级篇)

小米耳机 提示:此软件只是实现简单的布局和界面跳转逻辑,并未加入小米协议相关内容 因需要鉴权方式等也无法进行通讯处理开发工具::qt-opensource-windows-x86-5.14.2 (编程语言C) 反编译工具: apktool 小米小爱开放平台 - 语音服务平台 - 文档中心 …

聚焦大模型应用落地,2024全球数字经济大会人工智能专题论坛在京举办

7月1日下午,2024全球数字经济大会人工智能专题论坛在中关村国家自主创新示范区会议中心举办。论坛紧扣大模型应用落地这一热点,以“应用即未来——大模型赋能千行百业,新生态拥抱产业未来”为主题,备受社会各界关注。 一、北京已…

Docker镜像加速配置

由于当前运营商网络问题,可能会导致您拉取 Docker Hub 镜像变慢,索引可以配置阿里云镜像加速器。阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 每个人镜像地址都不一样,需要登陆阿里云自行查看,地址在上面&a…

底层软件 | Linux设备驱动模型和sysfs文件系统

Linux设备驱动模型和sysfs文件系统 Linux内核在2.6版本中引入设备驱动模型,简化了驱动程序的编写。Linux设备驱动模型包含设备(device)、总线(bus)、类(class)和驱动(driver),它们之间相互关联。其中**设备(device)和驱动(driver)通过总线(bus)**绑定在…

检测水管缺水的好帮手-管道光电液位传感器

管道光电液位传感器是现代清水管道管理中的重要技术创新,不仅提高了检测液位的精确度,还解决了传统机械式和电容式传感器存在的诸多问题,成为检测管道缺水的可靠利器。 该传感器采用先进的光学感应原理,利用红外光学组件通过精密…

2024源代码加密软件评测丨保护企业源代码防泄密

为什么需要对源代码进行加密?因为源代码泄密可能会带来一系列严重的后果: 源代码泄密会导致企业的知识产权被盗窃,竞争对手可能会利用这些代码开发类似的产品,从而削弱公司的市场竞争力。 由于知识产权被盗,公司可能会…

【机器学习】机器学习与医疗健康在疾病预测中的融合应用与性能优化新探索

文章目录 引言第一章:机器学习在医疗健康中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 特征工程 1.2 模型选择1.2.1 逻辑回归1.2.2 决策树1.2.3 随机森林1.2.4 支持向量机1.2.5 神经网络 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化…

【c++】C++ IO流

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

使用Vue CLI方式创建Vue3.0应用程序

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。新版本的 Vue CLI 的包名由原来的 vue-cli 改成了 vue/cli。 在开发大型项目时,需要考虑项目的组织结构、项目构建和部署等问题。如果手动完成这些配置工作,工作效率会非常低。为此,Vue.…

嵌入式Linux系统编程 — 6.5 获取信号的描述信息

目录 1 strsignal()函数 2 psignal()函数 在 Linux 下,每个信号都有一串与之相对应的字符串描述信息,用于对该信号进行相应的描述。这些字符串位于 sys_siglist 数组中, sys_siglist 数组是一个 char *类型的数组,数组中的每一个…