Hi,大家好,我是半亩花海。今天是正月十六,也已然度过元宵节的欢悦中。人工智能的学习还要继续喔。这次笔记内容是关于计算机视觉、自然语言处理和知识图谱的入门学习。新的一年,愿大家共同进步,早日观赏到彼岸的漫漫花开!
目录
五、计算机视觉
5.1 计算机视觉概述
5.1.1 计算机视觉简介
计算机视觉(Computer Vision,CV)是机器认知世界的基础,最终的目的是使得计算机能够像人类一样“看懂世界”。
计算机视觉是从图像或视频中提出符号或数值信息,分析计算该信息以进行目标的识别、检测和跟踪等。更形象地说,计算机视觉就是让计算机像人类一样能看到并理解图像。
1. 计算机视觉的概念
计算机视觉技术的基本原理是利用图像传感器获得目标对象的图像信号,并传输给专用的图像处理系统,将像素分布、颜色、亮度等图像信息转换成数字信号,并对这些信号进行多种运算与处理,提取出目标的特征信息进行分析和理解,最终实现对目标的识别、检测和控制等。
2. 计算机视觉的特点
- 计算机视觉是一个全新的应用方向,而非像预测分析那样只是对原有解决方案的一种改进。
- 计算机视觉能够以无障碍的方式改善人类的感知能力。
- 计算机视觉能够以远超其他人工智能工具的速度收集训练数据。
5.1.2 计算机视觉的发展历史
5.1.3 计算机视觉研究的意义
在采集图像、分析图像、处理图像的过程中,计算机视觉的灵敏度、精确度、快速性都是人类视觉所无法比拟的,它克服了人类视觉的局限性。
5.1.4 计算机视觉的应用及面临的挑战
- 智慧医疗领域的应用
- 公共安全领域的应用
- 无人机与自动驾驶领域的应用
- 工业领域的应用
5.1.5 其他领域的应用
5.1.6 计算机视觉面临的挑战
- 有标注的图像和视频数据较少,机器在模拟人类智能进行认知或感知的过程中,需要大量有标注的图像或视频数据指导机器学习其中的一般模式。
- 计算机视觉技术的精度有待提高,如在物体检测任务中,当前最高的检测正确率为 66%,只能在对正确率要求不是很高的场景下应用。
- 计算机视觉技术的处理速度有待提高,图像和视频信息需要借助高维度的数据进行表示,这是让机器看懂图像或视频的基础,对机器的计算能力和算法的效率要求很高。
5.2 图像分类
5.2.1 图像分类简介
图像分类是根据不同类别的目标在图像信息中所反映的不同特征,将它们区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或其中的每个像素或区域划分为若干个类别中的某一种,以代替人的视觉判断。
图像分类的任务就是输入一张图像,正确输出该图像所属的类别。 图像分类就是寻找一个函数关系,这个函数关系能够将这些像素的数值映射为一个具体的类别(类别可以用某个数值表示)。
图像分类的核心任务是分析一张输入的图像并得到一个给图像分类的标签,标签来自预定义的可能类别集。
5.2.2 图像分类算法
1. 传统图像分类算法
完整建立图像识别模型一般包括底层特征提取、特征编码、空间约束、分类器分类等几个阶段。
2. 基于深度学习的图像分类算法
基于深度学习的图像分类算法的原理是输入一个元素为像素值的数组,并给它分配一个分类标签。
输入是包含 N 张图像的集合,每张图像的标签是 K 种分类标签中的一种。这个集合称为训练集。
学习即让分类器使用训练集来学习每个类的特征,也叫作训练分类器。
评价即让分类器来预测它未曾见过的图像的分类标签,对分类器预测的标签和图像真正的分类标签进行对比,并以此来评价分类器的质量。分类器预测的分类标签和图像真正的分类标签一致的情况越多,分类器的质量越好。
3. 常用的 3 类深度学习模型
- VGG 模型
- GoogLeNet 模型
- 残差网络模型
5.3 目标检测
5.3.1 目标检测简介
目标检测需要定位出图像目标的位置和相应的类别。由于各类物体有不同的外观、形状、姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的 问题。
目标检测的任务是在图像中找出所有感兴趣的目标(物体),并确定它们的位置和大小,是计算机视觉领域的核心问题之一。
目标检测需要解决目标可能出现在图像的任何位置、目标有不同的大小以及目标可能有不同的形状这 3 个核心问题。
5.3.2 目标检测框架模型
深度学习是具有更多隐藏层数的神经网络,它可以学习到机器学习等算法不能学习到的更加深层次的数据特征,能够更加抽象并且准确地表达数据。因此,基于深度学习的各类算法被广泛地应用于目标检测中。
- R-CNN R-CNN:采用的是选择性搜索(Selective Search)算法,使用聚类的方法对图像进行分组, 得到多个候选框的层次组。
- SPP-NET:SPP-NET 是在 R-CNN 的基础上提出的,由于 R-CNN 只能接收固定大小的输入图像, 若对图像进行裁剪以符合要求,则会导致图像信息不完整;若对原始图像进行比例缩放, 则会导致图像发生形变。
- Fast R-CNN
- Faster R-CNN
- Mask R-CNN
- YOLO
- YOLO v2
- SSD
5.4 图像分割
5.4.1 图像分割简介
图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,也是图像处理中最困难的问题之一。
图像分割指利用图像的灰度、颜色、纹理、形状等特征,把图像分成若干个互不重叠的区域,并使这些特征在同一区域内呈现相似性,在不同的区域之间存在明显的差异性。此后,可以将分割的图像中具有独特性质的区域提取出来用于不同的研究。简单地说,图像分割就是在一幅图像中,把目标从背景中分离出来。对于灰度图像来说,区域内部的像素一般具有灰度相似性,而在区域的边界上一般具有灰度不连续性。
5.4.2 图像分割算法
1. 基于阈值的图像分割算法
这种算法具有易于操作、功能稳定、计算简单高效等优点。其基本原理是根据图像的整体或部分信息选择阈值,依据灰度级别划分图像。
2. 基于边缘检测的图像分割算法
这种算法的基本原理是通过检测边界来把图像分割成不同的部分。在一张图像中,不同区域的边缘通常是灰度值剧烈变化的地方,这种算法就是根据灰度突变来进行图像分割的。
其按照执行顺序的差异可分为两种,即串行边缘分割法和并行边缘分割法。其重点是如何权衡检测时的抗噪性能和精度。若提高检测精度,则噪声引起的伪边缘会导致过分割;然而,若提高抗噪性能,则会使得轮廓处的结果精度不高。
3. 基于区域的图像分割算法
这种算法的基本原理是连通含有相似特点的像素点,最终组合成分割结果。其主要利用图像局部空间信息,能够很好地避免其他算法图像分割空间小的缺陷。
4. 基于神经网络的图像分割算法
这种算法的基本原理是以样本图像数据来训练多层感知机,得到决策函数,进而用获得的决策函数对图像像素进行分类,得到分割的结果。
六、自然语言处理
6.1 自然语言处理简介
6.1.1 自然语言处理的定义
语言是人类智慧的结晶,自然语言处理(Natural Language Processing,NLP)是指利用计算机对自然语言的形、音、义等信息进行处理,它是计算机科学领域和人工智能领域的一个重要的研究方向。
自然语言处理的具体表现形式包括机器翻译、文本摘要、文本分类、文本校对、信息抽取、 语音合成、语音识别等。
6.1.2 自然语言处理的发展历程
6.1.3 自然语言处理的研究方向
- 文字识别:借助计算机系统自动识别印刷体或者手写体文字,将其转换为可供计算机处理的 电子文本。对于普通的文字识别系统,主要研究字符的图像识别;而对于高性能的文字识 别系统,往往需要同时研究语言理解技术。
- 语音识别(自动语音识别):目标是将人类语音中的词汇内容转换为计算机可读的输入。 语音识别技术的应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听 写数据录入等。
- 机器翻译
- 自动文摘
- 句法分析
- 文本分类
- 信息检索
- 信息获取
- 信息过滤
- 自然语言生成
- 中文自动分词
- 语音合成
- 问答系统
6.1.4 自然语言处理的一般工作原理
1. 语料预处理
- 语料清洗,即保留有用的数据,删除噪声数据,常见的清洗方式有人工去重、对齐、删除、标注等。
- 分词,即将文本分成词语,如通过基于规则的、基于统计的分词方法进行分词。
- 词性标注,即给词语标上词类标签,如名词、动词、形容词等。常用的词性标注方法有基于规则的、基于统计的算法,如最大熵词性标注、HMM 词性标注等。
- 去停用词,即去掉对文本特征没有任何贡献作用的字词,如标点符号、语气词、助词等。
2. 特征工程
3. 模型训练
4. 指标评价
6.2 自然语言处理的组成
- 自然语言理解
- 自然语言生成
6.3 自然语言理解
6.3.1 自然语言理解的层次
- 从微观上讲,自然语言理解是指从自然语言到机器内部的映射;
- 从宏观上看,自然语言是指机器能够执行人类所期望的某些语言功能。
自然语言理解中至少有 3 个主要问题:
- 计算机需要具备大程序量的人类知识,语言动作描述的是复杂世界中的关系,这些 关系的知识必须是理解系统的一部分;
- 语言是基于模式的,音素构成单词,单词组成短语和句子,音素、单词和句子的顺 序不是随机的,没有对这些元素的规范使用,就不可能达成交流;
- 语言动作是主体的产物,主体或者是人,或者是计算机,主体处在个体层面和社会 层面的复杂环境中,语言动作都是有其目的的。
自然语言的理解和分析是一个层次化的过程:
- 语音分析
- 词法分析
- 句法分析
- 语义分析
- 语用分析
6.3.2 词法分析
词法分析是理解单词的基础,其主要目的是从句子中切分出单词,找出词汇的各个词素,从中获得单词的语言学信息并确定单词的词义。
6.3.3 句法分析
句法是语言在长期发展过程中形成的、全体成员必须共同遵守的规则。
句法分析(语法解析)是对句子和短语的结构进行分析,找出词、短语等的相互关系及各自在句子中的作用等,并以一种层次结构加以表达。层次结构可以反映从属关系、直接成分关系,也可以反映语法功能关系。
6.3.4 语义分析
句法分析完成后(≠ 计算机已经理解了该语句),还需要对语义进行解释。语义分析的任务是把分析得到的句法成分与应用领域中的目标表示相关联,从而确定语言所表达的真正含义或概念。
6.4 信息检索
- 信息检索简介
- 信息检索的发展历程
- 信息检索的特点
- 信息检索的基本原理
- 信息检索的类型
- 信息检索的应用
6.5 机器翻译
- 机器翻译的基本模式
- 统计机器翻译
- 机器翻译的应用
6.6 情感分析
- 情感分析概述
- 情感分析的定义
- 情感分析的任务
- 情感分析的应用
- 情感分析面临的困难与挑战
6.7 语音识别
1. 语音识别的定义
2. 语音识别的发展历程
3. 语音识别的基本原理
4. 语音识别的应用
6.8 自然语言处理面临的问题和展望
6.8.1 自然语言处理面临的问题
- 缺乏有效的知识表示和利用手段
- 缺乏未知语言现象的处理能力
- 模型缺乏解释性和举一反三的能力
- 缺乏交互学习和自主进化的能力
- 单一模态信息处理的局限性
6.8.2 自然语言处理的展望
- 与神经科学密切结合,探索人脑理解语言的神经基础,构建更加精准、可解释、可计算的语义表征和计算方法。
- 构建高质量的基础资源和技术平台。
- 打通不同模态信息处理的壁垒,构建多模态信息融合的处理方法和模型。
七、知识图谱
7.1 知识图谱简介
7.1.1 知识图谱的定义
知识图谱(Knowledge Graph)是一种揭示实体之间关系的语义网络。2012 年 5 月 17 日, 谷歌正式提出了知识图谱的概念,其初衷是优化搜索引擎返回的结果,增强用户搜索质量及体验。
知识图谱以结构化的形式描述客观世界中的概念、实体及其关系,将互联网的信息表达成更接近人类认知世界的形式,提供了一种更好地组织、管理和理解互联网海量信息的能力。
知识图谱的架构包括知识图谱自身的逻辑结构,以及构建知识图谱所采用的技术(体系)架构。
7.1.2 知识图谱的发展历史
7.1.3. 知识图谱的类型
1. 事实知识
在描述实体的特定属性或者关系。
2. 概念知识
概念知识分为两类:
- 实体与概念之间的类属关系。
- 子概念与父概念之间的子类关系:一个概念可能有子概念也可能有父概念,这使得全体概念构成层级体系。概念之间的层级关系是本体定义中最重要的部分,是构建知识图谱的第一步模式设计的重要内容。
3. 词汇知识
词汇知识主要包括实体与词汇之间的关系(实体的命名、称谓、英文名等)以及词汇之间的关系(同义关系、反义关系、缩略词关系、上下位词关系等)。
4. 常识知识
常识是人类通过身体与世界交互而积累的经验与知识,是人们在交流时无须言明就能理解的知识。
常识知识的获取是构建知识图谱时的一大难点。常识的表征与定义、常识的获取与理解等问题一直都是人工智能发展的瓶颈问题。
7.1.4 知识图谱的重要性
1. 知识图谱是人工智能的重要基石
2. 知识图谱推动智能应用
3. 知识图谱是强人工智能发展的核心驱动力之一
尽管人工智能依靠机器学习和深度学习取得了快速进展,但是由于严重依赖人类的监督以及大量的标注数据,仍属于弱人工智能范畴,离强人工智能具有较大差距。
强人工智能的实现需要机器掌握大量的常识性知识,将信息中的知识或者数据加以关联, 同时以人类的思维模式和知识结构来进行语言理解、视觉场景解析和决策分析。
知识图谱技术是由弱人工智能发展到强人工智能的必要条件,对于实现强人工智能有着重要的意义。
7.2 知识表示和知识建模
1. 知识表示
知识表示学习主要是面向知识图谱中的实体和关系进行表示学习,使用建模方法将实体和向量表示在低维稠密向量空间中,并进行计算和推理。
知识表示方法主要分为基于符号的知识表示方法与基于表示学习的知识表示方法。
2. 知识建模
目前,知识建模的实际操作过程可分为手工建模方式和半自动建模方式。
- 手工建模方式:适用于容量小、质量要求高的知识图谱,但是无法满足大规模的知识构建,是一个耗时、昂贵、 需要专业知识的任务。
- 半自动建模方式:将自然语言处理与手工方式结合,适用于规模大且语 义复杂的知识图谱。
7.3 知识抽取
知识抽取指从不同来源、不同结构的数据中进行知识提取,形成知识的过程。以下是知识抽取示意图。
7.3.1 实体抽取
实体抽取(命名实体识别(Named Entity Recognition,NER)),指从原始数据中自动识别出命名实体。由于实体是知识图谱中最基础的知识要素,关系和属性都与实体息息相关, 因此实体的抽取质量直接影响了图谱中知识的质量。
实体抽取的方法主要有基于规则与词典的方法、基于机器学习的方法以及面向开放域的方法。
- 基于规则与词典的方法主要利用用户手工制定的实体规则和词典,通过匹配的方式在信息源中标记出实体;
- 基于机器学习的方法主要利用统计机器学习的方式对原始数据进行训练,利用训练完成的模型进行实体的识别;
- 面向开放域的方法则主要对海量的 Web 数据中的实体进行分类与聚类。
7.3.2 关系抽取
关系抽取的目标是抽取语料中命名实体的语义关系。实体抽取技术会在原始的语料上标记一些命名实体。为了形成知识结构,还需要从中抽取命名实体间的关联信息,从而利用这些信息将离散的命名实体连接起来,这就是关系抽取技术。
7.3.3 属性抽取
实体的属性可以使实体对象更加丰满。属性抽取的目的是从多种来源的数据中抽取目标实体的属性内容。实体的属性可以看作连接实体与属性值的关系,因此,在实际应用中,一些学者将属性抽取问题转换为关系抽取问题。
7.4 知识存储
7.4.1 知识存储概述
知识存储是针对知识图谱的知识表示形式设计底层存储方式,完成各类知识的存储,以支持对大规模数据的有效管理和计算。
知识存储的对象包括基本属性知识、关联知识、事件知识、时序知识和资源类知识等。知识存储方式的质量直接影响了知识图谱中知识查询、知识计算及知识更新的效率。
7.4.2 知识存储方式
7.4.3 知识存储工具
- 关系数据库
- 图数据库
7.5 知识融合
7.5.1 知识融合概述
知识融合即合并两个知识图谱(本体),基本的问题是研究将来自多个来源的关于同一个实体或概念的描述信息融合起来的方法。
7.5.2 知识融合过程
7.6 知识推理
7.6.1 知识图谱的表示
7.6.2 并行知识推理
基于符号的知识图谱推理一般是应用推理规则到知识图谱上,通过触发规则的前件来推导出新的实体关系,这里的推理规则可能是知识表示语言所有的,也可能是人工设定或者通过机器学习技术获取的。基于符号的推理虽然有能够提高推理效率的各种优化方法,但是还是跟不上数据增长的速度,特别是在数据规模大到目前基于内存的服务器无法处理的情况下。为了应对这一挑战,研究人员开始对描述逻辑和 RDFS 的推理进行并行推进以提升推理的效率和可扩展性,并且取得了很多成果。
并行推理工作所借助的并行技术分为单机环境下的多核、多处理器技术(多线程、GPU 技术等)和多机环境下基于网络通信的分布式技术(MapReduce 计算框架、Peer-To-Peer 网络框架等)两大类技术。
7.6.3 实体关系知识推理
实体关系知识推理的目的是通过统计方法或者神经网络方法,学习知识图谱中实体之间的关系。
- 基于表示学习的方法:将知识图谱中的实体与关系统一映射至低维连续向量空间,以此来刻画它们的潜在语义特征。通过比较、匹配实体与关系的分布式表示,可以得到知识图谱中潜在成立的实体间的关系。此类方法灵活自由,通常具有较高的计算效率,但可解释性较差,对于困难的推理问题往往精度不足。
- 基于图特征的方法:利用从知识图谱中观察到的图特征来预测一条可能存在的边,代表性工作包括归纳逻辑程序设计、关联规则挖掘、路径排序算法等。此类方法在推理的同时能从知识图谱中自动挖掘推理规则,具备明确的推理机理。然而,图特征的提取效率较低,对于超大规模的知识图谱更是如此。提高效率是基于图特征的方法亟待突破的壁垒。
7.6.4 模式归纳知识推理
模式归纳知识推理是从知识图谱中学习本体的模式层信息或丰富已有本体,包括对概念层次、属性层次、不相交公理、属性的值域与定义域和属性或概念的约束等公理的学习。
7.7 知识图谱的应用
7.7.1 语义搜索
语义搜索是指搜索引擎的工作不再拘泥于用户所输入请求语句的字面本身,而是透过现象看本质,准确地捕捉到用户的真实意图,并依此来进行搜索,从而更准确地向用户返回最符合其需求的搜索结果。
7.7.2 问答系统
问答系统需要理解查询的语义信息,将输入的自然语言转换为知识库中的实体和关系的映射。