人工智能、机器学习、自然语言处理、深度学习等有啥本质的区别?

news2024/11/15 12:50:24

大众媒体赋予这些术语的含义通常与机器学习科学家和工程师的理解有所出入。因此,当我们使用这些术语时,给出准确的定义很重要,其关系韦恩图如图1.2所示。

图1.2 自然语言处理、人工智能、机器学习和深度学习等术语的关系韦恩图

1 人工智能

人工智能作为一个研究领域出现在20世纪中叶,致力于使计算机模拟和执行通常由人类执行的任务。最初的方法专注于手动推导和硬编码显式规则,用于在各种感兴趣的环境中操作输入数据。这种范式通常称为符号主义人工智能。它适用于定义明确的问题,如国际象棋,但当遇到来自感知类问题时,如视觉和语音识别,它会明显地出错。我们需要一种新的范式,即计算机可以从数据中学习新的规则,而不是由人类明确地指定规则。这促使了机器学习的兴起。

2 机器学习

20世纪90年代,机器学习范式成为人工智能的主导。现在,计算机不再为每种可能的情况显式编码,而是通过相应的输入输出样例数据来训练模型,自动提取输入与输出之间的映射关系。虽然机器学习涉及大量的数学和统计学知识,但由于它倾向于处理大型和复杂数据集,因此它更加依赖实验、经验观察和工程手段,而非数学理论。

机器学习算法从输入数据中学习到一种表示,并将其转换为恰当的输出。为此,机器学习模型需要一组数据(如句子分类任务中的一组句子输入)和一组相应的输出(如用于句子分类的{“正”,“负”}标签)。还需要一个损失函数,它用于度量机器学习模型的当前输出与数据集的预期输出之间的偏差。为了帮助读者理解,不妨考虑二分类任务,其中机器学习的目标可能是找到一个所谓的决策边界的函数,其职责是完美地分割不同类型的数据点,如图1.3所示。这个决策边界应该在训练集之外的新数据实例上也有很好的表现。为了加速找到决策边界,读者可能需要首先对数据进行预处理,或者将其转换为更易于分割的形式。我们在称为假设集(hypothesis set)的可能函数集合中搜索目标函数。这种搜索是自动进行的,它使得机器学习的最终目标更容易实现,这就是所谓的学习。

图1.3 机器学习中一个主要的激励任务的示例(在本图所示的情况中,假设集可以是弧线)

机器学习利用损失函数所包含的反馈信号的指导,在某个预定义的假设集中自动搜索输入与输出之间的最佳映射关系。假设集的性质决定了所考虑的算法类别,这些将在后面内容中简要介绍。

经典机器学习(classical machine learning)是从概率建模方法(如朴素贝叶斯)开始的。这里,我们不妨乐观地假设输入数据特征都是独立的。逻辑斯谛回归(logistic regression)是一种概率建模方法,它通常是数据科学家在数据集上首先尝试的方法。它和朴素贝叶斯的假设集都是线性函数集。

神经网络(neural network)虽然起源于20世纪50年代,但直到20世纪80年代人们才发现一种有效的训练大型网络的方法——反向传播(back propagation)与随机梯度下降(stochastic gradient descent)算法相结合。反向传播提供了一种计算网络梯度的方法,而随机梯度下降则使用这些梯度来训练网络。

本书附录B简要介绍了这些概念。1989年神经网络第一次成功应用。当时贝尔实验室的Yann LeCun建立了一个识别手写数字的系统,这个系统后来被美国邮政局广泛使用。

核方法(kernel method)从20世纪90年代开始流行。这种方法试图通过在点集之间找到良好的决策边界来解决分类问题,如图1.3所示。最流行的核方法是支持向量机(Support Vector Machine,SVM),它试图通过将数据映射到新的高维表示(其中超平面是有效边界)来找到好的决策边界,然后,令超平面和每个类目中最近的数据点之间的距离最大化。利用核方法,高维空间中的高计算成本得到降低。核函数用于计算点之间的距离,而不是显式地对高维数据表示进行计算,其计算成本远小于高维空间中的计算成本。这个方法有坚实的理论支撑,并且易于进行数学分析,当核函数是线性函数时,则该方法也是线性的,这使得该方法非常流行。然而,该方法在感知类机器学习问题上还存在很多可改进的地方,因为这种方法首先需要一个手动的特征工程步骤,而这一步又很容易出差错。

