目录
基础知识
多元智能理论
多元智能理论(theory of multiple intelligences,简称MI理论)由美国教育学家和心理学家加德纳(H.Gardner)博士提出,是一种全新的人类智能结构的理论。它认为人类思维和认识的方式是多元的。
多元智能理论对智力的定义和认识与传统的智力观是不同的。加德纳认为,智力是在某种社会和文化环境的价值标准下,个体用以解决自己遇到的真正难题或生产及创造出某种产品所需要的能力。智力不是一种能力而是一组能力,智力不是以整合的方式存在而是以相互独立的方式存在的。多元智能中的各种智能内涵是:
1.言语语言智能:指人对语言的掌握和灵活运用的能力,表现为用词语思考,用语言和词语的多种不同方式来表达复杂意义;
2.数理逻辑智能:指人对逻辑结果关系的理解推理思维表达能力,突出特征为用逻辑方法解决问题,有对数字和抽象模式的理解力,认识解决问题的应用推理;
3.视觉空间智能:指人对色彩、形状空间位置的正确感受和表达能力突出特征为对视觉世界有准确的感知,产生思维图像,有三维空间的思维能力,能辨别感知空间物体之间的联系;
4.音乐韵律智能:指人的感受、辨别、记忆、表达音乐的能力,突出特征为对环境中的非言语声音,包括韵律和曲调、节奏、音高音质的敏感;
5.身体运动智能:指人的身体的协调、平衡能力和运动的力量、速度、灵活性等,突出特征为利用身体交流和解决问题,熟练地进行物体操作以及需要良好动作技能的活动;
6.人际沟通智能:指对他人的表情、说话、手势动作的敏感程度以及对此作出有效反应的能力,表现为个人能觉察体验他人的情绪情感并作出适当的反应;
7.自我认识智能:指个体认识、洞察和反省自身的能力,突出特征为对自己的感觉和情绪敏感,了解自己的优缺点,用自己的知识来引导决策,设定目标;
8.自然观察智能:指的是观察自然的各种形态对物体进行辨认和分类、能够洞察自然或人造系统的能力。
加德纳认为,实践证明每一种智能在人类认识和改造世界的过程中都发挥着巨大的作用,具有同等的重要性。多元不是一种固定的数字概念,而是开放性的概念。个体到底有多少种智力是可以商榷和改变的。他所提出的8种智力的观点,在某种程度上还只是一个理论框架或构想,随着心理学生理学等相关学科的进一步发展,多元智能的种类将可能得到发展。
人工智能:AI,Artificial Intelligence
人工智能体:AI agent
符号主义人工智能:symbolic AI
只要程序员精心编写足够多的明确规则来处理知识,就可以实现与人类水平相当的人工智能。
专家系统:expert system
机器学习:machine learning
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多个领域。机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
深度学习:deep learning
深度学习是通过建立人工神经网络,用层次化机制来表示客观世界,并解释所获取的知识,例如图像、声音和文本。
深度学习的主要方式是监督学习、无监督学习、半监督学习和强化学习。
监督学习:supervised learning
监督学习是利用一组已知类别的样本来调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。
无监督学习:没有目标的情况下寻找输入数据的变换,其目的在于数据可视化、数据压缩、数据去噪或更好地理解数据中的相关性。
半监督学习是监督学习与无监督学习相结合的一种学习方法。半监督学习同时使用未标记数据和已标记数据来进行模式识别工作。
强化学习又称再励学习、评价学习或增强学习,用于描述和解决智能体在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
假设空间:hypothesis space
深度:depth
分层表示学习:layered representations learning
层级表示学习:hierarchical representations learning
深度可微模型:deep differentiable model
链式几何变换:chained geometric transform
浅层学习:shallow learning
达到人类水平的通用智能:human-level general intelligence
掩模:mask
降维:dimensionality reduction
聚类:clustering
自编码器:autoencoder
时序监督学习:temporally supervised learning
泛化:generalize
同质性:homogeneous,所有特征的取值都在大致相同的范围内
特征工程:feature engineering
Python 生成器:Python generator
稀疏度:sparsity
类激活图:CAM,class activation map
前馈网络:feedforward network
梯度消失问题:vanishing gradient problem
梯度爆炸:Gradient Explode
梯度截断:Gradient Clipping
类图模型:graph-like model
图:graph
计算图:Computational Graph
多模态:multimodal
有向无环图:directed acyclic graph
无环:acyclic
模型集成:model ensembling
神经风格迁移:neural stype transfer
联结主义:connectionism
Epoch:迭代期,训练完一次训练数据包含的所有迷你批次为一个迭代期
语言模型(Language Model,LM)
潜在空间:latent space
统计机器翻译:Statistical Machine Translation,SMT
Alignment:对齐
热力图:Heat Map
推断(Inference)
就是深度学习把从训练中学习到的能力应用到工作中去。
HOG( Histogram of OrientedGradients) - 方向梯度直方图
HOD(Histogram of Oriented Depths) - 深度方向直方图
后端引擎:backend engine
Neural Architecture Search(NAS):神经网络架构搜索
人工智能和视觉、语音、自然语言
智能语音处理技术包括身份识别、语种识别、情感识别、语音分离、语音合成等。
生物特征识别技术包括步态识别、声纹识别、虹膜识别等。
目前的自然语言处理技术未完全达到人类智能。
自然语言处理不一定以经过标注过的数据作为输入。
自然语言处理不一定以有监督学习的方式实现。
自然语言处理可以通过无监督学习的方式实现。
机器学习中的判别模型和生成模型
假设我们有训练数据(X,Y),X是属性集合,Y是类别标记。这时来了一个新的样本x,我们想要预测它的类别y。
我们最终的目的是求得最大的条件概率P(y|x)作为新样本的分类。
判别模型
根据训练数据得到分类函数和分界面,比如说根据SVM模型得到一个分界面,然后直接计算条件概率P(y|x),我们将最大的P(y|x)作为新样本的分类。判别式模型是对条件概率建模,学习不同类别之间的最优边界,无法反映训练数据本身的特性,能力有限,其只能告诉我们分类的类别。
生成模型
一般会对每一个类建立一个模型,有多少个类别,就建立多少个模型。比如说类别标签有{猫,狗,猪},那首先根据猫的特征学习出一个猫的模型,再根据狗的特征学习出狗的模型,之后分别计算新样本x跟三个类别的联合概率p(x,y),然后根据贝叶斯公式:
分别计算P(y|x),选择三类中最大的P(y|x)作为样本的分类。
1.3 两个模型的小结
不管是生成式模型还是判别式模型,它们最终的判断依据都是条件概率P(y|x),但是生成式模型先计算了联合概率p(x,y),再由贝叶斯公式计算得到条件概率。因此,生成式模型可以体现更多数据本身的分布信息,其普适性更广。
数据及其处理
见以下链接
https://blog.csdn.net/ytomc/article/details/110260560
https://blog.csdn.net/ytomc/article/details/110304516
目标问题
见以下链接
https://blog.csdn.net/ytomc/article/details/110229511
机器学习框架
见以下链接
https://blog.csdn.net/ytomc/article/details/109993009
神经网络
见以下链接
https://blog.csdn.net/ytomc/article/details/110306210
其他算法
动态规划:Dynamic Programming
因子分析:factor analysis
混合因子分析:Mixture of Factor Analyzers (MoFA)
期望最大化(Expectation-Maximization, EM)算法
混合高斯:Mixture of Gaussians (MoG)
Bitonic Sort:双调排序,比较顺序与数据无关,适合并行计算。
概率建模:probabilistic modeling,如朴素贝叶斯算法
logistic回归:logistic regression,logreg,一种分类算法
核方法:kernel method,一组分类算法,如支持向量机
支持向量机:SVM,support vector machine
核技巧:kernel trick
核函数:kernel function
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数。
决策树:decision tree
随机森林:random forest
梯度提升机:gradient boosting machine
长短期记忆:LSTM,long short-term memory
CRC:(Cyclic Redundancy Check)校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。
GRU:gated recurrent unit,门控循环单元
贪婪采样:greedy sampling
随机采样:stochastic sampling
尺度不变特征变换:Scale-invariant feature transform,SIFT
最近邻插值:Nearest Neighbor Interpolation
双线性插值:Bilinear Interpolation
指数学习率衰减:Exponential Decay
余弦退火:Cosine Annealling
策略梯度算法:Policy Gradient
伽马校正:Gamma Correction
直方图均衡:Histogram Equalization
降采样:Down-sampling
拉普拉斯滤波器:Laplacian Filter
高斯-拉普拉斯滤波器:Laplacian of Gaussian,LoG
高斯过滤器的差值:Difference of Gaussian,DoG
SSD:Single Shot MultiBox Detector,单阶段的目标检测算法
困难负样本挖掘:Hard Negative Mining
非极大抑制算法:Non-Maximum Supression,NMS
沿时间反向传播算法:Backpropogation Through Time,BPTT
自回归:Autoregression
教师强制:Teacher Forcing
计划采样:Scheduled Sampling
Seq2Seq:Sequence To Sequence
贪心解码:Greedy Decoding
波束搜索:Beam Search
协同过滤:Collaborative Filtering
因子分解机:Factorization Machines,FM
矩阵分解:Matrix Factorization
奇异值分解:Singular Value Decomposition,SVD
μ-率变换:μ-law transformation
轮询调度算法:Round Robin
随机游走:随机游走(random walk)也称随机漫步,随机行走等是指基于过去的表现,无法预测将来的发展步骤和方向。核心概念是指任何无规则行走者所带的守恒量都各自对应着一个扩散运输定律 ,接近于布朗运动,是布朗运动理想的数学状态,现阶段主要应用于互联网链接分析及金融股票市场中。
布朗运动(Brownian motion): 布朗运动是将看起来连成一片的液体,在高倍显微镜下看其实是由许许多多分子组成的。液体分子不停地做无规则的运动,不断地随机撞击悬浮微粒。当悬浮的微粒足够小的时候,由于受到的来自各个方向的液体分子的撞击作用是不平衡的。在某一瞬间,微粒在另一个方向受到的撞击作用超强的时候,致使微粒又向其它方向运动,这样,就引起了微粒的无规则的运动就是布朗运动。(布朗运动指的是分子迸出的微粒的随机运动,而不是分子的随机运动。) 即布朗运动代表了一种随机涨落现象。普遍的观点仍认为,股票市场是随机波动的,随机波动是股票市场最根本的特性,是股票市场的常态。(随机现象的数学定义是:在个别试验中其结果呈现出不确定性;在大量重复试验中其结果又具有统计规律性的现象。)而布朗运动假设是现代资本市场理论的核心假设。
Knuth-Shuffle 算法
假设有这样一个数组 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
,我们使用 Knuth-Shuffle 算法将数据打乱。基本流程是这样的,从最后一个数开始,往前遍历,每一次,从当前数和第 1 个数之间,随机选择一个数,与当前数字进行交换(这里的随机选择就直接使用程序语言中的 Random 随机一个索引即可)。
例如上面的数组,第一次循环,当前数字为 10,我们从 1~10 之间,随机选择一个数,与 10 交换,这样第 9 个索引位就算洗完了,接下来就是第 8 个索引位,也就是数字为 9,我们从第 1 个索引位与第 8 个索引位之间,选择一个数,第 9 交换,这样第 8 个索引位也就洗完了...。这个算法之所以公平,是因为保证了每一个元素出现在每一个位置上的概率,都是一样的。
逻辑回归
Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。
Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。
考虑二分类问题,给定数据集
考虑到取值是连续的,因此它不能拟合离散变量。可以考虑用它来拟合条件概率p(Y=1|x),因为概率的取值也是连续的。但是对于w≠0(若等于零向量则没有什么求解的价值),取值为R,不符合概率取值为 0 到 1,因此考虑采用广义线性模型。
最理想的是单位阶跃函数:
但是这个阶跃函数不可微,常用的替代函数:
当的取值趋近于,函数值趋近于1。当的取值趋近于-,函数值趋近于0。当的取值为0时,函数值为0.5。
逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。
我们需要明确 Sigmoid 函数到底起了什么作用:
- 线性回归是在实数域范围内进行预测,而分类范围则需要在 [0,1],逻辑回归减少了预测范围;
- 线性回归在实数域上敏感度一致,而逻辑回归在 0 附近敏感,在远离 0 点位置不敏感,这个的好处就是模型更加关注分类边界,可以增加模型的鲁棒性。
树相关的算法
见以下链接:
https://blog.csdn.net/ytomc/article/details/113410847?spm=1001.2014.3001.5502
注意力
注意力机制:Attention Mechanism
Bahdanau注意力机制:又称加性注意力,Additive Attention
Luong注意力机制:又称乘性注意力,Multiplicative Attention
自注意力机制:Self-Attention Mechanism
多头注意力:Multihead Attention
掩码
mask(掩码、掩膜)是深度学习中的常见操作。简单而言,其相当于在原始张量上盖上一层掩膜,从而屏蔽或选择一些特定元素,因此常用于构建张量的过滤器(见下图)。
Mask的作用:
处理非定长序列
在NLP中,文本一般是不定长的,所以在进行 batch训练之前,要先进行长度的统一,过长的句子可以通过truncating 截断到固定的长度,过短的句子可以通过 padding 增加到固定的长度,但是 padding 对应的字符只是为了统一长度,并没有实际的价值,因此希望在之后的计算中屏蔽它们,这时候就需要 Mask。
例子:
RNN中的Mask
Attention中Mask
防止标签泄露
在语言模型中,常常需要从上一个词预测下一个词,但如果要在LM中应用 self attention 或者是同时使用上下文的信息,要想不泄露要预测的标签信息,就需要 mask 来“遮盖”它。不同的mask方式,也对应了一篇篇的paper,这里选取典型的几个。
例子:
Transformer中的Mask
BERT中的Mask
XLNet中的Mask
强化学习
见以下链接:
https://blog.csdn.net/ytomc/article/details/113332111?spm=1001.2014.3001.5502
量化算法
对称量化算法
对称算法就是指将待量化数据的绝对值的最大值映射到新数据范围内的最大值。
非对称量化算法
非对称算法是指将待量化数据的最大值和最小值映射到新数据范围内的最大值最小值。
稀疏矩阵存储
Compressed Sparse Row (CSR, CRS or Yale format)
CSR是比较标准的一种,也需要三类数据来表达:数值,列号,以及行偏移。CSR不是三元组,而是整体的编码方式。数值和列号与COO一致,表示一个元素以及其列号,行偏移表示某一行的第一个元素在values里面的起始偏移位置。如上图中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后补上矩阵总的元素个数,本例中是9。
语音识别
见以下链接:
https://blog.csdn.net/ytomc/article/details/113411604?spm=1001.2014.3001.5502
其他
分布式训练
机器分为Parameter Server 和 woker 两类
Parameter server 负责整合梯度,更新参数
woker负责计算,训练网络
流程,共分为4步。
Task Scheduler: 加载数据,并将数据分发给不同的workers
Workers:
计算梯度:加载训练数据,从servers拉取最新的参数
将梯度push到servers:从servers拉取最新的参数
Servers: 聚合梯度,更新参数
GPT族谱
K折交叉验证
见以下链接:
https://blog.csdn.net/ytomc/article/details/119709655
机器学习中的random_state参数
见以下链接:
https://blog.csdn.net/ytomc/article/details/113437926?spm=1001.2014.3001.5502