AYE89

coding & learning

导航

机器学习:数学基础

Posted on 2017-11-16 09:57  AYE89  阅读(247)  评论(0编辑  收藏  举报

线性代数

矩阵和向量的乘法

A(m*n) · x(n*1) = b(m*1)

线性变换:这个公式实际上和机器学习中一些线性模型相似(线性回归)——x存在于一个n维的实数向量空间,b存在于一个m维的实数向量空间,那么A的作用相当于一个映射,            而且它们之间是线性计算的关系。

两种理解:

1:A(每一行) *  x(列 /每个元素) --> b(对应一个元素)

含义:

A中的每一行相当于x中每个元素的权重,它们的就算结果汇总成一个数,相当于对x中的元素做加权求和。——每一次相当于,内积运算,表示了相关程度

线性变换相当于对x完成了m次内积运算(x与A的行向量的相关程度),b是A与x相关程度的汇总。m次汇总

从这种角度看A的含义:A表示向量的某一抽象“特征”,x与“特征”越接近(相关),线性变换结果越大。

(即b就是x与A的行向量的相关程度的汇总,A代表了理想向量具备的“特征”,x像A则会结果比较大,不像结果比较小)

 

2:A 中每一个列向量和x中的每一个元素依次相乘,相乘后的向量再加在一起得到结果b

x的每一个元素成为A列向量的权重

直观理解:A的每一个列向量表示了结果b所在空间的一种向量表达,那么x的作用就是平衡这些向量表达并将这些表达糅合成一个新的向量

(把A的每个列向量看成一个坐标轴,那么b的每一维就是x在A的各个坐标轴上投影的值)

 

概率论

概率分布:

离散随机变量,二值的有伯努利分布;

连续随机变量,经典的有高斯分布;

 

信息论

KL散度

z是隐变量,x是观测变量,如果要找到一个相对简单的概率分布q,使它尽可能地近似待分析的后验概率p(z|x),这里的目标函数就是KL散度。

KL散度可以很好的度量两个概率分布之间的距离。两个分布越接近,那么KL散度越小;如果越远,KL散度就会越大。

 

机器学习的目标函数

SquareLoss = 1/2 (y-t)2

CrossEntropyLoss 

两个服从伯努利分布的随机变量,它们的交叉熵H(P,Q)为:

CrossEntropyLoss = - P(0)logQ(0) - (1 - P(0))log(1 - Q(0))

 

选择:

如果输出的结果是一个回归问题的一个连续型随机变量,使用平方损失函数更合适;

如果输出是分类问题的一个离散One-Hot向量,那么交叉熵损失函数更合适;

 

分析:

在模型优化过程中,交叉熵损失的梯度只和正确分类的预测结果有关,而平方损失函数考虑的内容更多,还与错误的分类有关。

分类问题上平方损失函数,除了让正确分类尽可能大,还会让错误分类都变得更平均,但实际中后面这个调整是不必要的,所以平方损失实际上完成了额外的工作;

而这个调整在回归问题上非常重要,因此回归问题上用交叉熵损失显然就不合适了。