zoukankan      html  css  js  c++  java
  • 机器学习:数学基础

    线性代数

    矩阵和向量的乘法

    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向量,那么交叉熵损失函数更合适;

    分析:

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

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

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

  • 相关阅读:
    让UILabel的大小自适应字符串长度
    Cocos2dx中的分辨率学习
    关键帧动画-五角星动画-在层上画出五角星
    .net WINFORM 界面怎么做凹凸效果的分割线?就是横线
    游标Cursor 使用小例 (SQLServer)
    winform屏蔽Alt+F4组合键以防止用户关闭对话框
    SQL Server 2005 数据类型和.Net数据类型的对应关系
    php $GLOBALS 超全局变量的理解
    我改行了
    PHP $_FILES详解
  • 原文地址:https://www.cnblogs.com/eniac1946/p/7842867.html
Copyright © 2011-2022 走看看