文档库 最新最全的文档下载
当前位置:文档库 › 深度学习笔记

深度学习笔记

1,机器学习(Machine Learning, ML)

概念:多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

学科定位:人工智能(Artificial Intelligence, AI)的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

定义:探究和开发一系列算法来如何使计算机不需要通过外部明显的指示,而可以自己通过数据来学习,建模,并且利用建好的模型和新的输入来进行预测的学科。

学习:针对经验E (experience) 和一系列的任务T (tasks) 和一定表现的衡量P,如果随之经验E的积累,针对定义好的任务T可以提高表现P,就说计算机具有学习能力

机器学习的应用:

语音识别

自动驾驶

语言翻译

计算机视觉

推荐系统

无人机

识别垃圾邮件

学习方式:有监督(数据和标签),无监督(数据),半监督(监督和非监督结合),强化学习(经验总结),遗传算法(适者生存)

2,Deep learning

GPU NVIDIA主要生产

深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。(神经网络算法)

3,基础概念

概念学习:指从有关某个布尔函数的输入输出训练样例中推断出该布尔函数

训练集(training set/data)/训练样例(training examples):用来进行训练,产生模型或者算法的数据集合

测试集(testing set/data)测试样本(training examples):用来测试已经学习好的模型或者算法的数据集

特征向量(features/feature vector):属性的集合,通常用一个向量表示,附属于一个实例标记(label): c(x), 实例类别的标记

正例(positive example)

反例(negative example)

种类:

(标记值的类型)

分类:标记为类别行数据(category)

回归:目标标记为连续性数值(continuous numeric value)

(有无类别标记)

有监督学习(supervised learning):训练集有类别标记(class label)

无监督学习(unsupervised learning):无类别标记(class label)

半监督学习(semi-supervised learning):有类别标记的训练集+ 无标记的训练集

机器学习步骤框架:

1 把数据拆分为训练集和测试集

2 用训练集和训练集的特征向量来训练算法

3用学习来的算法运用在测试集上来评估算法(可能要设计到调整参数(parameter tuning), 用验证集(validation set)

3.1 决策树法

机器学习中分类和预测算法的评估:

准确率

速度

强壮性(鲁棒性)

可规模性

可解释性

什么是决策树/判定树(decision tree)?

判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。

3.2 决策树应用

scikit-learn(分类,回归,聚类,降维,模型选择,预处理)

转换dot文件至pdf可视化决策树:在win-cmd中输入:dot -Tpdf iris.dot -o outpu.pdf (路径)

将数据转换为01列表,根据数据建立对应的决策树,再进行数据的检测

4.1最邻近规则分类KNN算法key-nearest neighbor

Cover和Hart在1968年提出了最初的邻近算法

属于分类(classification)算法,输入基于实例的学习(instance-based learning), 懒惰学习(lazy learning)每次学习依据实例,在开始不建立任何模型,在测试归类时比较它和训练集之间的关系,并进行分类

步骤:

为了判断未知实例的类别,以所有已知类别的实例作为参照

选择参数K(相邻实例的个数,1,3,5,7根据实例进行优化,一般选择奇数,小数服从多数的原则)

计算未知实例与所有已知实例的距离

选择最近K个已知实例(对应距离)

根据少数服从多数的投票法则(majority-voting),让未知实例归类为K个最邻近样本中最多数的类别

关于距离的衡量方法:

Euclidean Distance 定义:两点之间的直接距离

其他距离衡量:余弦值(cos), 相关度(correlation), 曼哈顿距离(Manhattan distance)(类似于三角形的两边和)

算法优点:

简单

易于理解

容易实现

通过对K的选择可具备丢噪音数据的健壮性

缺点:需要大量空间储存所有已知实例

算法复杂度高(需要比较所有已知实例与要分类的实例)

当其样本分布不平衡时,比如其中一类样本过大(实例数量过多)占主导的时候,新的未知实例容易被归类为这个主导样本,因为这类样本实例的数量过大,但这个新的未知实例实际并木接近目标样本

4.2 KNN的算法应用

Python3中读取文件,open(filename)

sortedVotes=sorted(classVotes.iter items(),key=operator.itemgetter(1),reverse=Tru

e)

5.1支持向量机SVM( support vector machine)

机器学习的一般框架:

训练集=>提取特征向量=>结合一定的算法(分类器:比如决策树,KNN,SVM)=>得到结果

SVM寻找区分两类的超平面,使边际最大

如何选取使边际(margin)最大的超平面(Max Margin Hyperplane)?MMH

超平面到一侧最近点的距离等于到另一侧最近点的距离,两侧的两个超平面平行

点分布线性可区分(liner separable)

有限制的凸优化问题(convex quadratic optimization)

利用Karush-Kuhn-Tucker (KKT)条件和拉格朗日公式,可以推出MMH可以被表示为以下“决定边界(decision boundary)”

对于任何测试(要归类的)实例,带入以上公式,得出的符号是正还是负决定

5.1支持向量机的应用

#使用random产生点时,每次运行时随机产生的点不变

np.random.seed(0)

5.2支持向量机算法下

SVM算法特性:训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting

SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。

点分布线性不可分:

1利用一个非线性的映射把原数据集中的向量点转化到一个更高维度的空间中2在这个高维度的空间中找一个线性的超平面来根据线性可分的情况处理

核方法(kernal trick):解决内积的复杂程度

常用的核函数:h度多项式核函数(polynomial kernel of degree h):

高斯径向基核函数(Gaussian radial basis function kernel): 图像分类

S型核函数(Sigmoid function kernel):双曲线核函数

5.2svm算法下

相关文档