【机器学习笔录】机器学习中一些函数的概念及应用[一]

Posted by ShawnD on September 28, 2018

Softmax回归

  • 是什么?

    Softmax回归是一个线性的多类分类模型,Softmax函数的功能是将各个类别的“打分”转化为合理的概率值

  • 为什么?

    假设一个样本可能有三个类别:第一类打分为a,第二类打分为b,第三类打分为c。打分越高代表属于这个类别的概率越高,但是打分本身不代表概率,打分的值可以是负数,也可以很大,但概率要求在0到1之间,并且三类加起来的概率等于1. Softmax函数就可以用来解决这个问题。

  • 怎么用?

    如何将上述的(a,b,c)转换成合理的概率值,这里对他们使用softmax函数后,相应的值会 ($e^a/(e^a+e^b+e^c), e^b/(e^a+e^b+e^c), e^c/((e^a+e^b+e^c))$,这三个数加起来正好等于1。

    假设x代表输入图片(假设为784维向量),W代表权重(假设为形状为[784,10]的矩阵),b代表偏差(假设是一个10维的向量),Logit就是上述各个类别打分:

       $Logit = W^Tx + b$

    用softmax将其转换成各个类别的概率值:

       $y = Softmax(Logit)$

交叉熵

  • 是什么?

    首先什么是熵,化学中我们学过熵表示一种物质的不稳定程度,熵越大越不稳定。 在信息论中,熵表示不确定度,熵越小,不确定度越小。

    以下内容来自百度百科:

    在信息论中,交叉熵是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所需要的平均比特数。

    假设现在有一个样本集中两个概率分布p,q,其中p为真实分布,q为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:    $h(p) = -p(i)log(p(i)) $

    但是,如果采用错误的分布q来表示来自真实分布p的平均编码长度,则应该是:    $h(p,q) = -p(i)log(q(i)) $ 此时就将$h(p, q)$称为交叉熵

  • 为什么?

    在softmax回归模型中,通常使用“交叉熵”损失来衡量相似性。

  • 怎么用?

    交叉熵损失越小,模型的输出与和实际标签越接近,模型的预测也就越准。

梯度下降

  • 是什么?

    梯度下降我们可以理解机器学习中为向目标值靠近的方法。 其中有两个基础算法:最小二乘法和随机梯度下降。

  • 为什么?

    最小二乘法通过最小化误差的平方和寻求数据的最佳函数匹配。(如果不熟悉的话,可以查阅高等数学(同济大学第七版)第九章第十节)

    举个例子,若干个点分布在向量空间中,如果希望找出一条直线和这些点达到最佳匹配,那么最简单的一个方法就是希望这些点到直线的值最小。

    随机梯度下降算法,通过不停判断和选择当下目标的最优路径,使得能够在最短路径下达到最优的结果。

    举个例子,假设我们在山上,想要以最快的速度下山,那么就要选择最陡峭的地方往下走,但是由于不熟悉道路,每走过一段路程就要重新选择一遍最陡峭的路径,这样一路走下来,可以在最短时间走到底。

  • 怎么用?

    用数学来讲的话,可以把下山想象成一个函数$f(x)$,而每次想要以最快的速度下降就要对$f(x)$求导,这样$x$就会以最快的方向减小,从而推断出$x$的最优解。

x y y_的意义,tf.argmax的作用

x表示输入,y表示预测,y_表示实际特征。

在说tf.argmax之前,先讲讲独热的概念:  所谓独热,就是“一位有效编码“。我们用N维向量表示N个类别,每个类别占据独立的一位,任何时候独热表示中只有一位是1其他都为0。 mark

而tf.argmax的功能是取出数组中最大值的下标,因此可以通过tf.argmax得出预测中概率最大的类别。

tf.reshape(x, [-1, 28, 28 , 1])中 -1 的作用

将输入x还原为28x28的图片形式,[-1, 28, 28, 1]中的-1表示形状的第一维的大小是根据x自动确定的。