Learn Prompt-人工智能基础

什么是人工智能?很多人能举出很多例子说这就是人工智能,但是让我们给它定义一个概念大家又觉得很难描述的清楚。实际上,人工智能并不是计算机科学领域专属的概念,在其他学科包括神经科学、心理学、哲学等也有人工智能的概念以及相关的研究。在笔者的观点里,人工智能就是机器具备同时获得、建立、发展、和运用知识的能力。

在计算机科学中,我们可以把人工智能看成是一个目标,而我们讲的机器学习、深度学习、强化学习等各种算法是实现人工智能这个目标的方法之一。

下图是非常经典的描述人工智能与机器学习、深度学习的关系的图。

describe1

机器学习​

机器学习方法我们可以分为以下几个大类:监督学习、无监督学习和强化学习。

监督学习中,数据集的数据具有标签,比如说,我们想让机器对水果的图片进行分类,数据集中除了需要有各种水果的图片之外,还需要每张图片带有是什么水果的标签。

在无监督学习中,数据集的数据是不带有标签的,用回上面的水果图片的例子,无监督学习中,数据集只含有各种水果的图片,而不带有标签。

强化学习中,有三要素:智能体(Agent),环境(Environment)和行为(action)。智能体根据环境会有不同的行为,根据行为定义了收益函数来确定奖励或者惩罚。比如说,下围棋如果下赢了就进行奖励,如果输了则进行惩罚。同时,我们设定一些机制让智能体自己改变行为使得收益函数最大化。换句话说,通过于环境的交互不断的更新自己的行为来使自己变得更智能。

半监督学习​

半监督学习的数据集中,部分数据有标签,而部分数据没有标签。随着现在互联网中数据量越来越大,对所有数据标注是不太可能完成的事,因此,利用少量标注的数据和大量没有标注的数据进行训练成为了一个研究方向之一。

自监督学习​

自监督学习是利用辅助任务从大量的无标签数据中挖掘表征特性作为监督信息,来提升模型的特征提取能力。比如在自然语言处理的预训练模型过程中,设计了挖空让模型去做完形填空,把两个句子拼接让模型判断第二个句子是否承接第一个句子等任务来进行训练。自监督学习的监督信息不是人工标注的,而是算法在大量无标注数据中自动构造监督信息来进行监督学习或者训练,这就是自监督学习。

深度学习​

深度学习主要基于深度神经网络,属于监督学习的一种,它的训练需要带有标签的数据,但是现在的深度学习领域模型并不一定单纯的属于监督学习,比如说语言模型预训练的过程属于自监督学习。

目前神经网络的结构五花八门,并且神经网络的层数都堆得比较深,因此神经网络可以看成是一个黑盒,目前还没有严谨的数学证明证明神经网络为什么有效,不同于传统的统计机器学习,比如SVM(支持向量机)等,具有严格的数学证明证明它是有效的。所以深度学习的从业者门通常自嘲自己是在炼丹,只要输入数据(原材料),然后一段时间后看结果是否符合自己的预期(丹成)。

训练​

模型有了,训练数据集也有了,那么AI是怎么训练的呢?AI的训练准备大致分为:数据收集与数据预处理,模型构建,定义损失函数和优化方法,训练、检验与优化。

数据量和数据的质量是至关重要的一环,业内有句话叫数据为王,谁的数据量越大、数据质量越高,那么理论上就能拥有最“智能”的AI。

AI的“学习”过程其实就是模型参数的更新,那么AI是怎么更新参数的呢?答案是通过定义损失函数和梯度下降的方法。

损失函数就是用来衡量你的模型的输出和实际你需要的输出之间的差距/不一致程度的函数,模型的输出我们叫它预测值,数据集中的标签是我们的实际值。比如说,我要训练一个模型能分清楚各种水果,因为模型没有办法知道什么是苹果、香蕉、葡萄等,所以在正式训练之前,我们会把数据的标签转换成数字的形式,比如1代表苹果,2代表香蕉,3代表葡萄......然后我们训练的时候,模型读取一张苹果图片进去,模型输出的预测值为2,但是苹果的标签实际值为1,于是就知道模型的预测和实际的正确值有误差,我们定义损失函数就是用来衡量这个误差。

损失函数有很多种,不同的任务会使用不同的损失函数。有了损失函数之后,我们就可以优化模型的参数来最小化损失函数,损失越小代表了模型的预测越准。 而优化的一种常用方法叫梯度下降,梯度下降可以类比下山的过程,如下图所示,假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,。然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。

在梯度下降的过程中,模型的参数会不断的更新,直到最后到达最低点。 

describe1

