深度学习简介-AI(三)

深度学习简介

  • 深度学习简介
    • 深度学习例子
    • 深度学习训练优化
      • 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.mzph.cn/news/865672.shtml

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

相关文章

机器学习Day10:聚类

概念 聚类是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性尽可能大 聚类的过程 数据准备:特征标准化和降维特征选择:从最初的特征中选择最…

rust 终端显示综合例程

文章目录 demo程序1 terminal_size2 term_grid3 crossterm3.1 style 4 lscolors准备内容4.1 LsColors 5 users5.1 获取用户/用户组信息5.2 通过缓存获取 demo程序 综合demo 各个库使用demo 1 terminal_size 一个获取终端界面大小的库,支持linux、macos、windows。…

keil5模拟 仿真 报错没有读写权限

debug*** error 65: access violation at 0x4002100C : no write permission 修改为: Dialog DLL默认是DCM3.DLL Parameter默认是-pCM3 应改为 Dialog DLL默认是DARMSTM.DLL Parameter默认是-pSTM32F103VE

【机器学习】机器学习与电商推荐系统的融合应用与性能优化新探索

文章目录 引言第一章:机器学习在电商推荐系统中的应用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.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化器 …

苹果电脑如何录屏,3个方法,帮你搞定

“最近新买了一台苹果电脑,但这是我第一次使用,有很多功能都不太了解。想问问大家苹果电脑如何录屏啊?可以教我一下吗?先提前谢谢大家啦!” 苹果电脑以其出色的性能和独特的设计,深受全球用户的喜爱。而在…

Win11禁止右键菜单折叠的方法

背景 在使用windows11的时候,会发现默认情况下,右键菜单折叠了。以至于在使用一些软件的右键菜单时总是要点击“显示更多选项”菜单展开所有菜单,然后再点击。而且每次在显示菜单时先是全部展示,再隐藏一下,看着着实难…

源代码层面分析Appium-inspector工作原理

Appium-inspector功能 Appium Inspector 基于 Appium 框架,Appium 是一个开源工具,用于自动化移动应用(iOS 和 Android)和桌面应用(Windows 和 Mac)。Appium 采用了客户端-服务器架构,允许用户通…

51单片机嵌入式开发:STC89C52操作8八段式数码管原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 STC89C52操作8八段式数码管原理 1 8位数码管介绍1.1 8位数码管概述1.2 8位数码管原理1.3 应用场景 2 原理图图解2.1 74HC573原理2.2 74HC138原理2.3 数码管原理 3 数码管程序…

豪车视频改字,节假日祝福视频改字小程序制作搭建开发

目录 前言: 一、视频改字小程序功能介绍 二、怎么对短视频模板进行改字? 三、这个短视频改字的项目怎么样? 总结: 前言: 现在很多豪车改字的短视频,节假日祝福的小视频,有不少直播在弄这个…

使用 HBuilder X 进行 uniapp 小程序开发遇到的问题合集

文章目录 背景介绍问题集锦1. 在 HBuilderX 点击浏览器运行时,报 uni-app vue3编译器下载失败 安装错误2.在 HBuilderX 点击微信小程序运行时,报 微信开发者工具打开项目失败,请参阅启动日志错误 背景介绍 HBuilder X 版本:HBui…

一文包学会ElasticSearch的大部分应用场合

ElasticSearch 官网下载地址:Download Elasticsearch | Elastic 历史版本下载地址1:Index of elasticsearch-local/7.6.1 历史版本下载地址2:Past Releases of Elastic Stack Software | Elastic ElasticSearch的安装(windows) 安装前所…

Rust学习笔记007:Trait --- Rust的“接口”

Trait 在Rust中,Trait(特质)是一种定义方法集合的机制,类似于其他编程语言中的接口(java)或抽象类(c的虚函数)。 。Trait 告诉 Rust 编译器: 某种类型具有哪些并且可以与其它类型共享的功能Trait:抽象的…

【C++】#1

关键字&#xff1a; 基本框架、多个main执行、快捷键、cout规则 基本框架&#xff1a; #include <iostream> using namespace std;int main() {//具体内容return 0; } 多个main函数可执行&#xff1a; 常用快捷键&#xff1a; cout规则&#xff1a;

Qt中文乱码如何解决

目录 一、使用建议 二、其它设置 一、使用建议 Qt对中文的支持不是很友好&#xff0c;使用QtCreator会出现各种乱七八糟的中文代码问题&#xff0c;如何处理这种问题&#xff1f; &#xff08;1&#xff09;粘贴别人的代码时&#xff0c;先在记事本里粘贴一遍&#xff0c;再…

信号与系统-实验5 离散时间系统的时域分析

一、实验目的 1、理解离散信号的定义与时域特征&#xff0c;掌握在时域求解信号的各种变换运算&#xff1b; 2、掌握离散系统的单位响应及其 MATLAB 实现的方法&#xff1b; 3、掌握离散时间序列卷积及其 MATLAB 实现的方法&#xff1b; 4、掌握利用 MATLAB 求解微分方程&a…

Android隐藏状态栏和修改状态栏颜色_亲测有效

本文记录了隐藏状态栏和修改状态栏颜色以及电量、WiFi标志等内容的模式显示&#xff0c;亲测有效。 1、隐藏屏幕状态栏 public void hideStatusBar(BaseActivity activity) {Window window activity.getWindow();//没有这一行无效window.addFlags(WindowManager.LayoutParam…

新手教学系列——慎用Flask-SQLAlchemy慢日志记录

在使用 Flask-SQLAlchemy 开发应用时&#xff0c;了解和避免潜在的问题是非常重要的。特别是在常驻进程和循环执行任务的场景下&#xff0c;慢查询记录功能&#xff08;SQLALCHEMYRECORDQUERIES&#xff09;可能会引发严重的内存泄漏问题。本文将详细介绍这个问题&#xff0c;并…

博通 VMware 不再支持中文?到底还有哪款虚拟机值得一用?

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好啊&#xff0c;我的网工朋友。 说起虚拟机&#xff0c;VMware绝对是永远的一哥。 但VMware最近真的“消息”不断啊…… 就上个月&#x…

【Python机器学习】算法链与管道——用预处理进行参数选择的注意项

对于许多机器学习算法&#xff0c;提供的特定数据表示非常重要。比如&#xff0c;首先对数据进行缩放&#xff0c;然后手动合并特征&#xff0c;再利用无监督机器学习来学习特征。因此&#xff0c;大多数机器学习应用不仅需要应用多个算法&#xff0c;而且还需要将许多不同的处…

ByteTrack论文阅读笔记

目录 ByteTrack: Multi-Object Tracking by Associating Every Detection Box摘要INTRODUCTION — 简介BYTE算法BYTE算法用Python代码实现实验评测指标轻量模型的跟踪性能 总结SORT算法简介ByteTrack算法和SORT算法的区别 ByteTrack: Multi-Object Tracking by Associating Eve…