深度学习基础

1 机器学习、深度学习、人工智能

在这里插入图片描述

1.1 机器学习

机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能的学科。
基本步骤:获取数据、数据预处理、特征提取、特征选择、推理预测识别(数据预处理、特征提取、特征选择合称为特征表达)

1.2 监督学习

监督学习,是其训练集的数据是提前分好类,带有标签的数据,进行学习到模型以及参数。

1.3 非监督学习

非监督学习,需要将一系列没有标签的训练数据,输入到算法中,需要根据样本之间的相似性对样本集进行分类或者分析。

2 模型相关

2.1 判别模型和生成模型

生成式模型:由数据学习联合概率分布P(X,Y),然后由P(Y|X)=P(X,Y)/P(X),求出概率分布P(Y|X)作为预测的模型,该方法表示了给定输入X与输出Y之间的生成关系。
判别式模型:由数据直接学习决策函数y=f(x)或者条件概率分布P(Y|X)作为预测模型,判别方法关心的是对于给定输入X应预测出什么样的输出Y。
判别式模型方便很多,因为生成式模型要学习一个X,Y的联合分布往往需要很多数据,而判别式模型需要的数据则相对少,因为判别式模型更关注输入特征的差异性。不过生成式既然使用了更多数据来生成联合分布,自然也能够提供更多的信息

2.2 回归模型

回归模型正是表示从输入变量到输出变量之间映射的函数。例如,线性回归代表目标值预期是输入变量的线性组合。

2.3 多层神经网络

由输入层、输出层、隐藏层组成:

  1. 输入层:接受与处理训练数据集中的各输入变量值
  2. 隐层:实现非线性数据的线性变换
  3. 输出层:给出输出变量的分类或预测结果

3 正则化

经常使用的是L1和L2正则化(L2>L1),思想是在损失函数增加一项(正则项)。

3.1 L2正则化

正则项为权重的平方和,公式为:
在这里插入图片描述
其中在这里插入图片描述是不添加正则化的损失函数。

3.2 L1正则化

正则项为权重的和,公式为:
在这里插入图片描述

3.3 偏差和方差

偏差是描述模型的期望预测与真实结果之间的偏离程度。偏差大说明模型拟合能力差,此时欠拟合。
方差是描述数据扰动造成的模型性能的变化,即模型在不同数据集上的稳定程度。方差大,说明模型稳定性差,训练集上拟合优秀,测试集上拟合差,则方差大,此时过拟合。

3.4 欠拟合

欠拟合,模型参数学习的过少,模型不能很好地拟合数据

3.5 过拟合

过拟合:把一些不必要的特征过度计算了

4 数据集相关

评估方法就是如何划分数据集,应该要求测试集与训练集之间互斥,用测试集来预测评估模型方法。

4.1 留出法

就是将整个数据集按照某种比例进行划分成训练集和测试集,训练集和测试集比例一般为7:3。

4.2 交叉验证法

将全部数据集S分成 k个不相交的子集,每次从分好的子集中里面,拿出一个作为测试集,其它k-1个作为训练集,根据训练集训练出模型,放到测试集上,得出结果。计算k次求得的结果的平均值,作为该模型的真实结果。

如果k太大,误差估计的偏差很小。但是误差估计的方差很大(由于验证点少)计算时间非常大(试验次数多),会导致过拟合。
如果k太小,计算量小,计算时间短。但是误差估计的方差小(由于验证点多)误差估计的偏差会很大,会导致欠拟合。

4.3 留一法

交叉验证法的一种,每次只留下一个样本做测试集,其它样本做训练集,如果有k个样本,则需要训练k次,测试k次(注意这里是以样本为单位,交叉验证法以子集为单位)。
适合小样本数据

4.4 自助法

留出法每次从数据集D中抽取一个样本加入数据集D’中,然后再将该样本放回到原数据集D中,即D中的样本可以被重复抽取。这样,D中的一部分样本会被多次抽到,而另一部分样本从未被抽到。

5 最大似然学习

已经知道结果,寻找使该结果出现可能性最大的参数的过程。计算步骤如下:

  1. 写出似然函数
  2. 对似然函数取对数
  3. 求导,令导数为0得到似然方程
  4. 解似然方程得到参数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg5.0源码阅读—— avcodec_send_packetavcodec_receive_frame

摘要:本文主要描述了FFmpeg中用于解码的接口的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、avcodec_send_packet、avcodec_receive_frame   读者须知:读者需要了解FFmpeg的基本使用流程&#xf…

MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

MySQL 主从复制 1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据…

计算机网络概述(三)

常见的计算机网络体系结构 OSI体系结构: 物理层→数据链路层→网络层→运输层→会话层→表示层→应用层 TCP/IP体系结构: 网络接口层→网际层→运输层→应用层 一般用户的设备都有TCP/IP协议用于连接因特网,TCP/IP的网络接口层并没有规定使用…

【Redis】秒杀业务设计、悲观锁与乐观锁