决策树(deciston tree)及其相关方法是另一类仍被广泛使用的方法。决策树是一种决策支持辅助工具,它将决策及其结果建模为树形结构。它本质上是一个图(graph),图中任意两个连通节点之间只存在一条路径。或者可以将树定义为将输入值转换为输出类别的流程图。决策树在21世纪10年代兴起,彼时基于决策树的方法开始比核方法更流行。这种流行得益于决策树更易于可视化、理解和解释。为了帮助读者理解,图 1.4 展示了一个决策树结构示例,该结构将输入{A,B}分类为类别1(如果A<10)、类别2(如果A≥10,而B≤25)和类别3(其他情况)。

图1.4 决策树结构示例

随机森林(random forest)为应用决策树提供了一种实用的机器学习方法。此方法涉及生成大量特化(specialized)决策树并组合它们的输出。随机森林非常灵活并具有普适性,这使得它经常成为继逻辑斯谛回归之后的第二种基线算法。2010年,当Kaggle开放式竞赛平台启动时,随机森林很快成为该平台上使用最广泛的算法。2014年,梯度提升机(Gradient Boosting Machine,GBM)取代了它。它们的原理都是迭代地学习新的基于决策树的模型,这些模型消除了以前迭代中模型的弱点。在撰写本书时,它们被广泛认为是解决非感知类机器学习问题的最佳方法。它们在Kaggle上依然备受青睐。

2012年左右,基于GPU训练的卷积神经网络(Conrolutional Neural Network,CNN)开始赢得年度ImageNet竞赛,这标志着当前深度学习“黄金时代”的来临。CNN开始主导所有主要的图像处理任务,如目标识别(object recognition)和目标检测(object detection)。同样,我们也可以在人类自然语言的处理中找到它的应用,即NLP。神经网络通过一系列越来越有意义的、分层的输入数据表示进行学习。这些层(layer)的数量确定了模型的深度(depth)。这也是术语“深度学习”(deep learning)的由来,即训练深度神经网络的过程。为了区别于深度学习,之前所述的所有机器学习方法通常称为浅层(shallow)或传统学习方法。请注意,深度较小的神经网络也可归类为浅层,但不是传统的。深度学习已经占据机器学习领域的主导地位。很明显作为解决感知类问题首选的深度学习在可处理问题的复杂性方面引发了一场“革命”。

虽然神经网络的灵感来自神经生物学,但它并不是我们神经系统工作的真实模式。神经网络的每一层都由一组数字(称其为层的权重)参数化,用于精确地指导该层如何对输入数据进行转换。在深度神经网络中,参数的总数很容易达到百万级。前面提到的反向传播算法是一种算法引擎,用于找到正确的参数集,即对网络进行学习。图1.5(a)展示了具有两个全连接隐藏层的简单前馈神经网络的可视化表示。图1.5(b)展示了一个等价的简化表示,我们将经常使用这种表示来简化图表。一个深度神经网络会有很多这样的层。一种著名的神经网络结构不具备这种前馈性质,它就是长短期记忆(Long Short-Term Memory,LSTM)循环神经网络(Recurrent Neural Network,RNN)。与图1.5中接收长度为2的固定长度输入的前馈结构不同,LSTM可以处理任意长度的输入序列。

图1.5 具有两个全连接隐藏层的简单前馈神经网络

如前所述,引爆“深度学习革命”的是硬件、海量可用数据和算法的进步。专门为视频游戏市场开发的GPU,以及业已成熟的互联网,开始为深度学习领域提供前所未有的海量优质数据。数据源如Wikipedia、YouTube和ImageNet等的可用性推动了计算机视觉和NLP的进步。神经网络能够消除对昂贵的手动特征工程的需求,这是成功将浅层学习方法应用于感知数据的必要条件,可以说是影响深度学习易用性的因素。由于NLP是一个感知类问题,因此神经网络也是本书重点介绍的机器学习算法类型,尽管不是唯一的类型。

3 自然语言处理

语言是人类认知最重要的方面之一。毫无疑问,为了创造真正的人工智能,需要让机器掌握如何解释、理解、处理和操作人类语言的方法。这让NLP在人工智能和机器学习领域日渐重要。

