master
aolingwen 5 years ago
parent d4720f03b5
commit c5695bd446

@ -2,7 +2,7 @@
机器学习(`Machine Learning`)是一门多领域交叉学科,涉及概率论、统计学、最优化、算法复杂度理论等多个学科方向。专门研究如何借助计算机模拟实现人类的学习行为,以获取新的知识或技能,或者更好地组织已有的知识结构。机器学习是人工智能的核心,是使计算机具有智能的根本途径之一,其应用遍及人工智能的各个领域。 机器学习(`Machine Learning`)是一门多领域交叉学科,涉及概率论、统计学、最优化、算法复杂度理论等多个学科方向。专门研究如何借助计算机模拟实现人类的学习行为,以获取新的知识或技能,或者更好地组织已有的知识结构。机器学习是人工智能的核心,是使计算机具有智能的根本途径之一,其应用遍及人工智能的各个领域。
机器学习正在迅速改变我们的世界,我们几乎每天都会看到机器学习如何改变日常的生活。如你在淘宝或者京东这样的电商平台购买商品,或者只是进行一次百度搜索,就已经触碰到了机器学习的应用。使用这些服务的用户会产生数据,这些数据会被手机,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验。此外,还有很多使用机器学习技术的产品或服务即将在我们的生活当中普及。可以说如果想要深入机器学习的应用开发当中,现在是一个非常理想的时机。 机器学习正在迅速改变我们的世界,我们几乎每天都会看到机器学习如何改变日常的生活。如你在淘宝或者京东这样的电商平台购买商品,平台会根据你的历史行为数据,来向你推荐你下次可能要购买的商品。例如你准备进火车站的时候,只要放好身份证,脸朝向摄像头,闸机就会根据你的脸部特征对你进行人脸识别。此外,还有很多使用机器学习技术的产品或服务即将在我们的生活当中普及。可以说如果想要深入机器学习的应用开发当中,现在是一个非常理想的时机。
# 说明 # 说明

@ -17,7 +17,12 @@
### 熵、条件熵、信息增益 ### 熵、条件熵、信息增益
在信息论和概率统计中呢,为了表示某个随机变量的不确定性,就借用了热力学的一个概念叫**熵**。如果假设 $$X$$ 是一个有限个取值的离散型随机变量的话,很显然它的概率分布或者分布律就是这样的:$$P(X=x_i)=p_i, i=1,2,...,n$$。 在信息论和概率统计中呢,为了表示某个随机变量的不确定性,就借用了热力学的一个概念叫**熵**。如果假设 $$X$$ 是一个有限个取值的离散型随机变量的话,很显然它的概率分布或者分布律就是这样的:
<center>
$$P(X=x_i)=p_i, i=1,2,...,n$$
</center>
<br>
有了概率分布后,则这个随机变量 $$X$$ 的熵的计算公式就是($$PS$$:这里的 $$log$$ 是以 $$2$$ 为底):$$H(X)=-\sum_{i=1}^np_ilogp_i$$ 有了概率分布后,则这个随机变量 $$X$$ 的熵的计算公式就是($$PS$$:这里的 $$log$$ 是以 $$2$$ 为底):$$H(X)=-\sum_{i=1}^np_ilogp_i$$
@ -25,9 +30,12 @@
在实际情况下,要研究的随机变量基本上都是多随机变量的情况,所以假设有随便量`(X,Y)`,那么它的联合概率分布是这样的: 在实际情况下,要研究的随机变量基本上都是多随机变量的情况,所以假设有随便量`(X,Y)`,那么它的联合概率分布是这样的:
<center>
$$ $$
P(X=x_i, Y=y_j)=p_{ij}, i=1,2,...,n; j=1,2,...,m P(X=x_i, Y=y_j)=p_{ij}, i=1,2,...,n; j=1,2,...,m
$$ $$
</center>
那如果我想知道在我事件 $$X$$ 发生的前提下,事件 $$Y$$ 发生的熵是多少的话,这种熵叫它**条件熵**。条件熵 $$H(Y|X)$$ 表示随机变量 $$X$$ 的条件下随机变量 $$Y$$ 的不确定性。条件熵的计算公式是这样的:$$H(Y|X)=\sum^n_{i=1}p_iH(Y|X=x_i)$$。 那如果我想知道在我事件 $$X$$ 发生的前提下,事件 $$Y$$ 发生的熵是多少的话,这种熵叫它**条件熵**。条件熵 $$H(Y|X)$$ 表示随机变量 $$X$$ 的条件下随机变量 $$Y$$ 的不确定性。条件熵的计算公式是这样的:$$H(Y|X)=\sum^n_{i=1}p_iH(Y|X=x_i)$$。

