注 本文非原创 仅翻译原文 IBM Watson Developer Certification Study Guide
1.1.定义认知系统的主要特征
- 认知系统的理解,推理和学习
- 必须理解结构化数据 和 非结构化的数据
- 必须通过优先考虑建议和形成假设的能力来推理
- 通过反复训练,在构建更智能的模式时反复学习。
- 认知系统是为了增加人类的知识而不是取代它。
- 认知系统采用机器学习技术
- 有监督学习和无监督学习
- 认知系统使用自然语言处理
1.2 解释神经网络
https://github.com/cazala/synaptic/wiki/Neural-Networks-101
- 神经网络模拟大脑中神经元的通讯方式。
- 神经网络是生物神经结构的模型。
神经元是神经网络的基本单位。在自然界中,神经元有许多树突(输入)、细胞核(处理器)和轴突(输出)。当神经元激活时,它累积所有传入的输入,如果它越过某个阈值,它就会通过轴突发出信号。某种程度上.神经元的重要之处在于它们可以学习。
人工神经元像这样:
那么,神经网络是如何学习的呢?神经网络的训练学习。所使用的算法称为反向传播算法。在给网络一个输入后,它会产生一个输出,下一步是教给网络什么应该是正确的输入输出(理想的输出)。网络将采取这个理想的输出,并开始调整权重,以产生更准确的输出下一次,从输出层开始,并向后直到到达输入层。因此,下一次我们向网络显示相同的输入时,它将使输出接近理想的输出,我们将它训练成输出。这个过程在许多迭代中重复,直到我们考虑理想输出和网络的一个输出之间的误差足够小。
1.2.1.1 解释突触和神经元的作用
- 一个神经元通过突触连接从其他神经元接收信号。
1.2.1.2 理解重量和偏差
- 每个神经元的输入是有权重的(那个特定连接的权重)。
- 当一个人工神经元激活时,如果计算它的状态,通过增加所有输入的输入乘以它相应的连接权值。
- 但是神经元总是有一个额外的输入,这个偏置总是1,并且有自己的连接权值。这可以确保其他所有的输入都要在神经元的激活。
1.2.1.3 列出神经网络的各种方法
1.2.1.4 前后传播的解释
- 前向传播
前馈神经网络是一种人工神经网络,其中各单元之间的连接不构成一个循环。因此,它不同于递归神经网络。在这个网络中,信息只在一个方向,向前,从输入节点,通过隐藏节点(如果有的话)移动到输出节点。网络中没有循环。 -
反向传播
反向传播,简称“反向传播错误”,是一种常用的方法训练人工神经网络结合的优化方法,如梯度下降。它计算了损失函数相对于网络中所有权重的梯度,使梯度被引入到优化方法中,进而利用它来更新权重,以尽量减少损失函数。
BP需要知道,每个输入值以计算损失函数的梯度–因此通常被认为是一种有监督的学习方法所需的输出;然而,它也用在一些无监督网络如autoencoders。它是delta规则在多层前馈网络中的推广,通过使用链规则迭代计算每个层的梯度成为可能。反向传播要求人工神经元(或“节点”)所使用的激活函数是可微的。
但是反向传播是如何工作的呢?该算法采用梯度下降法进行权值调整。假设我们将某个权值与网络输出中的错误之间的关系画出了一个图形:
该算法计算梯度,也称为瞬时斜率(图像中的箭头),即权值的实际值,并将其移动到将导致较低误差的方向(图像中的红点)。这个过程重复在网络中的每一个权重。
任何有监督学习算法的目标是找到一个函数,最好将一组输入映射到其正确输出。一个例子是分类任务,输入是动物的图像,正确的输出是动物的名字。开发反向传播算法的目的和动机是找到一种训练多层神经网络的方法,这样它就可以学习适当的内部表示,使其能够学习任意输入到输出的映射。
1.2.1.5 梯度下降
暂无说明
1.3 解释机器学习技术
(监督,无监督,强化学习方法)。
1.3.1 解释机器学习和认知系统之间的联系
参照:计算、认知与认识的未来
机器学习是人工智能这一大学科的一个分支,它涉及计算机应用程序或系统的设计和构建,这些计算机应用程序或系统能够根据其数据输入和/或输出来学习。机器学习的学科也包含了其他的数据分析学科,从预测分析和数据挖掘到模式识别。以及
各种具体的算法被用于此目的,经常应用于分类,可以根据输入类型来选择算法。
许多产品和服务,从我们每天使用的搜索引擎广告应用到社交媒体网站的面部识别再到“智能”汽车,手机和电子设备都开始展示人工智能方面的能力。大部分由专门构建的、专注于自身业务的应用程序组成。他们使用了认知计算的核心能力。一些使用文本挖掘,还有一些使用图像识别。 ** 大多数只限于他们所构想的应用程序。**
相比之下,认知系统将下面五种核心能力结合到了一起:
- 他们创造了更深层次的人类参与。
- 他们扩大和提升专业知识。
- 他们用认知来注入产品和服务。
- 它们使认知过程和操作得以实现。
- 它们加强探索和发现。
** 大规模的机器学习是认知系统随着训练和使用而不断改进的过程 **
认知计算不单纯是计算机科学的一门学科。它是多种学术领域的结合,从硬件架构到算法策略再到过程设计与行业知识。
这些功能需要专门的基础结构,它利用高性能计算、专门的硬件架构和甚至新的计算范式。但是,这些技术必须协同开发,硬件、软件、云平台和应用程序都是为了支持认知解决方案而共同构建的。
1.3.2 描述一些主要的机器学习概念:
1.3.2.1 有监督学习
我们给出一个数据集,并且已知正确的输出应该是什么样子,认为输入和输出之间是有关系的。
1.3.2.1.1 分类
在分类问题中,我们尝试在离散型输出中预测结果。换句话说,我们正试图将输入变量映射到对应的类别中。
1.3.2.1.2 回归与预测
在回归问题中,我们试图用连续型输出来预测结果,这意味着我们试图把输入变量映射到某个连续函数中。
1.3.2.1.3 半监督学习
半监督学习(Semi-Supervised Learning,SSL)是模式识别和机器学习领域研究的重点问题,是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。
半监督学习
1.3.2.2 无监督学习
无监督学习是一种机器学习算法,用于从包含输入数据的数据集中推断出不带标记的响应。输入数据没有标记,也没有已知结果。
现实生活中常常会有这样的问题:缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
1.3.2.2.1 人工神经网络
人工神经网络(ANN)是一种信息处理范式,它受到生物神经系统(如大脑)的启发。
1.3.2.2.2 关联规则学习
关联规则学习是一种基于规则的机器学习方法,用于发现大型数据库中变量之间的某种关系。它的目的是利用一些措施来识别数据库中的强规则。
1.3.2.2.3 层次聚类
层次聚类是一种建立聚类层次结构的聚类分析方法。层次聚类的策略一般分为两种类型:
凝聚:这是一个“自下而上”的方法:每个观察自己的群开始,并对集群合并为一个动作的层次。
分裂:这是一种“自上而下”的方法:所有的观察都从一个集群开始,分裂是递归地执行的。
1.3.2.2.4 聚类
聚类分析或聚类是以一种方式将一组对象分组的任务,即同一组中的对象(称为簇)与其他组(簇)中的对象相比更相似。
1.3.2.2.5 孤立点检测
局部离群因子是基于局部密度的概念,局部性由k近邻给出,其距离被用来估计密度。通过比较一个物体的局部密度到它的邻居的局部密度,可以识别出相似密度的区域,以及比它们的邻居密度大得多的点。这些点被认为是孤立点。
对这些孤立点(异常数据)的挖掘,就是孤立点检测
通过孤立点检测发现和利用在孤立点中的有用信息具有非常重要的意义.目前孤立点检测已经开始应用于信用卡欺诈、网络入侵检测以及金融申请和交易欺诈等领域,近年来孤立点检测已经成为数据挖掘研究领域中的研究热点
1.3.2.3 增强学习
这个很具有普遍性的问题应用于学习控制移动机器人,在工厂中学习最优操作工序以及学习棋类对弈等。当agent在其环境中做出每个动作时,施教者会提供奖励或惩罚信息,以表示结果状态的正确与否。例如,在训练agent进行棋类对弈时,施教者可在游戏胜利时给出正回报,而在游戏失败时给出负回报,其他时候为零回报。agent的任务就是从这个非直接的,有延迟的回报中学习,以便后续的动作产生最大的累积效应。
增强学习
1.4 定义一套通用的认知系统用例集
1.4.1 客服呼叫中心
- 代理协助:问答
- 问题解决:提供自然语言帮助系统,因此调用代理可以快速检索客户问题的答案。
- 所使用的服务:会话、自然语言答案检索、关键词提取和实体提取。
- 自动化:客户/技术支持自动分发
- 顾客:出发时刻
- 问题的解决:
(a)检测问题的主题,并分发到相应的部门处理它。
(b)客房服务、维修、客房管理
(c)根据顾客情绪升级问题
(d)通过发现新的客户票据和已解决的客户之间的自然语言相似性,用已经解决类似问题的答案解决新问题 - 所使用的服务:自然语言(文本)分类、关键词提取、实体提取和情感/声调分析
1.4.2 医疗行业
- 专家顾问
- 例子:沃森发现顾问
- 问题解决:用自然语言提供相关的医学建议和见解,以便医生能更准确地诊断病人。
- 使用的服务:会话+自然语言应答检索,实体提取
1.4.3 社交媒体
- 数据的洞察力
- 问题解决:从社交媒体中获得有益的见解。
- 使用的服务:关键字、实体和情感/音调分析
1.5 定义精确度、召回率和准确度
参照 --> Precision and recall
1.6 解释分离训练、验证和测试数据的重要性
通常要执行监督学习,需要两种类型的数据集:
- 训练集 用以创建模型(这里的每个数据行都有预期的输出)
- 测试集 用以验证模型
在执行机器学习时,执行以下操作:
- 培训阶段:您提供数据,并通过将输入与预期输出配对来训练模型。
- 测试阶段:为了评估你的模型(这取决于你的数据,你的预测值,输入尺寸等)来估计模型的性质(平均误差的数值预测,为分类器,对IR模型等的查全率和查准率分类错误)
- 应用阶段:现在将新开发的模型应用到真实数据中并得到结果。由于在这种类型的数据中通常没有任何参考值(否则,您为什么需要您的模型?)您只能使用验证阶段的结果推测模型输出的质量。
验证阶段通常分为两部分:
- 在第一部分中,您只需查看您的模型,然后使用验证数据选择性最好的方法。(=validation)
- 然后估计所选方法的精确度。(=test)
如果你不需要从几个竞争方法中选择一个合适的模型,你可以重新分配你的设置,你基本上只有训练集和测试集,不执行你的训练模型的验证。我个人分割他们的比例为70/30。
1.7 测量服务的精度
ML模型的目标是通过学习可以很好地概括看不见的数据的模式,而不是仅仅记住训练过程中显示的数据。一旦你有了一个模型,重要的是用你从未使用过的数据来检查你的模型是否表现良好。要做到这一点,您可以使用该模型来预测评估数据集上的答案(保存数据),然后将预测的目标与实际的答案(真相)进行比较。
在ML中使用了一些度量来度量模型的预测精度。精度度量的选择取决于ML任务。重要的是回顾这些指标来确定你的模型是否运行良好。
1.8 使用WKS执行领域适应学习
WKS是一个基于云端的应用(SaaS)。利用WKS,开发者和行业专家可以合作创建自定义的注释组件模型。使用这个模型,可以从非结构化文本中提取和识别行为和关系。
WKS:
- 直观性:不写一行代码便可以训练watson识别自然语言,从中提取信息。
- 协作性:开发者和行业专家一起将行业知识注入到认知应用中
使用WKS可以创建一个机器学习的模型,用来理解自然语言的含义以及与你所在行业的关系。
想让Watson成为一个行业或者领域的专家就必须训练它,你可以使用WKS来训练Watson。WKS提供了非常简单易用的工具来标注识别自然语言,并创建一个自定义的机器学习模型来理解和识别这个领域的自然语言。通过反复的训练来提高精确度,最终使得可以利用这个模型来识别新的文档。
下图是WKS的使用流程
1.9 意图或分类
通过WDC可以实现自然语言的分类服务。聚类或分类是依据于输入数据的相似性或者彼此间的距离。我们也称之为意图或分类。
1.10 解释标定好的真实数据与语料库的差别
- 标定好的真实数据可用于监督和非监督的机器学习方法,但使用不同的值和格式来展现。例如,在一个典型的有监督的学习系统中,标定好的真实数据由输入(问题)和输出(答案)组成。通过逻辑回归和迭代训练,从而提高系统的精度。
- 在无监督学习的方法中,如NLC,标定好的真实数据由逗号分隔的CSV或JSON文件组成。内容包括上百个样品话语以及数十个对于这些话语的意图分类。
- 语料库是指经科学取样和加工的大规模电子文本库。借助计算机分析工具,研究者可开展相关的语言理论及应用研究。
** [TODO]该小节并未说清两者间的差别 **
1.11 定义用户问题与用户意图之间的区别
想正确的回答问题,我们首先要明白问题背后的意图。以便于我们分类问题和采取行动。
意图是将问题映射到已知的分类。有时候我们需要从问题的上下文中提取意图。
用户意图的常见实例:
- 安排老王下星期二下午开会
- 我需要更改密码
- 告诉我最近的加油站在哪里