• 【深度学习笔记】第 2 课:Logistic 多项式回归法


     1 """Softmax."""
     2 scores = [3.0, 1.0, 0.2]
     3 
     4 import numpy as np
     5 
     6 def softmax(x):
     7     """Compute softmax values for x."""
     8     #pass # TODO:Compute and return softmax(x)
     9     return np.exp(x) / np.sum(np.exp(x), axis=0)
    10 
    11 #print(softmax(scores))
    12 print (softmax(scores*10))
    13 #print (softmax(scores / 10))

    softmax模型可以用来给不同的对象分配概率。即使在之后,我们训练更加精细的模型时,最后一步也需要用softmax来分配概率。

    cross-entropy  交叉熵是度量这两个向量距离的方法之一。我们将记它为D以表示距离。 labels标签向量经过了one-hot编码,所以会有很多的零,因而它不能作为对数的真数。

    对于分布变量,它是由softmax方法计算得到的概率值。所以它总是会大于0, 也就是它可以被放在真数上。

     

    对于一个给定的输入  通过一个线性模型,它将被转变为一个logit分数。这个运算很简单,即输入乘上一个矩阵w再加上一个偏置项b

    接着  使用softmax方法,我们可以将logits分数转化成概率值,接着我们通过交叉熵的方法计算概率向量与经过one-hot编码的标签向量的距离

    我们称这整个过程为Logistic 多项式回归法

    好了,现在我们对问题的各个方面有了一个大致的了解,这门课的任务 是教我们该如何确定权重项w和偏置项b的值

    以使我们的分类器能够完成我们所期望的工作。

    也就是说 要使之对正确分类距离要足够小 对错误分类的距离足够大

     

    可以选择通过这样的方式衡量,求出对所有训练集样本和所有类别的距离之和,也就是求出训练罚函数(That's called the training loss.)

    这个函数 求出了对于所有训练集样本的交叉熵的均值,是一个非常庞大的函数。

    训练集中的每个样本 都将被乘上这个巨大的W矩阵,并且他们都将被加起来,得到这个巨大的求和。

    我们希望每一个距离值都很小,也就是说分类器能够 对训练集中的每个样本都能很好的分类,因而我们希望这个罚函数值很小。

    罚函数是一个关于权重项w和偏差项b的函数,那么我们如何求罚函数的最小值

    作为演示 考察某罚函数 只有两个自变量,我们记为w1和w2。该函数的值在某些区域很大,在另一些区域很小。

    我们的目标 是去寻找使得罚函数值最小的权重值w,因而我们将一个机器学习问题 转化为了一个数值优化问题

    而我们有许多的方法来解决这个数值优化的问题

    最简单的方法之一 也许你可能遇到过 是梯度下降法(gradient descent)

    对罚函数的每一个变量求偏导数,并将每个变量值加上该偏导数值,直到你达到全局最小值

    梯度下降法相对而言比较简单,特别是你能够帮你高效求出偏导数的数值工具的时候,这个只是演示了一个二元函数的偏导数求算过程,但对于一个一般的问题

    我们可能面对的是一个有成百上千参数的函数。

    在接下来的课程中 我们将会讨论为你计算导数的工具,和梯度下降的一些优点和缺点,目前,我们将会假设我给你的优化程序是一个黑盒子,你可以简单的使用

    最后有两个实用的东西阻挡在你训练模型的路上,第一个是你怎么把图像像素填充到分类器,第二个是在哪里初始化最优化过程

  • 相关阅读:
    mongdb
    网络编程
    分布式锁与事务
    mongodb
    Angular4
    思考
    kafka
    Spark总结
    你不知道的javaScript笔记(1)
    vue2.0 配置 选项 属性 方法 事件 ——速查
  • 原文地址:https://www.cnblogs.com/custer/p/6340291.html
Copyright © 2020-2023  润新知