@ -63,7 +63,7 @@ $$
现在已经知道了梯度下降就是用来找权重的,那怎么找权重呢?瞎猜?不可能的....这辈子都不可能猜的。想想都知道,权重的取值范围可以看成是个实数空间,那`100`个特征就对应着 `100`个权重,`10000`个特征就对应着`10000`个权重。如果靠瞎猜权重的话,应该这辈子都猜不中了。所以找权重的找个套路来找,这个套路就是**梯度**。**梯度**其实就是让函数值为 0 时其中各个变量的偏导所组成的向量,而且**梯度方向**是使得**函数值增长最快的方向**。 现在已经知道了梯度下降就是用来找权重的,那怎么找权重呢?瞎猜?不可能的....这辈子都不可能猜的。想想都知道,权重的取值范围可以看成是个实数空间,那`100`个特征就对应着 `100`个权重,`10000`个特征就对应着`10000`个权重。如果靠瞎猜权重的话,应该这辈子都猜不中了。所以找权重的找个套路来找,这个套路就是**梯度**。**梯度**其实就是让函数值为 0 时其中各个变量的偏导所组成的向量,而且**梯度方向**是使得**函数值增长最快的方向**。
这个性质怎么理解呢?举个子。假如我是个想要成为英雄联盟郊区王者的死肥宅,然后要成为郊区王者可能有这么几个因素,一个是英雄池的深浅,一个是大局观,还有一个是骚操作。他们对我成为王者来说都有一定的权重。如图所示,每一个因素的箭头都有方向(也就是因素对于我成为王者的偏导的方向)和长度(偏导的值的大小)。然后在这些因素的共同作用下,我最终会朝着一个方向来训练(好比物理中分力和合力的关系),这个时候我就能以最快的速度向郊区王者更进一步。 这个性质怎么理解呢?举个子。假如我是个想要成为英雄联盟郊区王者的死肥宅,然后要成为郊区王者可能有这么几个因素,一个是英雄池的深浅,一个是大局观,还有一个是骚操作。他们对我成为王者来说都有一定的权重。如图所示,每一个因素的箭头都有方向(也就是因素对于我成为王者的偏导的方向)和长度(偏导的值的大小)。然后在这些因素的共同作用下,我最终会朝着一个方向来训练(好比物理中分力和合力的关系),这个时候我就能以最快的速度向郊区王者更进一步。
<div align=center><img src="./img/17.jpg", height="300" width="350"/></div> <div align=center><img src="./img/17.jpg", height="300" width="350"/></div>

@ -25,7 +25,7 @@
最好的情况下,模型应该不管在训练集上还是测试集上,它的性能都不错。但是有的时候,我模型在训练集上的性能比较差,那么这种情况我们称为**欠拟合**。那如果模型在训练集上的性能好到爆炸,但在测试集上的性能却不尽人意,那么这种情况我们称为**过拟合**。 最好的情况下,模型应该不管在训练集上还是测试集上,它的性能都不错。但是有的时候,我模型在训练集上的性能比较差,那么这种情况我们称为**欠拟合**。那如果模型在训练集上的性能好到爆炸,但在测试集上的性能却不尽人意,那么这种情况我们称为**过拟合**。
其实欠拟合与过拟合的区别和生活中学生考试的例子很像。如果一个学生在平时的练习中题目的正确率都不高,那么说明这个学生可能基础不牢或者心思没花在学习上,所以这位学生可能欠缺基础知识或者智商可能不太高或者其他种种原因,像这种情况可以看成是**欠拟合**。那如果这位学生平时练习的正确率非常高,但是他不怎么灵光,喜欢死记硬背,只会做已经做过的题,一碰到没见过的新题就不知所措了。像这种情况可以看成是**过拟合**。 其实欠拟合与过拟合的区别和生活中学生考试的例子很像。如果一个学生在平时的练习中题目的正确率都不高,那么说明这个学生可能基础不牢或者心思没花在学习上,所以这位学生可能欠缺基础知识或者智商可能不太高或者其他种种原因,像这种情况可以看成是**欠拟合**。那如果这位学生平时练习的正确率非常高,但是他不怎么灵光,喜欢死记硬背,只会做已经做过的题,一碰到没见过的新题就不知所措了。像这种情况可以看成是**过拟合**。
那么是什么原因导致了欠拟合和过拟合呢? 那么是什么原因导致了欠拟合和过拟合呢?

@ -1,6 +1,6 @@
# 机器学习项目流程 # 机器学习项目流程
当我们拿到一个项目需求想要使用机器学习来实现时,往往会按照**理解问题与问题转换、获取数据、数据清洗与预处理、特征工程、模型训练与调优**这`5`个步骤来走。 当我们拿到一个项目需求,并想要使用机器学习技术来实现时,往往会按照**理解问题与问题转换、获取数据、数据清洗与预处理、特征工程、模型训练与调优**这`5`个步骤来走。
### 1.理解实际问题,抽象为机器学习能处理的数学问题 ### 1.理解实际问题,抽象为机器学习能处理的数学问题

Loading…
Cancel
Save