AI Wiki
你可能不认为程序员是艺术家,但编程是一个非常有创意的职业。这是基于逻辑的创造力。 - 约翰罗梅罗
[TOC]
DL是ML的一个子集,ML是AI的一个子集,AI它是任何智能的计算机程序的总称。
AI
- 计算机科学的一个分支,负责计算机中智能行为的模拟。
- 机器模仿智能人类行为的能力。
- 能够执行通常需要人类智能的任务的计算机系统,例如视觉感知,语音识别,决策制定和语言之间的翻译。
ML
- A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. –Tom Mitchell
DL
- 深度是一个技术术语,它指的是神经网络中的层数。浅网络有一个所谓的隐藏层,深层网络有多个。一个“让计算机无需明确编程就能学习的研究领域” - 同时补充说它往往会带来更高的准确性,需要更多的硬件或者训练时间,并且在涉及非结构化数据(例如像素斑点或文本)的机器感知任务上表现异常。
精度,精度,召回和F1
模型训练完成还需要评估模型的性能。
混乱矩阵
假设您的数据中有100个示例,并且您已将每个示例提供给模型并接收分类。预测与实际分类可以在称为混淆矩阵的表格中绘制。
否定(预测) 正面(预测) 负面(实际) 98 0 正面(实际) 1 1
为了更好地解释表格,您还可以从真实的积极因素,假阴性等方面看到它。
否定(预测) 正面(预测) 负面(实际) True Negative False Postive 正面(实际) False Negative True Postive
准确度
被正确分类/样本总数
精确度
被正确分为正例/预测为正例的数目(包含FP误分为正例)
召回率
被正确分为正例/样本中实际正例的数目(包含FN误分为反例)
F1值
精确度和召回率的调和平均数,具有偏向较小值的特性
主动学习(Active Learning)
Active Learning是半监督学习。当有大量数据存在,却都没有标签的时候,学习系统通过用户对这些数据进行标注,然后交给系统学习训练。(羊毛出在猪身上)
自动驾驶汽车(Autonomous Vehicle/Self-driving Car)
用于汽车检测的实时视频对象检测是自动驾驶系统中的关键部件。自主车辆依赖于将不同类型的传感器联合在一起以产生诸如转向或施加推力的输出。然而,当毫秒处于危险状态以避免冲突时,难以逐帧地检测视频流中的对象。
物体检测性质
- 对象分类涉及获取关于任何检测到的对象的类别的信息,即图像包含汽车而不是图像不包含汽车。
- 除了图像分类,我们还需要指定图像中对象的位置。这是通过定义边界框来完成的。边界框通常由中心(bx,by),矩形高度(bh)和矩形宽度(bw)表示。
反向传播(Backpropagation)
-
short for "backward propagation of errors," is an algorithm for supervised learning of artificial neural networks using gradient descent.
-
神经元将输入数据的信号通过其参数向前传播到决策时刻,然后通过网络反馈有关错误的信息,以便它可以一步一步地改变参数。
-
神经网络的参数与网络产生的误差有关,当参数发生变化时,可能也就是误差。我们使用称为梯度下降的优化算法更改参数,这对于查找函数的最小值非常有用。我们正在寻求最小化误差,这也称为损失函数或目标函数。
-
神经网络有很多参数,所以我们真正测量的是每个参数对误差总变化的贡献的偏导数。
-
反向传播建立了神经网络误差与网络最后一层参数之间的关系; 然后它在微积分链规则的应用中建立神经网络的最后一层的参数与倒数第二层的参数之间的关系
词袋模型和TF-IDF
- Bag of Words(BoW)是一种计算单词出现在文档中的频数的算法
- 术语 - 频率 - 逆文档频率(TF-IDF)是通过其包含的词来判断文章主题的另一种方式。使用TF-IDF,单词被赋予权重 - TF-IDF测量相关性,而不是频率。也就是说,在整个数据集中,字数被替换为TF-IDF分数。
- 首先,TF-IDF测量单词出现在给定文档中的次数(即术语频率)。但是因为诸如“和”或“the”之类的词语在所有文件中经常出现,所以这些词语会被系统地打折扣。那是逆文档频率部分。单词出现的文档越多,单词作为信号的价值就越小。这意味着只留下频繁且独特的单词作为标记。
- 然后将这些标记词作为特征馈送到神经网络,以便确定包含它们的文档所涵盖的主题。
- BoW与Word2vec不同 : Word2vec每个单词产生一个向量,而BoW产生一个数字(一个wordcount)。Word2vec非常适合挖掘文档和识别内容和内容子集。它的向量代表每个单词的上下文,其中ngrams是其中的一部分。BoW适用于整体分类文档。
卷积神经网络(CNN)
-
- 卷积神经网络是深度人工神经网络,主要用于对图像进行分类(例如,命名他们看到的内容),通过相似性(照片搜索)对它们进行聚类,并在场景中执行对象识别。
- 卷积网(ConvNets或CNN)在图像识别中的功效是世界已经唤醒深度学习功效的主要原因之一。它们推动了计算机视觉(CV)的重大进步,它在自动驾驶汽车,机器人,无人机,安全,医疗诊断以及视障人士的治疗方面具有明显的应用。
-
- 卷积神经网络将张量作为输入和处理图像,张量是具有附加维度的数字矩阵。
- 标量只是一个数字,例如7; 向量是一个数字列表(例如
[7,8,9]
); 矩阵是一个矩形的数字网格,占用多个行和列,就像电子表格一样。几何上,如果标量是零维点,则向量是一维线,矩阵是二维平面,矩阵堆是三维立方体,当这些矩阵的每个元素都有一堆附加到它的要素图,您输入第四个维度。 - 张量是由嵌套在数组中的数组形成的,并且嵌套可以无限地进行,占任意数量的维度远远大于我们在空间上可视化的维度。
-
-
数学角度,卷积是衡量两个函数在一个经过另一个时重叠多少的积分。将卷积视为通过将两个函数相乘来混合两个函数的方法。
-
图片来源:Mathworld。“绿色曲线显示蓝色和红色曲线的卷积作为t的函数,由垂直绿线表示的位置。灰色区域表示产品g(tau)f(t-tau)是t的函数,因此它作为t的函数的面积恰好是卷积。“*
通过图像分析,静态的基础函数(相当于固定钟形曲线)是被分析的输入图像,第二个移动函数被称为滤波器,因为它拾取图像中的信号或特征。
在单个图像上传递了许多滤波器,每个滤波器都会拾取不同的信号。
在卷积层之后,输入通过非线性变换(例如tanh或整流线性单位),将输入值压缩到介于-1和1之间的范围内。
-
-
卷积网络将图像视为体积; 即三维物体,而不是仅通过宽度和高度来测量的平坦画布。这是因为数字彩色图像具有红 - 蓝 - 绿(RGB)编码,将这三种颜色混合以产生人类感知的色谱。卷积网络将这些图像摄取为三个独立的颜色层,一个堆叠在另一个之上。其深度是三层深,RGB中的每个字母一个。那些深度层被称为通道。
卷积网不是一次只关注一个像素,而是采用方形的像素块并将它们传递给滤波器。该滤波器也是比图像本身小的方阵,并且与贴片的大小相等。它也被称为内核
想象一下两个矩阵。一个是30x30,另一个是3x3。也就是说,滤波器覆盖一个图像通道的表面区域的百分之一。
使用此图像通道的补丁来获取滤镜的点积。如果两个矩阵在相同位置具有高值,则点积的输出将为高。
从底层图像的左上角开始画面,然后我们一步一步地将滤镜移过图像,直到它到达右上角。步长的大小称为步幅。您可以一次将过滤器移动到右侧一列,也可以选择更大的步骤。
在每个步骤中,您将获取另一个点积,并将该点积的结果放在称为激活贴图的第三个矩阵中。激活映射的宽度或列数等于过滤器遍历底层图像所用的步数。由于更大的步幅导致更少的步骤,因此大步幅将产生更小的激活图。这很重要,因为卷积网络在每一层处理和产生的矩阵的大小与它们的计算成本以及它们需要多长时间训练成正比。更大的步幅意味着更少的时间和计算。
卷积网络旨在以各种方式降低图像的维度。过滤步幅Stride是降低维度的一种方法。另一种方式是通过下采样。
-
卷积网络中的下一层有三个名称:最大池化,下采样和子采样。
激活图被馈送到下采样层,并且像卷积一样,该方法一次应用一个补丁。在这种情况下,max pooling只从图像的一个补丁中获取最大值,将其放置在与其他补丁的最大值相邻的新矩阵中,并丢弃激活映射中包含的其余信息。
仅保留图像上与每个特征(最大值)显示最强相关性的位置,并且这些最大值组合以形成较低维空间。
关于较小值的大量信息在此步骤中丢失,这刺激了对替代方法的研究。但是,下采样具有优势,正是因为信息丢失,减少了所需的存储和处理量。
-
从左到右,您会看到:
- 扫描功能的实际输入图像。浅色矩形是经过它的过滤器。
- 激活地图堆叠在一起,每个过滤器使用一个过滤器。较大的矩形是一个要下采样的补丁。
- 激活图通过下采样浓缩。
- 通过在第一个下采样堆栈上传递过滤器创建的一组新激活映射。
- 第二次下采样,浓缩第二组激活映射。
- 一个完全连接的层,用于将输出分类为每个节点一个标签。
深度学习数据
- 成功应用深度学习的最低要求取决于您尝试解决的问题。与静态的基准数据集(如MNIST和CIFAR-10)相比,实际数据是混乱的,变化的和不断发展的,这就是深度学习解决方案必须处理的数据。
- 深度学习可以应用于任何数据类型。您使用的数据类型以及您收集的数据将取决于您尝试解决的问题。
- 声音(语音识别)
- 文字(分类评论)
- 图像(计算机视觉)
- 时间序列(传感器数据,网络活动)
- 视频(运动检测)
- 深度学习几乎可以解决任何机器感知问题,包括对数据进行分类,对数据进行聚类或对其进行预测。
- 分类:此图像代表一匹马; 这封电子邮件看起来像垃 这笔交易是欺诈性的
- 聚类:这两种声音是相似的。该文档可能是用户X正在寻找的内容
- 预测:鉴于他们的网络日志活动,客户A看起来将停止使用您的服务
- 深度学习最适用于非结构化数据,如图像,视频,声音或文本。图像只是一个像素的斑点,一条消息只是一团文字。-
- 深度学习的常见用例包括情感分析,图像分类,预测分析,推荐系统,异常检测等。
决策树
-
决策树是一系列节点,是一个方向图,它从一个节点开始在基础上,并扩展到表示树可以分类的类别的许多叶节点。
-
另一种思考决策树的方法是作为流程图,流程从根节点开始,最后以叶子做出决策。
-
它是一个决策支持工具。它使用树状图来显示由一系列基于特征的分割产生的预测。
-
-
以下是描述决策树的一些有用术语:
- 根节点:根节点位于树的开头。它代表了正在分析的整个人口。从根节点,根据各种特征划分总体,并且在根节点下的每个决策节点处依次划分这些子组。
- 拆分:这是将节点划分为两个或更多个子节点的过程。
- 决策节点:当子节点分裂为更多子节点时,它是一个决策节点。
- 叶节点或终端节点:未拆分的节点称为叶节点或终端节点。
- 修剪:删除父节点的子节点称为修剪。通过修剪分裂和缩小树种。
- 分支或子树:决策树的子部分称为分支或子树,就像图的一部分称为子图一样。
- 父节点和子节点:这些是相对术语。属于另一个节点的任何节点都是子节点或子节点,并且在这些子节点之前的任何节点都称为父节点。
- 缺点
- 过度拟合:过度拟合是决策树的常见缺陷。设置模型参数的约束(深度限制)并通过修剪使模型更简单是规范决策树并提高其推广到测试集的能力的两种方法。
- 不能预测连续变量:虽然决策树可以摄取连续的数字输入,但它们不是预测这些值的实用方法,因为决策树预测必须分成不连续的类别,这会导致在将模型应用于连续值时丢失信息。
- 大量特征工程:决策树解释力的另一面是它需要大量的特征工程。在处理具有潜在因素的非结构化数据或数据时,这使得决策树不是最佳的。在这方面,神经网络明显优越。
深度自动编码器
https://skymind.ai/wiki/deep-autoencoder
去噪自动编码器
https://skymind.ai/wiki/denoising-autoencoder
深度置信网络
https://skymind.ai/wiki/deep-belief-network
特征向量,特征值,PCA,协方差和熵
https://skymind.ai/wiki/eigenvector
欺诈和异常检测
企业深度学习的主要用途之一是欺诈和异常检测。
- 异常检测是指任何一组不寻常活动的广义术语,包括网络安全漏洞,特殊交易甚至机械故障。任何数字化或数字测量的行为,包括机器性能,都会受到异常检测。
- 欺诈检测是异常检测的一个很好的例子,原因很多,首先是它的成本非常高。据估计,欺诈性交易每年使美国银行损失高达110亿美元,因此这是许多人想要解决的问题。
强化学习
https://skymind.ai/wiki/deep-reinforcement-learning
当我们不能确定什么是真的时,我们应该按照最可能的方式行事。 - 笛卡尔
-
强化学习是指面向目标的算法,它学习如何在多个步骤中获得复杂的目标(目标)或沿特定维度最大化; 例如,通过许多动作最大化游戏中赢得的积分。
-
强化学习解决了将即时行动与其产生的延迟回报联系起来的难题。与人类一样,强化学习算法有时需要等待一段时间才能看到决策的成果。它们在延迟的返回环境中运行,在这种情况下很难理解哪个行为导致了多个时间步骤的结果。
-
使用代理,环境,状态,行动和奖励的概念可以理解强化学习,我们将在下面解释所有这些。大写字母倾向于表示事物的集合,而小写字母表示该事物的特定实例; 例如
A
,所有可能的操作,a
而是集合中包含的特定操作。- 代理人(Agent)、行动(Action)、回馈(Reward)、环境(Environment)、状态(State )、策略(Policy (π))、Value (V)、Q-value or action-value (Q)
生成对抗网络(GAN)
https://skymind.ai/wiki/generative-adversarial-network-gan
生成对抗网络(GAN)是由两个网络组成的深度神经网络体系结构,将一个网络与另一个网络相互对立(因此称为“对抗性”)。
生成与判别算法
判别算法试图对输入数据进行分类,判别算法将特征映射到标签;
考虑生成算法的一种方法是做相反的事情。他们尝试预测给定某个标签的特征,而不是预测给定某些特征的标签。
例如,给定电子邮件中的所有单词,判别算法可以预测消息是否为
spam
或not_spam
。生成算法试图回答的问题是:假设这封电子邮件是垃圾邮件,这些功能的可能性有多大?生成模型关心“你如何得到x,”它们允许你捕捉p(x|y)
,x
给定y
概率或给出一个类的特征的概率。(也就是说,生成算法也可以用作分类器。恰好它们可以做的不仅仅是对输入数据进行分类。)
- 判别模型学习了类之间的界限
- 生成模型模拟各个类的分布
GAN如何工作
机器学习工作流程
https://skymind.ai/wiki/machine-learning-workflow
- 生产中的机器学习分五个阶段进行。
- 机器学习工作流程的阶段
- 用例概念和表达
- 可行性研究和探索性分析
- 模型设计,培训和离线评估
- 模型部署,在线评估和监控
- 模型维护,诊断和再培训