1 全局ID生成器 一些情境下,使用数据库的ID自增将会产生一些问题。 一方面,自增ID规律性明显,可能被猜测出来并产生一些漏洞另一方面,当数据量很大很大很大时,单表数据量可能会受到限制,需要分表&#xf…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…

RabbitMQ在SpringBoot中的高级应用(2)

过期时间 1.单独的设置队列的存活时间,队列中的所有消息的过期时间一样 Bean//创建交换机public DirectExchange ttlQueueExchange(){// 交换机名称 是否持久化 是否自动删除return new DirectExchange("ttl_queue_log",true,false);}Bean//创建队列publ…

吴恩达ChatGPT《LangChain for LLM Application Development》笔记

基于 LangChain 的 LLM 应用开发 1. 介绍 现在,使用 Prompt 可以快速开发一个应用程序,但是一个应用程序可能需要多次写Prompt,并对 LLM 的输出结果进行解析。因此,需要编写很多胶水代码。 Harrison Chase 创建的 LangChain 框…

需求分析引言:架构漫谈(五)架构师成长之路

我研发领域也从事了一些年,期间也做过一些架构设计工作,包括C#单体转型为Java微服务、Python单体转型为Java微服务等, 也尝试着从自己的经验角度,来汇总一些知识点,同时描述一下如何成长为一个合格的软件架构师&#x…

基于SpringBoot+Vue+微信小程序的电影平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 研究背景:…

Docker 中的 .NET 异常了怎么抓 Dump (转载)

一、背景 1. 讲故事 有很多朋友跟我说,在 Windows 上看过你文章知道了怎么抓 Crash, CPU爆高,内存暴涨 等各种Dump,为什么你没有写在 Docker 中如何抓的相关文章呢?瞧不上吗? 哈哈,在DUMP的分析旅程中&a…

提升工作效率:推荐几款实用的Mac项目管理工具!

在当今软件和技术高度发达的时代,项目管理依然是一项非常重要的任务。现在,有越来越多的人喜欢使用mac电脑进行项目管理,因为mac众所周知的稳定性和使用便捷性。但问题是,mac系统自带的项目管理工具并不是非常完美,因此…

Linux——进程信号详解

目录 一.进程信号的理解 1.1定义: 1.2举例: 1.3总结: 二.进程信号地使用: 2.1信号种类: 2.2而操作系统向进程发送信号地方式有四种: 2.2.1以键盘的方式向进程发送信号 接下来介绍一个系统调用函数sign…

Windows系统上安装Node.js图文步骤流程

Windows系统上安装Node.js图文步骤流程,本文以安装Node.js v4.4.3 LTS(长期支持版本)版本为例: 目录 Node.js下载 Windows 上安装 Node.js 1、Windows 安装包(.msi) 2、Windows 二进制文件 (.exe)安装 版本测试 Node.js下载 Node.js 安装包及源码…

nginx七层代理和四层转发的理解

先来理解一下osi七层模型 应用层 应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如HTTP、FTP、SMTP等,用于实现特定应用的功能和通信表示层 表示层…

Java进程ProcessBuilder类的介绍及使用,ProcessBuilder调用外部程序执行shell命令Linux命令

目录 ProcessBuilder类的介绍及使用 【前言】 【正文】 --构造方法-- --常用方法-- --使用技巧-- --调用本地Shell命令,实例-- 【总结】 【注意】 ProcessBuilder类的介绍及使用 【前言】 在做一个项目的时候需要用到运行时动态执行JAVA命令,一…

leetcode 225.用队列实现栈

⭐️ 题目描述 🌟 leetcode链接:用队列实现栈 1️⃣ 思路和图解: push: 入栈操作只需要往不为空的队列入数据即可,如果都为空,其中任意一个队列都可以。 void myStackPush(MyStack* obj, int x) {// 往…

CS EXE上线主机+文件下载上传键盘记录

前言 书接上文,CobaltStrike_1_部署教程及CS制作office宏文档钓鱼教程,该篇介绍【使用CS生成对应exe木马,上线主机;对上线主机进行,文件下载,文件上传,键盘记录】。 PS:文章仅供学习…

数仓建设中最常用模型--Kimball维度建模详解

数仓建模首推书籍《数据仓库工具箱:维度建模权威指南》,本篇文章参考此书而作。文章首发公众号:五分钟学大数据,公众号后台发送“维度建模”即可获取此书籍第三版电子书 先来介绍下此书,此书是基于作者 60 多年的实际业…

SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

文章目录 实施步骤一、修改配置文件地址1.修改MySQL配置2.修改Redis配置3.修改日志路径和字符集配置 二、将源码压缩并上传服务器1.上传前端文件2.上传后端文件(同上) 三、前端项目打包1.安装依赖2.项目打包 四、后端项目打包1.项目打包(jar包…

Ubuntu 20.04 LTS 安装 nvidia 驱动 + cuda 11.8 从开始到放弃!

升级 sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restri…