与人工智能的其他子领域一样,处理NLP问题的初始方法(如句子分类和情感分析)都基于显式规则或符号主义人工智能。采用这些初始方法的系统通常无法推广到新任务,并且很容易崩溃。自20世纪90年代核方法出现以来,人们一直致力于研究特征工程——手动将输入数据转换为浅层学习方法可以用来正确预测的形式。特征工程非常耗时,且与特定任务相关,非领域专家难以掌握。2012年左右,深度学习的出现引发了NLP的真正革命。神经网络在其某些层中自动设计适当特征的能力降低了特征工程处理新任务和问题的门槛。然后,人们的工作重点转向为任何给定的任务设计适当的神经网络结构,以及在训练期间调整各种超参数。

训练NLP系统的标准方法是首先收集大量数据点,然后在句子或文档的情感分析任务中对每个数据点进行标注(如“正向”或“负向”)。最后将这些数据点提供给机器学习算法,以学习输入信号到输出信号映射关系的最佳表示,学习得到的模型在新数据点上也有很好的表现。在NLP和机器学习的其他子领域中,该过程通常称为有监督学习(supervised learning)范式。手动完成的标注过程为学习代表性映射关系提供了“监督信号”。另外,从未标注数据点的学习范式称为无监督学习(unsupervised learning)范式。

尽管今天的机器学习算法和系统不是生物学习系统的直接复制品,也不应该被视为此类系统的模型,但它们的某些方面受到进化生物学的启发,而且带来了重大的进步。对于每个新任务、语言或应用领域,有监督学习过程传统上是从头开始重复的,这似乎是有缺陷的。这个过程在某种程度上与自然系统基于先前获得的知识并加以复用的学习方式相反。饶是如此,从零开始的感知任务学习已经取得了重大进展,特别是在机器翻译、问答系统和聊天机器人方面,尽管它仍然存在一些缺点。特别是,今天的系统在输入信号相关样本的分布发生急剧变化时鲁棒性欠佳。换句话说,系统学习在某种类型的输入上表现良好。如果更改输入类型,可能会导致性能显著下降,有时甚至会出现严重故障。此外,为了使人工智能更普及,并使小型企业的普通工程师或没有大型互联网公司资源的任何人都能使用NLP技术,能够下载和复用他人学习到的知识将变得尤为重要。这对于以英语或其他流行语言之外的语言作为母语的地区的人们也很重要,因为英语或其他流行语言有预训练模型。此外,这对于执行所在地区独有的任务或前所未有的新任务的人来说也很重要。迁移学习提供了解决其中一些问题的方法。

迁移学习使人们能够将知识从一个环境中迁移到另一个环境中,这里将环境定义为特定任务、领域和语言的组合。最初的环境称为源环境,最终的环境称为目标环境。知识迁移的难易程度和是否成功取决于源环境和目标环境的相似性。很自然,在某种意义上与源环境“相似”的目标环境(我们将在本书后面定义)会更容易迁移和成功。

迁移学习在NLP中的应用比大多数实践者意识到的要早得多,因为使用预训练的嵌入(如Word2Vec或Sent2Vec)对单词进行向量化是一种很常见的做法(1.3节将对此进行详细介绍)。浅层学习方法通常将这些向量用作特征。我们将在1.3节和第4章更详细地介绍这两种技术,并在本书中以多种方式应用它们。这种流行的方法依赖于无监督的预处理步骤,该步骤用于在没有任何标签的情况下首先训练这些嵌入。然后,来自该步骤的知识被迁移到有监督学习上下文中的特定应用程序中,在该环境中,预训练学习的知识得到进一步处理,并针对与当前浅层学习问题相关的较小带标签样本集进行特化。传统上,这种结合无监督学习和有监督学习步骤的范式称为半监督学习(semisupervised learning)。

本文摘自《自然语言处理迁移学习实战》

一本书带你读懂ChatGPT背后的技术,自然语言处理迁移学习,解锁机器学习新境界,从浅层到深度,掌握NLP迁移学习的奥秘,让你的模型脱颖而出!

