发布于: 2023-8-4最后更新: 2024-5-11字数 00 分钟

type
status
date
slug
summary
tags
category
icon
password
  • 了解人工智能发展历程
  • 了解机器学习定义及其应用场景
  • 说明机器学习算法监督学习与无监督学习的区别
  • 说明监督学习的分类、回归特点
  • 说明机器学习的开发流程

1 人工智能整体概述

1.1 人工智能应用场景

notion image

1.2 人工智能小案例

  • 案例一
  • 案例二
  • 案例三
 

2 人工智能发展历程

👉
学习目标:
  • 了解图灵测试
  • 了解人工智能发展历程

2.1 图灵测试

notion image
测试者与被测试者(1个人和1台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问
多次测试(一般5min内)如果有超过30%的测试者不能确定被测试者是人还是机器,那么这台机器就通过了测试,并被认为有人类智能
 
  • 达特茅斯会议——人工智能的起点
    • 1956年8月,在美国汉诺斯小镇宁静的达特茅斯学院中,
      约翰·麦卡锡(John McCarthy)
      马文·闵斯基(Marvin Minsky,人工智能与认知学专家)
      克劳德·香农(Claude Shannon,信息论的创始人)
      艾伦·纽厄尔(Allen Newell,计算机科学家)
      赫伯特·西蒙(Herbert Simon,诺贝尔经济学奖得主)等科学家正聚在一起,讨论着一个完全不食人间烟火的主题:
      用机器来模仿人类学习以及其他方面的智能。
      会议足足开了两个月的时间,虽然大家没有达成普遍的共识,但是却为会议讨论的内容起了一个名字:
      人工智能
      因此,1956年也就成为了人工智能元年。

2.2 发展历程

  • 第一个黄金时期(1956—20世纪70年代)
    • 美国国防部赞助MIT222万美金,之后每年300万美金;
      1963年斯坦福第一个AI实验室成立
  • 第一个低谷时期(20世纪70年代至80年代初)
    • James Lighthill:《Artificial Intelligence:A general survey》
      专家系统:“知识期”
  • 第二个黄金时期(1956—20世纪70年代)
    • 日本的第五代计算机项目拨款8.5亿美金;
      1986,误差反向传播(BP)算法诞生;
  • 第二个低谷时期(20世纪80年代至90年代初)
    • IBM与Apple普通台式机性能超越“智能计算机”
      1991,日本的第五代计算机宣告失败
notion image

3 人工智能主要分支

👉
学习目标:
  • 了解人工智能、机器学习和深度学习的区别
  • 了解人工智能的主要分支

3.1 人工智能、机器学习和深度学习

notion image
人工智能和机器学习,深度学习的关系:
  • 机器学习是人工智能的一个实现途径
  • 深度学习是机器学习的一个方法(神经网络)发展而来

3.2 主要分支介绍

通讯、感知与行动是现代人工智能的三个关键能力,根据三个技术领域进行介绍:
分支一:计算机视觉
计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成图像处理图像提取图像的三维推理。物体检测和人脸识别是其比较成功的研究领域。
当前阶段:
计算机视觉现已有很多应用,这表明了这类技术的成就,也让我们将其归入到应用阶段。随着深度学习的发展,机器甚至能在特定的案例中实现超越人类的表现。但是,这项技术离社会影响阶段还有一定距离,那要等到机器能在所有场景中都达到人类的同等水平才行(感知其环境的所有相关方面)。
发展历史:
notion image
notion image
分支二:语音识别
语音识别是指识别语音并将其转换成对应文本的技术。相反的任务(文本转语音/TTS)也是这一领域内一个类似的研究主题。
当前阶段:
语音识别已经处于应用阶段很长时间了。最近几年,随着大数据和深度学习技术的发展,语音识别进展颇丰,现在已经非常接近社会影响阶段了。
语音识别领域仍然面临着声纹识别和「鸡尾酒会效应」等一些特殊情况的难题。
现代语音识别系统严重依赖于云,在离线时可能就无法取得理想的工作效果。
发展历史:
notion image
分支三:文本挖掘/分类
文本挖掘主要是文本分类,该技术可用于理解、组织和分类结构化或非结构化文本文档。其涵盖的主要任务有句法分析情绪分析垃圾信息检测
当前阶段:
我们将这项技术归类到应用阶段,因为现在有很多应用都已经集成了基于文本挖掘的情绪分析或垃圾信息检测技术。文本挖掘技术也在智能投顾的开发中有所应用,并且提升了用户体验。
文本挖掘和分类领域的一个瓶颈出现在歧义和有偏差的数据上。
发展历史:
notion image
分支四:机器翻译
机器翻译(MT)是利用机器的力量自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)神经机器翻译(NMT)
当前阶段:
机器翻译是一个见证了大量发展历程的应用领域。该领域最近由于神经机器翻译而取得了非常显著的进展,但仍然没有全面达到专业译者的水平;但是,我们相信在大数据、云计算和深度学习技术的帮助下,机器翻译很快就将进入社会影响阶段。
在某些情况下,俚语和行话等内容的翻译会比较困难(受限词表问题)。
专业领域的机器翻译(比如医疗领域)表现通常不好。
发展历史:
notion image
分支五:机器人
机器人学(Robotics)研究的是机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理。
机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。
当前阶段:
自上世纪「Robot」一词诞生以来,人们已经为工业制造业设计了很多机器人。工业机器人是增长最快的应用领域,它们在 20 世纪 80 年代将这一领域带入了应用阶段。在安川电机、Fanuc、ABB、库卡等公司的努力下,我们认为进入 21 世纪之后,机器人领域就已经进入了社会影响阶段,此时各种工业机器人已经主宰了装配生产线。此外,软体机器人在很多领域也有广泛的应用,比如在医疗行业协助手术或在金融行业自动执行承销过程。
但是,法律法规和「机器人威胁论」可能会妨碍机器人领域的发展。还有设计和制造机器人需要相对较高的投资。
发展历史
notion image