虽然梯度下降的原理很直白很简单,但实际中,这座山不是只有一个山峰和一个山谷的,因此到达的山谷可能只是一个局部最优点而不是全局最优点,梯度下降也有很多的改进尽可能让模型不会落在一个局部最优点就停下,但是实际上神经网络的解空间比较复杂,并不一定能找到全局最优点,以及无法证明找到的点是全局最优。尽管不能保证找到的点是全局最优,但是目前的技术下找到的最优点已经足够优秀,所以不一定话费更大的精力去寻找全局最优。

过拟合与欠拟合​

我们收集到数据在进行数据预处理之后的数据集并不是直接丢给模型训练的,一般情况下会把数据集分割成训练集和测试集(8:2的比例)。测试集的数据是不存在于训练集中,也就是在模型训练的阶段,模型没有见过这部分的数据的。当我们在训练集上训练好模型的时候,我们会在测试集上去测试模型的效果。下图展示的是我们会遇到的三种常见情况:欠拟合、拟合的符合我们的预期、和过拟合。

describe1

欠拟合的情况下就说明模型学习的不够,模型不够聪明学会我们让它学的东西,表现为在训练集上的效果和测试集上的效果都不好。可以解决欠拟合的方法有:

  1. 引入更多特征
  2. 使用非线性模型
  3. 使用更复杂的模型 等等

过拟合的方法则是另一个极端,模型在训练集上学习的太好以致于太死板了,不会变通,变现为在训练集上的效果很优秀,但是在测试集上的表现比较差。比如说,我们让模型去识别写的字,识别一个人字,过拟合的表现就是模型得这个人字写的很端正、字迹与训练集中看到的一致才会识别出它是一个人字,如果这个人字的字迹不同、写的不端正等等,模型则无法正确识别出这个字,很明显这种情况下模型的表现也是不符合我们的预期的。解决过拟合的方法有:

  1. 扩大训练数据集,使用更多数据去训练
  2. 降低模型的复杂度或者更换使用简单点的模型
  3. 加入正则化
  4. 在合适的时候停止训练,防止训练过度 等等

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

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

相关文章

Vue3+ElementUI使用

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"initial-scale1.0,maximum-scale1.0,minimum-scale1.0,user-scalable0, widthdevice-width"/><!-- 引入样式 --><lin…

《C和指针》笔记24: 指针和间接访问

本文主要讲指针和间接访问&#xff0c;标题对应《C和指针对应的章节》&#xff0c;引用的地方是自己写的一些注释、理解和总结。 指针、间接访问和左值 先回顾一下左值和右值 左值代表着一个位置。右值代表着一个值。赋值等号左边是个左值&#xff0c;赋值等号右边是一个右值…

Vue入门简介(带你打开Vue的大门)

目录 前言 一、Vue简介 1. 什么是Vue 2. Vue的应用场景 3. Vue的作用&#xff08;重要性&#xff09; 4. 什么是MVVM模式 5. 开源库网址 二、Vue入门使用 1. 基础使用步骤 1.1 引入Vue.js 1.2 创建Vue实例 1.3 编写Vue模板 1.4 数据绑定与指令 1.5 调用Vue方法和…

flutter聊天界面-TextField输入框buildTextSpan实现@功能展示高亮功能

flutter聊天界面-TextField输入框buildTextSpan实现功能展示高亮功能 最近有位朋友讨论的时候&#xff0c;提到了输入框的高亮展示。在flutter TextField中需要插入特殊样式的标签&#xff0c;比如&#xff1a;“请 张三 回答一下”&#xff0c;这一串字符在TextField中输入&a…

群辉 Synology NAS Docker 安装 RustDesk-server 自建服务器只要一个容器

from https://blog.zhjh.top/archives/M8nBI5tjcxQe31DhiXqxy 简介 之前按照网上的教程&#xff0c;rustdesk-server 需要安装两个容器&#xff0c;最近想升级下版本&#xff0c;发现有一个新镜像 rustdesk-server-s6 可以只安装一个容器。 The S6-overlay acts as a supervi…

NSS [HNCTF 2022 WEEK2]ohmywordpress(CVE-2022-0760)

NSS [HNCTF 2022 WEEK2]ohmywordpress&#xff08;CVE-2022-0760&#xff09; 题目描述&#xff1a;flag在数据库里面。 开题&#xff1a; 顺着按钮一直点下去会发现出现一个按钮叫安装WordPress 安装完之后的界面&#xff0c;有一个搜索框。 F12看看network。 又出现了这个…

day22集合01

1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】…

【Axure原型素材】扫一扫

今天和粉丝们免费分享扫一扫的原型素材&#xff0c;"扫一扫"是一项常见的移动应用功能&#xff0c;通常通过手机或平板电脑上的摄像头来扫描二维码或条形码以实现各种功能。下面是和大家分享扫一扫的常用素材~~~ 【原型效果】 【Axure原型素材】扫一扫 【原型预览】…

【环境配置】基于Docker配置Chisel-Bootcamp环境