迁移学习作为机器学习和人工智能领域的重要方法,在计算机视觉、自然语言处理(NLP)、语音识别等领域都得到广泛应用。本书是迁移学习技术的实用入门图书,能够带领读者深入实践自然语言处理模型。首先,本书回顾了机器学习中的关键概念,并介绍了机器学习的发展历史,以及NLP迁移学习的进展;其次,深入探讨了一些重要的NLP迁移学习方法—NLP浅层迁移学习和NLP深度迁移学习;最后,涵盖NLP迁移学习领域中重要的子领域—以Transformer作为关键功能的深度迁移学习技术。读者可以动手将现有的先进模型应用于现实世界的应用程序,包括垃圾电子邮件分类器、IMDb电影评论情感分类器、自动事实检查器、问答系统和翻译系统等。

本书文字简洁、论述精辟、层次清晰,既适合拥有NLP基础的机器学习和数据科学相关的开发人员阅读,也适合作为高等院校计算机及相关专业的学生参考用书。

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

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

相关文章

企业使用CRM后的三大提升

数字化转型是企业发展的重要决策&#xff0c;为此&#xff0c;很多企业使用CRM客户管理系统管理客户数据、优化业务流程&#xff0c;直面数字化浪潮。那么&#xff0c;使用CRM系统后&#xff0c;企业会有哪些变化呢&#xff1f; 一、提升客户体验 使用CRM系统后&#xff0c;企…

第二周周报

PCA PCA 是一种流行的统计技术&#xff0c;用于识别数据集中最重要的特征或模式并将其转换为较低维的表示形式。本报告将涵盖PCA的基本原理、其优点。 步骤 主成分分析是一种数学技术&#xff0c;可降低数据集的维数&#xff0c;同时保留尽可能多的信息。它通过查找主成分来…

Redis集群(Cluster和Codis)

1.为什么使用集群&#xff1f; 当我们遇到一个大数据量存储情况时&#xff0c;有两种解决方案&#xff1a; 纵向扩容&#xff1a;升级单个redis实例的配置&#xff0c;包括增加内存容量、磁盘容量&#xff0c;以及使用更高的cpu配置。 纵向扩容&#xff1a;简单直接。也存在一些…

98英寸带来加倍沉浸享受,三星Q80Z新品呈现大有不同的精彩

作者 | 曾响铃 文 | 响铃说 在过去几年&#xff0c;家电行业可以说是负重前行。在经历2022年整年寒冬后&#xff0c;2023年的彩电市场能否迎来一场翻身仗&#xff1f;这是年初被业内讨论最多的话题。 目前2023年已经过半&#xff0c;据奥维云网数据显示&#xff0c;2023年一…

InsCode Stable Diffusion 美图活动一期——即刻体验!来自 CSDN 的 SD 模型

文章目录 &#x1f525;关于活动&#x1f4cb;前言&#x1f3af;什么是 Stable Diffusion&#x1f9e9;Stable Diffusion 与其他 AI 艺术生成器有什么区别&#xff1f; &#x1f3af;开始体验 InsCode Stable Diffusion&#x1f3af;试用 SD 模型生成优质人物好图&#x1f9e9;…

内存池是什么原理?|内存池简易模拟实现|为学习高并发内存池tcmalloc做准备

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 这两个都是博主在学习Linux操作系统过程中的记录&#xff0c;希望对大家的学习有帮助&#xff01; 操作系统Operating Syshttps://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482Linux S…

在Linux系统中如何搭建Apache服务

在Linux系统中如何搭建Apache服务 Apache服务是一种开源的、跨平台的Web服务器软件&#xff0c;它的作用是提供网页内容给用户的Web浏览器。具体来说&#xff0c;Apache服务有以下几个主要的作用&#xff1a; 1.Web服务器&#xff1a;Apache是一款功能强大且广泛使用的Web服务…

54、Mysql索引的数据结构,各自优劣

Mysql索引的数据结构&#xff0c;各自优劣 索引的数据结构和具体存储引擎的实现有关在MySQL中使用较多的索引有Hash索引&#xff0c;B树索引等InnoDB存储引擎的默认索引实现为: B树索引。对于哈希索引来说&#xff0c;底层的数据结构就是哈希表&#xff0c;因此在绝大多数需求…

C++编程(三)—— C++11

