人工智能
介绍许多科学家对人工智能的定义
简言之,人工智能,就是让计算机从数据中学习知识,理解知识,并且像人一样,能够利用这些知识去做些事情,比如搞预测,搞分析,搞回答等等,都是要求可以检验的。学习到这些数据并且会用这些数据进行灵活运用,这些计算机被叫做人工智能。
就是让机器学习我们学习的过程嘛,有学习材料,有改证的方向(无论是按照既定的标准(自定义损失函数)改进,还说自己通过大量的数据(强化学习)来学习、进行决策改进,来作出更好的决策。自我感觉三点是比较重要的:1,数据,2,不断自我完善,3,能够得到好的预测效果
人工只能的三大类(根据智能的程度来分)
弱人工智能、强人工智能、超级人工智能
人工智能在历史发展长河中也被分为三个阶段:
理论推导(人工智能的诞生,1956-1980),但是计算机实现不了,这时的人工智能,其实可以理解成人类引导的一个阶段,计算机还没有能力进行学习;
专家指导学习(人工智能步入产业化,1980-2000),但是计算机能力不强,但是比第一阶段强一点的状态,开始自己慢慢学习了,由专家来引导;
专家继续制定应用更加广泛的模型(对很多行业都有对应的模型)(人工智能迎来爆发,2000-),此时,因为计算机时代的到来,产生的数据更多,且计算机的计算力也能够跟上了,出现了spark, hive这些大数据分析的工具,人工智能开始火了起来;
虽然分为三个阶段,这三个阶段中,存在有两个停滞期,这段时间,机器学习以及深度学习由于一些专家研发出来的算法无法实现,或者说没有足够的数据来进行支撑,均有一段寒冬的过渡期。
源自Datawhale开源教程
机器学习
定义:机器从数据中学习,学到产生决策的能力,并且会通过新的数据,新的尝试,不断更新自己学习模式以及学习方法,以完成更多的任务。
分类:
有监督、无监督、强化学习
有监督:常见的算法:KNN, 感知机、SVM, Naive Bayes, LR, Bagging(randomforest), Boosting(AdaBoost, GBDT, XGBoost, LightGBM, CatBoost)
无监督:PCA, LDA, K-means,
强化学习:机器自主学习内容,进行决策(就我知道的,在推荐系统和自动驾驶领域有着较为广泛的应用)。
特点 | 降维 | 聚类 | 分类 | 回归 | |
---|---|---|---|---|---|
有监督 | 有老师(环境),学生从环境学习,有答案参照;(有特征,有y值(答案)) | 感知机、KNN, Naive Bayes, SVM, LR, Bagging, Boosting | KNN, SVR, LR, Bagging, Boosting(GBDT, XGBoost, LightGBM, CatBoost) | ||
无监督 | 没有老师,学生自学,有标准评价学习效果(有特征,没答案,有评价标准) | PCA, 特征选择, LDA | K-mean, Mean Shift, K-medoids(把均值变成了中位数而已) | ||
强化学习 | 没有老师(环境),学生对问题答案,自己评价(有特征,但是没有y,也没有评价标准(自定义评价标准)) |
起源与发展
大佬:Yoshua Bengio[1]、Geoffrey Hinton[2]、Yann LeCun[3]、
源自[3]
左中右,依次是上面大佬的名字,介绍在参考文献中有,我就不过多赘述。不过也简单介绍一下,第一个是花树(深度学习)作者,对NLP的发展具有突出的贡献;第二个是
接着开始有三个阶段的发展:
分别是第一阶段(1943-1969)、第二阶段(1980-1989)、第三阶段(2006-)
重要研究机构和科学家
研究机构
Machine Leaning at University of Toronto
AI research at facebook
清华大学AI研究院…
科学家
Yoshua Bengio[1]、Geoffrey Hinton[2]、Yann LeCun[3]、Andre NG
前三个科学家的关系:
论资排辈,自然是Hinton>Lecun>Bengio,还记得之前提到的AI鼻祖Hinton门下徒子徒孙遍地,AI界许多大神都和他有着千丝万缕的关系,以下有个简单的人物关系网。
Lecun是Hinton的博士后,当年与美国飞人乔丹同名的学者Micheal Jordan一心想去Hinton门下读博士后却被婉拒,在麻省理工学院时Bengio又是Jordan的得意门生,随后Bengio在贝尔实验室与LeCun成为同事。Hugo Larochelle在Bengio下面读的博士,后成为Hinton的博士后;LeCun的一位博士生MarcAurelio Ranzato,后也成为的Hinton的博士后。不禁感叹,贵圈不大,牛人总是带着牛人走。【3】
我评:牛到家了,向科学家门看齐,orz.
深度学习的定义和主要应用
定义:深度(多层)的网络来学习数据,并且预测数据(分类、回归)
从最开始的多层感知机,到CNN处理图片,到RNN处理时间序列数据,LSTM记忆长期数据,GRU简单参数来记忆长期数据等等。
深度学习分类:有监督学习方法——深度前馈网络、卷积神经网络、循环神经网络等;无监督学习方法——深度信念网、深度玻尔兹曼机,深度自编码器等。
Application:
- NLP
- CV
- 自动驾驶
- 语音识别
- 推荐系统(Recommendation System)
- 视频的解析(推荐)
数学基础
矩阵论
矩阵:二维数组,两个维度相等为方阵,最初来源于多元方程前面的系数。
张量: 矢量(有方向的向量)概念的推广,可以表示矢量、标量、和一些其它张良之间线性关系的多线性函数。其中,标量、矢量、矩阵都是张量的推广,标量是一个数;矢量是带有方向的以为数组,矩阵是二维数组,三位以上一般统称为张量。
矩阵的秩:代表矩阵的极大线性无关组,其中矩阵的行都可以由其中任意极大线性无关组(行)来线性表示,关于列也是一样的。
矩阵秩的性质:
1)矩阵中的某一行,或者某一列加/减一个数,矩阵的秩不变
2)矩阵的行/列乘以或者除以某一个不为0的数,矩阵的秩不变
3)矩阵的某一行/一列的元素,加到矩阵的某一行/列中去,矩阵的秩保持不变
r
a
n
k
(
A
+
k
x
i
)
=
r
a
n
k
(
A
)
rank(A + k x_i) = rank(A)
rank(A+kxi)=rank(A)
4)矩阵的行秩=列秩
5)矩阵转置之后,秩保持不变 r a n k ( A T ) = r a n k ( A ) rank(A^T) = rank(A) rank(AT)=rank(A)
矩阵的逆:
矩阵(方阵)分为可逆矩阵和不可逆矩阵。
可逆矩阵:矩阵的秩等于矩阵的行数/列数,称为非奇异矩阵/可逆矩阵
不可逆矩阵:矩阵的秩小于矩阵的行数/列数,称为奇异矩阵/不可逆矩阵
对于一个方阵A( A ∈ R n ∗ n A \in \mathbb{R}_{n*n} A∈Rn∗n),如果矩阵的行秩都是满秩和(即,矩阵的秩等于矩阵的行数/列数 n n n),那么这个矩阵可逆,用 A − 1 A^{-1} A−1表示,那么有 A A − 1 = A − 1 A = I A A^{-1} = A^{-1}A=I AA−1=A−1A=I.其中 I I I是 n ∗ n n*n n∗n单位阵
广义逆矩阵:
矩阵不是方阵,或者奇异矩阵,不存在逆矩阵,到那时可以计算其广义逆矩阵或者伪逆矩阵
对于矩阵A,如果存在矩阵B使得 A B A = A ABA=A ABA=A,则称 B B B为 A A A的广义逆矩阵。
矩阵分解
ML常见:特征分解(方阵)和奇异值分解(非方阵,即行数m和列数n不等)
特征值和特征向量的定义:不解释。
常用的:矩阵的迹
t
r
(
A
)
=
∑
i
=
1
n
λ
i
,
∣
A
∣
=
∏
i
=
1
n
λ
i
tr(A) = \sum_{i=1}^n \lambda_i,\quad |A| = \prod_{i=1}^n \lambda_i
tr(A)=i=1∑nλi,∣A∣=i=1∏nλi
矩阵分解:设
Σ
\Sigma
Σ是一个对角矩阵,对角元素依次为
λ
1
,
λ
2
,
⋯
,
λ
n
\lambda_1, \lambda_2, \cdots, \lambda_n
λ1,λ2,⋯,λn, 对应的特征向量分别为
u
1
,
u
2
,
⋯
,
u
n
u_1, u_2, \cdots, u_n
u1,u2,⋯,un, 这些特征向量结合得到一个矩阵
U
=
[
u
1
,
u
2
,
⋯
,
u
n
]
U = [u_1, u_2, \cdots, u_n]
U=[u1,u2,⋯,un], 若
∥
u
∥
2
=
1
\|u\|_2=1
∥u∥2=1,则
u
i
u_i
ui是单位特征向量,如果不是单位特征向量,可以通过Schmit正交化变换成单位正交矩阵。变换后得到的向量也是单位特征向量。
奇异值分解:
对于任意矩阵 A m × n A_{m \times n} Am×n, 存在正交矩阵 U m × m U_{m \times m} Um×m和 V n × n V_{n \times n} Vn×n, 使其满足 A = U Σ V T , U T U = V V T = I A=U\Sigma V^T, U^T U = V V^T=I A=UΣVT,UTU=VVT=I, 则称上式为矩阵 A A A的特征分解
概率统计
常见分布
两点分布、伯努利分布(二项分布,多项分布的特例)、几何分布、负二项分布、均匀分布、指数分布(Weibull分布的一个特例)、正态分布
常见的多变量分布:
首先了解(条件概率,联合概率),再了解联合分布、联合概率密度、条件概率分布、条件概率密度。
条件分布的定义:当一件事情A发生,且发生的概率不为0,另外一件事情B发生的概率为条件概率,表示为
P
(
B
∣
A
)
P(B|A)
P(B∣A)。计算为
P
(
B
∣
A
)
=
P
(
A
,
B
)
P
(
A
)
P(B|A) = \cfrac{P(A, B)}{P(A)}
P(B∣A)=P(A)P(A,B)
其中
P
(
A
)
>
0
P(A)>0
P(A)>0. 由此可以推出
P
(
A
,
B
)
=
P
(
A
)
P
(
B
∣
A
)
P(A, B) = P(A) P(B|A)
P(A,B)=P(A)P(B∣A), 将此推广到n个变量
P
(
X
1
,
X
2
,
⋯
,
X
n
)
=
P
(
X
1
∣
X
2
,
⋯
,
X
n
)
P
(
X
2
∣
X
2
,
⋯
,
X
n
)
⋯
P
(
X
n
)
=
P
(
X
n
)
∏
i
=
1
n
−
1
P
(
X
i
∣
X
i
+
1
,
⋯
,
X
n
)
\begin{aligned} P(X_1, X_2, \cdots, X_n) &= P(X_1|X_2, \cdots, X_n) P(X_2|X_2, \cdots, X_n) \cdots P(X_n) \\ &= P(X_n) \prod_{i=1}^{n-1}P(X_i|X_{i+1}, \cdots, X_n) \end{aligned}
P(X1,X2,⋯,Xn)=P(X1∣X2,⋯,Xn)P(X2∣X2,⋯,Xn)⋯P(Xn)=P(Xn)i=1∏n−1P(Xi∣Xi+1,⋯,Xn)
关于贝叶斯的一些概率:
先验概率:在一件事情没有发生之前,基于过往的经验分析得到的概率。
后验概率:在一件事情发证之后,对原来概率的修正,主要是利用全改了公式和条件概率公式来推导得到。
其中,全概率公式为
P
(
A
)
=
∑
i
=
1
n
P
(
A
,
B
i
)
=
∑
i
=
1
n
P
(
A
∣
B
i
)
P
(
B
i
)
\begin{aligned} P(A) &= \sum_{i=1}^n P(A, B_i) \\ &= \sum_{i=1}^n P(A|B_i) P(B_i) \\ \end{aligned}
P(A)=i=1∑nP(A,Bi)=i=1∑nP(A∣Bi)P(Bi)
最典型的就是
P
(
A
)
=
P
(
A
∣
B
)
P
(
B
)
+
P
(
A
∣
B
‾
)
P
(
B
‾
)
P(A) = P(A|B)P(B) + P(A|\overline{B})P(\overline{B})
P(A)=P(A∣B)P(B)+P(A∣B)P(B)
关于 B i , i = 1 , ⋯ , n B_i, i=1, \cdots, n Bi,i=1,⋯,n是对样本空间 Ω \Omega Ω的一个划分,每个 B i B_i Bi之间都没有交集。
常用的统计量
均值、方差、协方差、相关系数、偏度、峰度
信息论
信息熵,代表样本的不纯度(不确定性程度),在机器学习中的树模型使用的比较多,比如说有ID3的信息增益,C4.5的信息增益比,CART的gini指数(是对交叉熵的一个在p=0处的近似 ln x = x − 1 \ln x = x - 1 lnx=x−1.
信息熵的计算:
P
(
X
i
)
P(X_i)
P(Xi)为样本中第
i
i
i类样本站总体样本的比例,则这个样本类别的信息熵为:
H
(
X
)
=
−
∑
i
=
1
n
P
(
X
i
)
log
2
P
(
X
i
)
H(X) = -\sum_{i=1}^nP(X_i) \log_2 P(X_i)
H(X)=−i=1∑nP(Xi)log2P(Xi)
条件熵:在随机变量X发生的条件下,随机变量Y发生带来的熵,定义为Y的条件熵
H
(
Y
∣
X
)
=
∑
i
=
1
n
P
(
x
i
)
H
(
Y
∣
X
=
x
i
)
=
−
∑
i
=
1
n
P
(
x
i
)
∑
j
=
1
n
P
(
y
j
∣
x
i
)
log
2
P
(
y
j
∣
x
i
)
=
−
∑
i
=
1
n
∑
j
=
1
n
P
(
x
i
,
y
j
)
log
2
P
(
y
j
∣
x
i
)
\begin{aligned} H(Y|X) &= \sum_{i = 1}^n P(x_i)H(Y|X = x_i) \\ &= -\sum_{i = 1}^n P(x_i) \sum_{j = 1}^n P(y_j|x_i)\log_2 P(y_j|x_i) \\ &= -\sum_{i = 1}^n \sum_{j = 1}^n P(x_i,y_j) \log_2 P(y_j|x_i) \end{aligned}
H(Y∣X)=i=1∑nP(xi)H(Y∣X=xi)=−i=1∑nP(xi)j=1∑nP(yj∣xi)log2P(yj∣xi)=−i=1∑nj=1∑nP(xi,yj)log2P(yj∣xi)
懒得打公式了,直接copy的
条件熵和熵、联合熵的关系: H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X) = H(X, Y) - H(X) H(Y∣X)=H(X,Y)−H(X), H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) H(X|Y) = H(X, Y) - H(Y) H(X∣Y)=H(X,Y)−H(Y)
互信息:
I
(
X
,
Y
)
=
H
(
X
)
+
H
(
Y
)
−
H
(
X
,
Y
)
I(X, Y) = H(X) + H(Y) - H(X, Y)
I(X,Y)=H(X)+H(Y)−H(X,Y)
相对熵:
又成为KL散度,是描述两个概率分布P和Q之间差异的一种方法,记作 D ( P ∥ Q ) D(P \|Q) D(P∥Q)。它在信息论中表示用概率分布Q来拟合真实分布时,产生的信息表大损耗,P是真实分布,Q是拟合的近似分布
- discrete: D ( P ∥ Q ) = ∑ P ( x ) log P ( x ) Q ( x ) D(P\|Q) = \sum P(x) \log \cfrac{P(x)}{Q(x)} D(P∥Q)=∑P(x)logQ(x)P(x)
- continuous: D ( P ∥ Q ) = ∫ P ( x ) log P ( x ) Q ( x ) D(P\| Q) = \int P(x) \log \cfrac{P(x)}{Q(x)} D(P∥Q)=∫P(x)logQ(x)P(x)
交叉熵
一般用来求目标和预测值之间的差距,在深度学习的损分类笋丝函数中经常用到(CategoricalCrossEntropy, ), 在对抗生成网络GAN中
D
(
P
∥
Q
)
=
∑
P
(
x
)
log
P
(
x
)
Q
(
x
)
=
∑
P
(
s
)
log
P
(
x
)
−
∑
P
(
x
)
log
Q
(
x
)
=
−
H
(
P
(
x
)
)
−
∑
P
(
x
)
log
Q
(
x
)
\begin{aligned} D(P \| Q) &= \sum P(x) \log \cfrac{P(x)}{Q(x)} \\ &= \sum P(s) \log P(x) - \sum P(x) \log Q(x) \\ &= - H(P(x)) - \sum P(x) \log Q(x) \end{aligned}
D(P∥Q)=∑P(x)logQ(x)P(x)=∑P(s)logP(x)−∑P(x)logQ(x)=−H(P(x))−∑P(x)logQ(x)
联合熵:
H
(
P
,
Q
)
=
−
∑
P
(
x
)
log
Q
(
x
)
H(P, Q) = - \sum P(x) \log Q(x)
H(P,Q)=−∑P(x)logQ(x)
最优估计
最小二乘估计
最小平方法,通过最小误差的平方和来寻找数据的最佳函数匹配。
极大似然估计
使得当前样本出现的联合概率最大
参考
[1] 【AI大咖】扒一下低调的Yoshua Bengio大神_LeNet (sohu.com)
[2] 【AI大咖】认真认识一代AI教父Hinton_Neal (sohu.com)
[2] 【AI大咖】再认识Yann LeCun,一个可能是拥有最多中文名的男人_Hinton (sohu.com)
[3] https://github.com/liu-yang-maker/Easy-DL-Theory/blob/main/docs/%E7%BB%AA%E8%AE%BA%E4%B8%8E%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A6%82%E8%BF%B0.md
[4] https://github.com/liu-yang-maker/Easy-DL-Theory/blob/main/docs/%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80.md