3.3 人工智能发展的必备三要素

  • 数据
  • 算法
  • (计)算力
逐层、分布、并行算法能力提升
GPU、FPGA、TPU能力大幅提升

1.3.4 拓展:GPU和CPU对比

CPU —— IO密集型
GPU —— 计算密集型
notion image
Cache, local memory: CPU > GPU
Threads(线程数): GPU > CPU
SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU
  • 1,GPU 加速计算可以将应用程序计算密集部分的工作负载转移到 GPU,同时仍由 CPU 运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快.
  • 2,CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构.
    • notion image
  • 3,CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分.
notion image
  • 提问:什么类型的程序适合在GPU上运行?
(1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。
(2)易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。
Google cloud链接(拓展):
AI芯片发展史链接(拓展):

4 机器学习工作流程

👉
学习目标:
  • 了解机器学习的定义
  • 了解机器学习的工作原理

4.1 机器学习定义

机器学习是从数据自动分析获得模型,并利用模型对未知数据进行预测。
notion image

4.2 机器学习工作流程

notion image

4.2.1 获取数据

notion image
notion image
notion image
  • 数据简介
    • 在数据集中一般:
    • 一行数据我们称为一个样本
    • 一列数据我们成为一个特征
    • 有些数据有目标值(标签值),有些数据没有目标值(如上表中,电影类型就是这个数据集的目标值)
  • 数据类型构成:
    • 数据类型一:特征值+目标值(目标值是连续的和离散的)
    • 数据类型二:只有特征值,没有目标值
  • 数据分割:
    • 机器学习一般的数据集会划分为两个部分:
      • 训练数据:用于训练,构建模型
      • 测试数据:在模型检验时使用,用于评估模型是否有效
    • 划分比例:
      • 训练集:70% 80% 75%
      • 测试集:30% 20% 25%
常用数据集:
网址
特点
大数据竞赛平台;80万科学家;真实数据;数据量巨大
收录360个数据集;覆盖科学、生活、经济等领域等领域;数据量几十万
python友好
 

4.2.2 数据的预处理

根据数据类型的不同,数据预处理的方式和内容也不尽相同,这里简单介绍几种较常用的方式。
  1. 归一化
    1. 归一化指将不同变化范围内的值映射到一个固定的范围里,例如,常使用min-max等方法将数值归一化到[0,1]的区间内(有些时候也会归一化到[-1,1]的区间内)。归一化的作用包括无量纲化一、加快模型的收敛速度,以及避免小数值的特征被忽略等。
  1. 标准化
    1. 标准化指在不改变数据原分布的前提下,将数据按比例缩放,使之落入一个限定的区间,让数据之间具有可比性。需要注意的是,归一化和标准化各有其适用的情况,例如在涉及距离度量或者数据符合正态分布的时候,应该使用标准化而不是归一化。常用的标准化方法有z- score等。
  1. 离散化
    1. 离散化指把连续的数值型数据进行分段,可采用相等步长或相等频率等方法对落在每一一个分段内的数值型数据赋予-一个新的统一的符号或数值。离散化是为了适应模型的需要,有助于消除异常数据,提高算法的效率。
  1. 二值化
    1. 二值化指将数值型数据转换为0和1两个值,例如通过设定一个阈值,当特征的值大于该阈值时转换为1,当特征的值小于或等于该阈值时转换为0。二值化的目的在于简化数据,有些时候还可以消除数据(例如图像数据)中的“杂音”。
  1. 哑编码
    1. 哑编码,又称为独热编码(One-Hot Encoding),作用是对特征进行量化。例如某个特征有三个类别:“大”“中”和“小”,要将这一特征用于模型中,必须将其数值化,很容易想到直接给它们编号为“1”“2”和“3”,但这种方式引入了额外的关系(例如数值间的大小关系),“误导”模型的优化方向。一个更好的方式就是使用哑编码,例如“大”对应编码“100”,“中”对应编码“010”,小”对应编码“001”。

4.2.3 特征工程

特征工程(Feature Engineering)是使用专业背景知识和技巧处理数据使得特征能在机器学习算法上发挥更好的作用的过程
📌
意义:会影响机器学习的效果
机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ”
注:业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
 
特征工程包含:
  • 特征提取:将任意数据(如文本或图像)转换为可用于机器学习的数字特征
    • notion image
  • 特征预处理:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
    • notion image
  • 特征降维:指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
    • notion image
 

4.2.4 机器学习

选择合适的算法对模型进行训练(参见第5节)

4.2.5 模型评估

对训练好的模型进行评估(参见第6节)

4.3 完整机器学习项目的流程(拓展阅读)

  1. 抽象成数学问题
    1. 明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
      这里的抽象成数学问题,指的明确我们可以获得什么样的数据,抽象出的问题,是一个分类还是回归或者是聚类的问题。
  1. 获取数据
    1. 数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
      数据要有代表性,否则必然会过拟合。
      而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数量级的差距。
      而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。
  1. 特征预处理与特征选择
    1. 良好的数据要能够提取出良好的特征才能真正发挥作用。
      特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
      筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
  1. 训练模型与调优
    1. 直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
  1. 模型诊断
    1. 如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
      过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
      误差分析 也是机器学习至关重要的步骤。通过观察误差样本全面分析产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
      诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
  1. 模型融合
    1. 一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
      工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
  1. 上线运行
    1. 这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
      这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。

5 机器学习

👉
学习目标
  • 了解机器学习常用算法的分类
 
根据数据集组成不同,可以把机器学习分为:
  • 监督学习
  • 无监督学习
  • 半监督学习
  • 强化学习

5.1 监督学习

定义:输入数据是由输入特征值和目标值所组成
  • 函数的输出可以是一个连续的值(回归)
  • 或是输出是有限个离散值(分类)

5.1.1 回归问题

例如:预测房价,根据样本集拟合出一条连续曲线。
notion image

5.1.2 分类问题

例如:根据肿瘤特征判断良性还是恶性,得到的是结果是“良性”或者“恶性”,是离散的
notion image

5.2 无监督学习

定义:输入数据是由输入特征值组成。
输入数据没有被标记,也没有确定结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。
notion image
有监督学习、无监督学习对比:
notion image
 

5.3 半监督学习

即训练集同时包含有标记样本数据和未标记样本数据
举例:
  • 监督学习训练方式:
    • notion image
  • 半监督学习训练方式
    • notion image

5.4 强化学习

实质是,make decisions问题,即自动进行决策,并且可以做连续决策。
动态过程,上一步数据的输出是下一步数据的输入。
举例:
小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。
小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。
notion image
强化学习主要包含四个元素:agent,environment,action,reward;
强化学习的目标是获取最多的累积奖励
 
监督学习和强化学习的对比:
监督学习
强化学习
反馈映射
输入→输出,告诉算法什么样的输入对应什么样的输出
输入→输出,给机器反馈,用来判断行为是好是坏
反馈时间
做了比较坏的选择回立即反馈给算法
结果反馈有延时
输入特征
输入独立分布
面对的输入总在变化,算法行为会影响下一次决策的输入
行为模式
不考虑行为间的平衡,只是开发exploitation
一个agent可以在探索和开发之间做权衡,选择最大回报
notion image

5.5 机器学习算法分类

  • 监督学习(预测)
    • 定义:输入数据是由输入特征和目标值所组成,函数的输出可以是一个连续的值或事有限个离散值
    • in:有标签 out:有反馈
    • 目的:预测结果
    • 案例:猫狗分类、房价预测
    • 分类 k-近邻算法、贝叶斯分类、决策树和随机森林、逻辑回归、神经网络
    • 回归 线行回归、岭回归
  • 无监督学习
    • 定义:输入数据是由输入特征值所组成
    • in:无标签 out:无反馈
    • 目的:发现潜在结构
    • 案例:“物以类聚,人以群分”
    • 聚类:k-means,降维
  • 半监督学习:
    • 已知:训练样本数据和带分类的类别
    • 未知:训练样本有无标签均可
    • 应用:训练数据过多时
    • 监督学习效果不能满足需求,因此用来增强效果
  • 强化学习:
    • in:决策流程及激励系统 out:一系列行动
    • 目的:长期利益最大化,回报函数(只会提示你是否在朝着目标方向前进的延迟反应)
    • 案例:学下棋
    • 算法:马尔可夫决策,动态规划

6 模型评估

👉
学习目标:
  • 了解机器学习中模型评估的方法
  • 知道过拟合、欠拟合发生情况

6.1 分类模型评估

评估指标
含义
准确率
预测正确的数占样本总数的比例
精确率
正确预测为正占全部预测为正的比例
召回率
正确预测为正占全部正样本的比例
F1-score
主要用于评估模型的稳健性
AUC指标
主要用于评估样本不均衡的情况

6.2 回归模型评估

notion image
symbol
meaning
a
actual target
p
predicted target
  • 均方根误差(Root Mean Squared Error,RMSE):衡量回归模型误差率的常用公式,然而它仅能比较误差时相同单位的模型
  • 相对平方误差(Relative Squared Error,RSE):RSE可以比较误差时不同单位的模型
  • 平均绝对误差(Mean Absolute Error):MAE与原始数据单位相同,他技能比较误差是相同单位的模型,量级近似与RMSE,但是误差值相对小一些
  • 相对绝对误差(Relative Absolute Error,RAE):RAE可以比较误差是不同单位的模型
  • 决定系数(Coefficient of Determination)
    • 决定系数()回归模型汇总了回归模型结实度,由平方和术语计算而得
    • 描述了回归模型所解释的因变量方差在总方差中比例
      • 很大,及自变量和因变量之间存在线性关系,如果回归是“完美的”,SSE为0,则R^2为1。
      • 很小,及自变量和因变量之间存在线性关系的证据不令人信服,如果回归模型完全失败,SSE为SST,美誉方差可被回归解释,则R^2为0。

6.3 拟合

模型评估用于评价训练好的模型的表现效果,其表现效果可以大致分为两类:过拟合、欠拟合。
在训练过程中,你可能会遇到如下问题:
训练数据训练的很好,误差不大,为什么在测试集上会有问题呢?
当算法在某个数据集当中出现这种情况,可能就出现了拟合问题。
  • 欠拟合
    • notion image
因为机器学习到的天鹅特征太少,导致区分标准太粗糙,不能准确识别出天鹅
  • 过拟合
notion image
机器已经基本能区分天鹅和其他动物了,然后很不巧已有的天鹅图片全是白天鹅,于是机器学习后,会认为天鹅都是白的。黑天鹅就被过滤掉了。
这种情况就是所建立的机器模型或者深度学习模型在训练样本中表现的过于优越,导致在验证数据集以及测试数据集中表现不佳。

7 Azure机器学习模型搭建实验

 

8 深度学习简介

👉
学习目标
  • 了解什么是深度学习

8.1 神经网络简介

notion image
深度学习方法近年来,在会话识别、图像识别和对象侦测等领域表现出了惊人的准确性。
但是,“深度学习”这个词语很古老,它在1986年由Dechter在机器学习领域提出,然后在2000年有Aizenberg等人引入到人工神经网络中。而现在,由于Alex Krizhevsky在2012年使用卷积网络结构赢得了ImageNet比赛之后受到大家的瞩目。
卷积神经网络——神经元
卷积网络之父:Yann LeCun
 
深度学习演示:

8.2 深度学习各层负责内容

  • 1层:负责识别颜色和简单纹理
    • notion image
  • 2层:一些神经元可以识别更加细化的纹理,布纹,刻纹,叶纹等
    • notion image
  • 3层:一些神经元负责感受黑夜里的黄色烛光,高光,萤火,鸡蛋黄色等
    • notion image
  • 4层:一些神经元识别萌狗的脸,宠物形貌,圆柱体事物,七星瓢虫等的存在
    • notion image
  • 5层:一些神经元负责识别花,黑眼圈动物,鸟,键盘,原型屋顶等
    • notion image
 
增加层数:通过更抽象的概念识别物体,器官层,分子层,原子层
增加节点数:增加同一层物质的种类
notion image

机器学习2-环境准备
机器学习2-环境准备
公告
type
status
date
slug
summary
tags
category
icon
password
🎉欢迎体验 ChatGPT Next 🎉