文章目录 绑定器和函数对象函数对象绑定器lambda表达式 关键词与语法autonullptr右值引用 智能指针容器set和mapunordered_set和unordered_map数组链表 语言级别支持的多线程编程thread子线程如何结束主线程如何处理子线程线程间的互斥线程的同步通信机制&#xff08;条件变量&…

Windows Cluster 分布式算法

在分布式系统中&#xff0c;都需要解决分布式一致性问题。那么&#xff0c;在Windows 集群中&#xff0c;使用了什么算法来保证集群的一致性呢——Paxos。Windows Server 故障转移集群 (WSFC) 使用 Paxos 算法在整个系统中同步更改。通过记录 Paxos Tag 值并保留历史记录&#…

连锁门店如何搭建B2B2C多用户商城系统?

现在很多的线下店铺都开始慢慢的转型线上了&#xff0c;想线上线下相结合&#xff0c;但是最近很多的商家都在问什么样的B2B2C商城系统开发适合线下店铺呢?这个问题今天加速度jsudo小编给大家一起整理如下&#xff0c;相信商家看完后就知道如何选择一款合适的商城系统了。 一、…

【C语言】求序列前N项和

问题描述 输入一个正整数n&#xff0c;输出2/13/25/38/5…的前n项之和&#xff08;该序列从第2项起&#xff0c;每一项的分子是前一项分子与分母的和&#xff0c;分母是前一项的分子&#xff09;&#xff0c;保留2位小数。试编写相应程序。 代码实现 #include<stdio.h>…

spring-14优化性能

原始Junit测试Spring的问题 这里的&#xff1a;第一行代码获得应用上下文对象&#xff0c;第二行代码获得你那个对象 2、原先测试找junit&#xff0c;现在测试找spring&#xff0c;然后再找&#xff0c;junit&#xff0c;告诉我配置文件是什么&#xff0c;然后注入测试对象&am…

LeetCode 172.阶乘后的零

基础方法就是暴力解&#xff0c;其次是数学归纳。 具体思路如下&#xff1a;&#xff08;copy大佬的&#xff09; 耐心看完&#xff01; 代码如下&#xff1a; #include <iostream> #include <vector> #include <cmath> #include <algorithm> #incl…

Android GridPager实战,从RecyclerView to ViewPager

这个简单的的案例展示了如何从RecyclerView to ViewPager&#xff0c;以网上的公开图片为样例。 安卓开发中从RecyclerView 到 ViewPager demo运行结果demo项目工程目录结构关键代码 MainActivity关键代码GridFragment关键代码ImageFragment关键代码ImagePagerFragment关键布局…

关于示波器引入50HZ工频干扰的解释

前几天&#xff0c;小白在实验室工作时&#xff0c;听到同事抱怨示波器有问题。上前查看&#xff0c;才知道&#xff0c;小白的那位同事在测量信号波形时&#xff0c;实际与理想相差甚远。于是乎&#xff0c;在探头什么也不接的情况下&#xff0c;发现示波器本身也存在波形信号…

2022Robocom国赛-u2 女王的大敕令

副本是游戏里的一个特色玩法&#xff0c;主要为玩家带来装备、道具、游戏资源的产出&#xff0c;满足玩家的游戏进程。 在 MMORPG《最终幻想14》里&#xff0c;有一个攻略人数最大达到 48 人的副本“零式贡希尔德神庙”&#xff0c;其中守关 BOSS “天佑女王”有一个很有趣的技…

图形编辑器开发:一些会用到的简单几何算法

大家好&#xff0c;我是前端西瓜哥。 开发图形编辑器&#xff0c;你会经常要解决一些算法问题。本文盘点一些我开发图形编辑器时遇到的简单几何算法问题。 矩形碰撞检测 判断两个矩形是否发生碰撞&#xff08;或者说相交&#xff09;&#xff0c;即两个矩形有重合的区域。 …

C生万物 | 程序员必备实用调试技巧分享

一起来学习调试~ 一、前言二、什么是Bug&#xff1f;三、调试是什么&#xff1f;有多重要&#xff1f;1、导学引入2、调试的基本步骤3、Debug和Release的介绍 四、Windows环境下VS调试介绍1、调试环境的准备2、学会快捷键3、调试的时候查看程序当前信息3.1 查看临时变量的值3.2…

基于SSM的购物商城系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…