文章目录 Chisel是什么Chisel-Bootcamp是什么基于Docker配置Chisel-Bootcamp官网下载Docker安装包Docker换源启动Bootcamp镜像常用docker命令 可能产生的问题 Chisel是什么 Chisel是Scala语言的一个库&#xff0c;可以由Scala语言通过import引入。 Chisel编程可以生成Verilog代…

IDEA创建完Maven工程后,右下角一直显示正在下载Maven插件

原因&#xff1a; 这是由于新建的Maven工程&#xff0c;IDEA会用它内置的默认的Maven版本&#xff0c;使用国外的网站下载Maven所需的插件&#xff0c;速度很慢 。 解决方式&#xff1a; 每次创建 Project 后都需要设置 Maven 家目录位置&#xff08;就是我们自己下载的Mav…

嵌入式:驱动开发 Day2

作业&#xff1a;字符设备驱动&#xff0c;完成三盏LED灯的控制 驱动代码&#xff1a; mychrdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include &q…

Windows/Linux(命令、安装包和源码安装)平台各个版本QT详细安装教程

前言 本文章主要介绍了Windows/Linux平台下&#xff0c;QT4&#xff0c;QT5&#xff0c;QT6的安装步骤。为什么要把QT版本分开介绍呢&#xff0c;因为这三个版本&#xff0c;安装步骤都不一样。Windows平台&#xff0c;QT4的Qt Creator&#xff0c;QT库和编译器是分开的&#…

Android Studio 报错问题记录

工具地址 由于之前手贱不知道点了一个什么东西更新&#xff0c;导致一个code1报错&#xff0c;后来又一通瞎比操作直接吧Android Studio弄得打不开模拟器了&#xff0c;所以我后面就全部卸载重新安装了一下&#xff0c;并把之前遇到的问题做下记录&#xff0c;可能并不适用于每…

笔记1.5:计算机网络体系结构

从功能上描述计算机网络结构 分层结构 每层遵循某个网络协议完成本层功能 基本概念 实体&#xff1a;表示任何可发送或接收信息的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合&#xff0c;协议是水平的。 任一层实体需要使用下层服务&#xff0c;遵循本层…

自定义实现简易版ArrayList

文章目录 1.了解什么是顺序表2.实现哪些功能3.初始化ArrayList4.实现功能接口遍历顺序表判断顺序表是否已满添加元素指定下标添加元素自定义下标不合法异常判断顺序表是否为空查找指定元素是否存在查找指定元素返回下标获取指定下标的元素顺序表为空异常修改指定下标元素的值删…

Stable DIffusion 炫酷应用 | AI嵌入艺术字+光影光效

目录 1 生成AI艺术字基本流程 1.1 生成黑白图 1.2 启用ControlNet 参数设置 1.3 选择大模型 写提示词 2 不同效果组合 2.1 更改提示词 2.2 更改ControlNet 2.2.1 更改模型或者预处理器 2.2.2 更改参数 3. 其他应用 3.1 AI光影字 本节需要用到ControlNet&#xff0c;可…

手摸手系列之前端Vue实现PDF预览及打印的终极解决方案

前言 近期我正在开发一个前后端分离项目&#xff0c;使用了Spring Boot 和 Vue2&#xff0c;借助了国内优秀的框架 jeecg&#xff0c;前端UI库则选择了 ant-design-vue。在项目中&#xff0c;需要实现文件上传功能&#xff0c;同时还要能够在线预览和下载图片和PDF文件&#x…

[golang 流媒体在线直播系统] 4.真实RTMP推流摄像头把摄像头拍摄的信息发送到腾讯云流媒体服务器实现直播

用RTMP推流摄像头把摄像头拍摄的信息发送到腾讯云流媒体服务器实现直播,该功能适用范围广,比如:幼儿园直播、农场视频直播, 一.准备工作 要实现上面的功能,需要准备如下设备: 推流摄像机&#xff08;监控&#xff09; 流媒体直播服务器(腾讯云流媒体服务器,自己搭建的流媒体服务…

MySQL 面试题——MySQL 基础

目录 1.什么是 MySQL&#xff1f;有什么优点&#xff1f;2.MySQL 中的 DDL 与 DML 是分别指什么&#xff1f;3.✨数据类型 varchar 与 char 有什么区别&#xff1f;4.数据类型 BLOB 与 TEXT 有什么区别&#xff1f;5.DATETIME 和 TIMESTAMP 的异同&#xff1f;6.✨MySQL 中 IN …

Json-Jackson和FastJson

狂神&#xff1a; 测试Jackson 纯Java解决日期格式化 设置ObjectMapper FastJson&#xff1a; 知乎&#xff1a;Jackson使用指南 1、常见配置 方式一&#xff1a;yml配置 spring.jackson.date-format指定日期格式&#xff0c;比如yyyy-MM-dd HH:mm:ss&#xff0c;或者具体的…