目录
一、人工智能学习思维导图
二、算法小结
三、机器学习知识脉络
四、人工智能论文合集
五、相关主页网址
六、应用领域
一、人工智能学习思维导图
Tips:神经网络和深度学习是什么关系?
1、从广义上说深度学习的网络结构也是多层神经网络的一种。
传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层。简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是 信号->特征->值。 特征是由网络自己选择。
2、"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的新的结构和新的方法。
1)新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了“局部感受野”和“权植共享”的概念,大大减少了网络参数的数量。关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。
2)新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。
二、算法小结
# 梯度下降
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。下文对梯度下降法做一个完整的总结。
参考文章:
视频讲解:https://www.bilibili.com/video/av38405698
# DDPG确定性策略梯度
从DDPG这个名字看,它是由D(Deep)+D(Deterministic )+ PG(Policy Gradient)组成。DDPG参考了DDQN的算法思想,通过双网络和经验回放,加一些其他的优化,比较好的解决了Actor-Critic难收敛的问题。因此在实际产品中尤其是自动化相关的产品中用的比较多,是一个比较成熟的Actor-Critic算法。
参考文章:
# 朴素贝叶斯
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X)Y=f(X),要么是条件分布P(Y|X)P(Y|X)。但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布P(X,Y)P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)P(Y|X)=P(X,Y)/P(X)得出。
参考文章:
# 极大似然估计
极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。
参考文章:
# 逻辑回归(Logistic Regression)
在线性感知器算法中,我们使用了一个f(x)=x函数,作为激励函数,而在逻辑斯蒂回归中,我们将会采用sigmoid函数作为激励函数,所以它被称为sigmoid回归也叫对数几率回归(logistic regression),需要注意的是,虽然它的名字中带有回归,但事实上它并不是一种回归算法,而是一种分类算法。它的优点是,它是直接对分类的可能性进行建模的,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题,因为它是针对于分类的可能性进行建模的,所以它不仅能预测出类别,还可以得到属于该类别的概率。除此之外,sigmoid函数它是任意阶可导的凸函数。 参考文章1:https://www.jianshu.com/p/b2714426c971
参考文章2:
视频讲解1:https://www.bilibili.com/video/av37498638?from=search&seid=1631688472875791399
视频讲解2:https://www.bilibili.com/video/av37329385/?p=1
# 最小二乘法
最小二乘法同梯度下降类似,都是一种求解无约束最优化问题的常用方法,并且也可以用于曲线拟合,来解决回归问题。最小二乘法实质就是最小化“均方误差”,而均方误差就是残差平方和的1/m(m为样本数),同时均方误差也是回归任务中最常用的性能度量。
参考文章:
# 凸优化
简单的说,优化问题中,目标函数为凸函数,约束变量取值于一个凸集中的优化问题称为凸优化,举个简单例子,设S为凸集,f(x)为S上凸函数,则问题min f(x) s.t. x属于S为一个凸优化。
参考文章:https://cloud.tencent.com/developer/news/335461
# 线性回归
最简单的线性回归就是直接利用一条直线拟合二维平面上的一系列点,目的是利用这条直线概括所有训练集中样本的散布规律或趋势,最终用于新样本点的预测。二维平面上直线方程的一般形式为y=ax+b,使用训练集中的数据以某种方式训练该模型后,就可以确定方程中的两个参数a,b的最优值。后面如果观察到了新的样本xi,就可以带入上面学习到的公式计算y的值了。
参考文章:
视频讲解:https://www.bilibili.com/video/av37823773
# 多项式回归
在上一篇的一般线性回归中,使用的假设函数是一元一次方程,也就是二维平面上的一条直线。但是很多时候可能会遇到直线方程无法很好的拟合数据的情况,这个时候可以尝试使用多项式回归。多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加,可以进一步降低训练误差,但导致过拟合的风险也随之增加。
参考文章:
视频讲解:https://www.bilibili.com/video/av38663814
# 岭回归与Lasso回归
使用多项式回归,如果多项式最高次项比较大,模型就容易出现过拟合。正则化是一种常见的防止过拟合的方法,一般原理是在代价函数后面加上一个对参数的约束项,这个约束项被叫做正则化项(regularizer)。在线性回归模型中,通常有两种不同的正则化项:
- 加上所有参数(不包括θ0θ0)的绝对值之和,即l1l1范数,此时叫做Lasso回归;
- 加上所有参数(不包括θ0θ0)的平方和,即l2l2范数,此时叫做岭回归.
参考文章:
# 高斯分布(正态分布)
正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
参考文章:
# 傅里叶变换
傅里叶变换的意义:将时域问题转换到频域中解答,从而简化了问题的处理。
参考文章1:
参考文章2:
视频讲解1https://www.bilibili.com/video/av26085743?from=search&seid=16043164129848890351
视频讲解:https://www.bilibili.com/video/av19141078?from=search&seid=13920867040084411546
# 马尔可夫链
马尔科夫链是指数学中具有马尔科夫性质的离散事件随机过程。在其每一步中,系统根据概率分布可以从一个状态变到另一个状态,也可以保持当前状态。状态的改变叫做转移,与不同的状态改变相关的概率叫做转移概率。
参考文章:
# 机器学习中有监督和无监督的七大区别
参考文章:http://www.360doc.com/content/18/0414/10/44507361_745524724.shtml
# SVM支持向量机
支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(或称泛化能力)。
参考文章1:https://baijiahao.baidu.com/s?id=1607469282626953830&wfr=spider&for=pc
参考文章2:http://www.blogjava.net/zhenandaci/category/31868.html
视频讲解:https://www.bilibili.com/video/av36830483/?p=1
白板推公式视频:https://www.bilibili.com/video/av28186618
# PCA(Principal Component Analysis)
PCA即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
参考文章:
视频讲解:https://www.bilibili.com/video/av38544169
# KPCA非线性降维与核函数
讲述PCA降维算法时提到,PCA只能处理线性数据的降维,本质上都是线性变换,并且它仅是筛选方差最大的特征,去除特征之间的线性相关性。对于线性不可分的数据常常效果很差。KPCA算法其实很简单,数据在低维度空间不是线性可分的,但是在高维度空间就可以变成线性可分的了。利用这个特点,KPCA只是将原始数据通过核函数(kernel)映射到高维度空间,再利用PCA算法进行降维,所以叫做K PCA降维。因此KPCA算法的关键在于这个核函数。
参考文章1:https://www.jianshu.com/p/708ca9fa3023
参考文章2:主成分分析PCA和核函数
参考文章3:https://www.jianshu.com/p/047b4d65668f
# Boost集成学习
集成学习(ensemble learning)可以说是现在非常火爆的机器学习方法了。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。
参考文章:
视频讲解:https://www.bilibili.com/video/av38821041?from=search&seid=1481073074695557957
# GBDT
GBDT(Gradient Boosting Decision Tree)是boosting系列算法中的一个代表算法,它是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为最终答案。
参考文章1:
参考文章2:
三、神经网络部分
# 感知机
感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学习旨在求出可以将数据进行划分的分离超平面,所以感知机能够解决的问题首先要求特征空间是线性可分的,再者是二类分类,即将样本分为{+1, -1}两类。
参考文章:
# 多层感知机MLP
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
从上图可以看到,多层感知机层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。多层感知机最底层是输入层,中间是隐藏层,最后是输出层。
参考文章: 神经网络(一):概念 参考文章 神经网络(二):感知机
参考文章:
参考文章:神经网络和反向传播算法
# DNN深度神经网络
DNN,从结构上来说他和传统意义上的NN(神经网络)没什么区别,但是神经网络发展时遇到了一些瓶颈问题。一开始的神经元不能表示异或运算,科学家通过增加网络层数,增加隐藏层可以表达。并发现神经网络的层数直接决定了它对现实的表达能力。但是随着层数的增加会出现局部函数越来越容易出现局部最优解的现象,用数据训练深层网络有时候还不如浅层网络,并会出现梯度消失的问题。我们经常使用sigmoid函数作为神经元的输入输出函数,在BP反向传播梯度时,信号量为1的传到下一层就变成0.25了,到最后面几层基本无法达到调节参数的作用。值得一提的是,最近提出的高速公路网络和深度残差学习避免梯度消失的问题。DNN与NN主要的区别在于把sigmoid函数替换成了ReLU,maxout,克服了梯度消失的问题。
参考文章:深度神经网络(DNN)模型与前向传播算法
参考文章:深度神经网络(DNN)反向传播算法(BP)
参考文章:深度神经网络(DNN)损失函数和激活函数的选择
参考文章:深度神经网络(DNN)的正则化
# CNN卷积神经网络
CNN的由来:深度学习的深度没有固定的定义,2006年Hinton解决了局部最优解问题,将隐含层发展到7层,这达到了深度学习上所说的真正深度。不同问题的解决所需要的隐含层数自然也是不相同的,一般语音识别4层就可以,而图像识别20层屡见不鲜。但随着层数的增加,又出现了参数爆炸增长的问题。假设输入的图片是1K*1K的图片,隐含层就有1M个节点,会有10^12个权重需要调节,这将容易导致过度拟合和局部最优解问题的出现。为了解决上述问题,提出了CNN。
参考文章:卷积神经网络(CNN)模型结构
参考文章:卷积神经网络(CNN)前向传播算法
参考文章:卷积神经网络(CNN)反向传播算法
参考文章1:
参考文章2:https://www.zybuluo.com/hanbingtao/note/485480
# RNN循环神经网络
全连接的DNN还存在着另一个问题——无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对了适应这种需求,就出现了另一种神经网络结构——循环神经网络RNN。在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!
参考文章:循环神经网络(RNN)模型与前向反向传播算法
# 长短时记忆网络(Long Short Term Memory Network, LSTM)
长短时记忆网络(Long Short Term Memory Network, LSTM),它成功的解决了原始循环神经网络的缺陷,成为当前最流行的RNN,在语音识别、图片描述、自然语言处理等许多领域中成功应用。
参考文章:https://zybuluo.com/hanbingtao/note/581764
参考文章:LSTM模型与前向反向传播算法
# 受限波尔兹曼机RBM
玻尔兹曼机是一大类的神经网络模型,但是在实际应用中使用最多的则是RBM。RBM本身模型很简单,只是一个两层的神经网络,因此严格意义上不能算深度学习的范畴。不过深度玻尔兹曼机(Deep Boltzmann Machine,以下简称DBM)可以看做是RBM的推广。理解了RBM再去研究DBM就不难了。
上面一层神经元组成隐藏层(hidden layer), 用hh向量隐藏层神经元的值。下面一层的神经元组成可见层(visible layer),用vv向量表示可见层神经元的值。隐藏层和可见层之间是全连接的,这点和DNN类似, 隐藏层神经元之间是独立的,可见层神经元之间也是独立的。连接权重可以用矩阵W表示。和DNN的区别是,RBM不区分前向和反向,可见层的状态可以作用于隐藏层,而隐藏层的状态也可以作用于可见层。隐藏层的偏倚系数是向量b,而可见层的偏倚系数是向量a。
常用的RBM一般是二值的,即不管是隐藏层还是可见层,它们的神经元的取值只为0或者1。本文只讨论二值RBM。
参考文章:受限玻尔兹曼机(RBM)原理总结
四、机器学习知识脉络
1、监督学习 Supervised learning
- 人工神经网络 Artificial neural network
- 自动编码器 Autoencoder
- 反向传播 Backpropagation
- 玻尔兹曼机 Boltzmann machine
- 卷积神经网络 Convolutional neural network
- Hopfield网络 Hopfield network
- 多层感知器 Multilayer perceptron
- 径向基函数网络(RBFN) Radial basis function network(RBFN)
- 受限玻尔兹曼机 Restricted Boltzmann machine
- 回归神经网络(RNN) Recurrent neural network(RNN)
- 自组织映射(SOM) Self-organizing map(SOM)
- 尖峰神经网络 Spiking neural network
- 贝叶斯 Bayesian
- 朴素贝叶斯 Naive Bayes
- 高斯贝叶斯 Gaussian Naive Bayes
- 多项朴素贝叶斯 Multinomial Naive Bayes
- 平均一依赖性评估(AODE) Averaged One-Dependence Estimators(AODE)
- 贝叶斯信念网络(BNN) Bayesian Belief Network(BBN)
- 贝叶斯网络(BN) Bayesian Network(BN)
- 决策树 Decision Tree
- 分类和回归树(CART) Classification and regression tree (CART)
- 迭代Dichotomiser 3(ID3) Iterative Dichotomiser 3(ID3)
- C4.5算法 C4.5 algorithm
- C5.0算法 C5.0 algorithm
- 卡方自动交互检测(CHAID) Chi-squared Automatic Interaction Detection(CHAID)
- 决策残端 Decision stump
- ID3算法 ID3 algorithm
- 随机森林 Random forest
- SLIQ
- 线性分类 Linear classifier
- Fisher的线性判别 Fisher’s linear discriminant
- 线性回归 Linear regression
- Logistic回归 Logistic regression
- 多项Logistic回归 Multinomial logistic regression
- 朴素贝叶斯分类器 Naive Bayes classifier
- 感知 Perceptron
- 支持向量机 Support vector machine
2、无监督学习 Unsupervised learning
- 人工神经网络 Artificial neural network
- 对抗生成网络
- 前馈神经网络 Feedforward neurral network
- 极端学习机 Extreme learning machine
- 逻辑学习机 Logic learning machine
- 自组织映射 Self-organizing map
- 关联规则学习 Association rule learning
- 先验算法 Apriori algorithm
- Eclat算法 Eclat algorithm
- FP-growth算法 FP-growth algorithm
- 分层聚类 Hierarchical clustering
- 单连锁聚类 Single-linkage clustering
- 概念聚类 Conceptual clustering
- 聚类分析 Cluster analysis
- BIRCH
- DBSCAN
- 期望最大化(EM) Expectation-maximization(EM)
- 模糊聚类 Fuzzy clustering
- K-means算法 K-means algorithm
- k-均值聚类 K-means clustering
- k-位数 K-medians
- 平均移 Mean-shift
- OPTICS算法 OPTICS algorithm
- 异常检测 Anomaly detection
- k-最近邻算法(K-NN) k-nearest neighbors classification(K-NN)
- 局部异常因子 Local outlier factor
3、半监督学习 Semi-supervised learning
- 生成模型 Generative models
- 低密度分离 Low-density separation
- 基于图形的方法 Graph-based methods
- 联合训练 Co-training
4、强化学习 Reinforcement learning
- 时间差分学习 Temporal difference learning
- Q学习 Q-learning
- 学习自动 Learning Automata
- 状态-行动-回馈-状态-行动(SARSA) State-Action-Reward-State-Action(SARSA)
5、深度学习Deep learning
- 深度信念网络 Deep belief machines
- 深度卷积神经网络 Deep Convolutional neural networks
- 深度递归神经网络 Deep Recurrent neural networks
- 分层时间记忆 Hierarchical temporal memory
- 深度玻尔兹曼机(DBM) Deep Boltzmann Machine(DBM)
- 堆叠自动编码器 Stacked Boltzmann Machine
- 生成式对抗网络 Generative adversarial networks
6、迁移学习 Transfer learning
- 传递式迁移学习 Transitive Transfer Learning
7、其他
- 集成学习算法
- Bootstrap aggregating (Bagging)
- AdaBoost
- 梯度提升机(GBM) Gradient boosting machine(GBM)
- 梯度提升决策树(GBRT) Gradient boosted decision tree(GBRT)
- 降维
- 主成分分析(PCA) Principal component analysis(PCA)
- 主成分回归(PCR) Principal component regression(PCR)
- 因子分析 Factor analysis
五、相关主页网址
1、OpenCV (Open Source Computer Vision Library) 官网地址:https://opencv.org/
2、中国计算机视觉论坛,地址:http://www.cvchina.net/
3、July,个人博客,专注面试、算法、机器学习。地址:
4、周志华,个人主页,地址:http://cs.nju.edu.cn/zhouzh/index.htm
5、中科院机器视觉课题组,官网地址:http://vision.ia.ac.cn/zh/index_cn.html
6、台湾大学的支持向量机库libsvm项目网址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/
7、斯坦福大学计算机视觉主页,地址:http://vision.stanford.edu/index.html
8、个人博客:
9、机器学习算法精讲,中科院大牛带你手推算法。
视频讲解:https://www.bilibili.com/video/av48725230?from=search&seid=4629572223349762345
10、GitHub万星的中文机器学习资源:https://github.com/apachecn/AiLearning
11、机器学习的数学基础:https://zhuanlan.zhihu.com/p/25197792
12、总结的比较好的自然语言处理资料github链接:https://liuhuanyong.github.io/
13、人工智能论文汇总: