Learn Prompt-人工智能基础

2023-09-16 23:00:07

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

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

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

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. 在合适的时候停止训练,防止训练过度 等等
更多推荐

【Go 基础篇】Go语言闭包详解:共享状态与函数式编程

介绍在Go语言中,闭包是一种强大的编程特性,它允许函数内部包含对外部作用域变量的引用。闭包使得函数可以捕获和共享外部作用域的状态,实现更加灵活和复杂的编程模式。本篇博客将深入探讨Go语言中闭包的概念、用法、实现原理以及在函数式编程中的应用。闭包的基本概念什么是闭包?闭包(Closure)是指一个函数包含了它外部作用域中

Spring续集

6.2、转发视图SpringMVC中默认的转发视图是InternalResourceViewSpringMVC中创建转发视图的情况:当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是

LESS的叶绿素荧光模拟实现与操作

LESS的叶绿素荧光模拟实现与操作前情提要FLUSPECT模型荧光的三维面元冠层辐射传输过程日光诱导叶绿素荧光模拟前情提要本文默认您对LESS(LargE-ScaleremotesensingdataandimageSimulationframework)模型和叶绿素荧光(Sun-InducedchlorophyllF

【golang】深入理解Go语言垃圾回收(GC)

垃圾回收垃圾回收版本1.3之前标记-清除(markandsweep)算法标记-清除(markandsweep)的缺点版本1.5的三色并发标记法没有STW的三色标记法屏障机制强-弱三色不等式插入屏障删除屏障版本1.8的混合写屏障(hybridwritebarrier)机制混合写屏障机制垃圾回收垃圾回收(GarbageCo

SSL、TLS、HTTPS的关系

SSL、TLS、HTTPS的关系SSL(SecureSocketsLayer),安全套接字协议TLS(TransportLayerSecurity),传输层安全性协议TLS是SSL的升级版,两者几乎是一样的HTTPS(HyperTextTransferProtocoloverSecureSocketLayer),建立在

01_Elasticsearch入门介绍

01_Elasticsearch入门介绍Elasticsearch是什么1、什么是搜索?2、如果用数据库做搜索会怎么样?3、什么是全文检索和Lucene?4、什么是Elasticsearch?5、Elasticsearch的功能6、Elasticsearch的适用场景7、Elasticsearch的特点什么是Elast

Axure原型设计累加器计时器设计效果(职业院校技能大赛物联网技术应用项目原型设计题目)

目录前言一、本题实现效果二、操作步骤1.新建文件2.界面设计2.1文本框2.2按钮2.3设计界面完成3.交互3.1启动交互设置3.2分别设置三个属性3.2.1设置值为“0”3.2.2文字于文本框3.2.3获取焦点时3.3停止按钮的交互动作3.3.1设置变量值3.4重置按钮的交互设置3.4.1设置文字3.5文本框交互设置

【网络基础】——HTTPS

目录HTTPS背景知识HTTPS是什么?加密解密为什么要加密常见的加密方式对称加密非对称加密数据摘要&&数据指纹数字签名HTTPS工作过程探究方案1:只使用对称加密方案2:只使用非对称加密方案3:双方都使用非对称加密​编辑方案4:非对称加密+对称加密中间人攻击证书的引入数据签名查看CA机构方案5:非对称加密+对称加密+

掌动智能浅谈UI自动化测试工具的重要性

在现代软件开发中,用户界面(UI)的质量和可靠性对于一个应用的成功至关重要。为了确保应用在各种环境和设备上都能正常运行,开发团队需要进行全面的UI测试。为了提高测试效率和减少人为错误,UI自动化测试工具成为不可或缺的工具。本文将探讨UI自动化测试工具的重要性,以及其如何提升软件质量与效率。本文将探讨UI自动化测试工具的

文件上传漏洞实验

实验目的掌握上传漏洞的利用。实验工具火狐:MozillaFirefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为FF),是一个自由及开放源代码网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、MacOSX及GNU/Linux等。实验内容什么是网站(web)漏洞?web漏洞通常是指网站程

中文人物关系知识图谱(含码源):中文人物关系图谱构建、数据回标、基于远程监督人物关系抽取、知识问答等应用.

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用CSDN平台,自主完成项目设计升级,提升自身的硬实力。专栏订阅:项目大全提升自身的硬实力[专栏详细介绍:项目设计

热文推荐