4 Matching Annotations
  1. Oct 2018
  2. yiddishkop.github.io yiddishkop.github.io
    1. 李宏毅 linear algebra lec 5

      重新定义线性代数

      第三节课讲过,一个线性系统不仅仅是一条“直线”,直线只是一种特殊到不能再特殊的情况。线性系统的本质是:

      1. '->' 以下表示线性系统

      2. 符合加法性:x->y ==> x1+x2->y1+y2

      3. 符合乘法(scalar)性:x->y ==> x1k->yk

      广义向量

      再结合一个超级牛逼的观点广义向量 --- 函数也是一种向量。我们就把线性系统是一条直线的观点边界向外扩展了一些:

      线性系统是以向量(亦即,包含函数和数字和普通向量)作为输入

      现实世界中的很多东西都可以表示为向量,就连函数也不例外。

      他可以造就这样的奇迹:

      1. 加法性:fn->fc ===> fn1 + fn2-> fc1+fc2

      2. 乘法性:fn->fc ===> fn1k->fc1k

      也就是说,线性系统接收的输入和输出都是一个向量,而数字和函数只是特殊的向量。,满足这一特殊性质的线性系统就是【微分】and【积分】。微分和积分更像是一种【功能】而不是一个【函数】,这也是为什么我们不把系统说成函数的原因,因为他强调功能而不是记号表示性,或者说函数只是功能的一个可记号话的特例

      线性代数这门学科研究的主要目标就是线性系统

      于是新的关于线性系统的定义至此形成:

      \(vector\ \Rightarrow LinearSystem\ \Rightarrow vector\)

      \(domain\ \Rightarrow LinearSystem\ \Rightarrow co-domain\)

      线性系统与联立线性等式

      可以证明的是(in lec3)任何线性系统都可以表示为联立线性等式,也就是说联立等式与线性系统是等价的

      Linear system is equal to System of linear equations.

      【矩阵,联立方程式,线性系统】其实是一个东西

      1. 矩阵 符合加法/乘法性 所以其为一个线性系统
      2. 联立方程式 符合加法/乘法性 所以其为一个线性系统

      因为

      矩阵=线性系统,

      联立方程=线性系统,

      所以

      矩阵=联立方程。

      lec5: 两种方式理解 matrix-vector product

      • 可以按看待matrix,正常看法;
      • 可以按看待matrix,把整个matrix看成一个row向量;

      联立方程式 ---> 按列看待matrix的 product of matrix and vector ---> 联立方程式可以写成 Product of matrix and vector. 因为之前说过任何一个线性系统都可以写成联立方程式,那么矩阵就是一个线性系统。

      \(Ax=b\) 中的 \(A\) 就是一个线性系统

  3. Sep 2018
    1. 从逻辑斯回归到神经网络

      logistic regression 有非常严格的使用限制,线性可分。

      logistic regression 虽然可以理解为对分布的近似,但其本质仍然是一个直线分界线,因为他也是要求出 w 和 b,使用的函数集仍然是 wx+b = y , 也就是要求数据集必须是线性可分的

      如果遇到线性不可分的数据集,可以考虑采用特征转换。但如何做特征转换呢?

      一个很好的方法是cascading logistic regression models --- 把很多个 logistic regression 接起来,就可以做到这件事情。这个东西有点像是在解释 NN,以及为什么他可以做到自动化 feature transform, 然后做分类。

      李老师由此引入 "Neuron" 概念:

      每一个逻辑斯模型的输入可以是其他逻辑斯模型的输出。

      他们可以串在一起形成一个网络,这个网络就叫做神经网络。

    2. 多分类任务

      主要就是利用 softmax:

      第一步:计算 score

      z1 = w1 * x + b1

      z2 = w2 * x + b2

      z3 = w3 * x + b3

      第二步:对 score 做 exponential normalization

      \(y_{1} = \frac{e^{z_{1}}}{\sum^3_{j=1}e^{z_{j}}}\)

      \(y_{2} = \frac{e^{z_{2}}}{\sum^3_{j=1}e^{z_{j}}}\)

      \(y_{3} = \frac{e^{z_{3}}}{\sum^3_{j=1}e^{z_{j}}}\)

      第三步:以 yi 表示 P(Ci | x) --- x 属于第i个分类的预测概率

      \(y_i = P(C_i | x)\)

      为什么叫做 softmax 呢? exponential 函数会让大小值之间的差距变的更大,换言之他会强化最大值。

    3. 生成模型 vs. 判别模型

      总体来看,如果样本足够多,判别模型的正确率高于生成模型的正确率。

      生成模型和判别模型最大的区别在于,生成模型预先假设了很多东西,比如预先假设数据来自高斯,伯努利,符合朴素贝叶斯等等,相当于预先假设了 Hypothesis 函数集,只有在此基础上才有可能求出这个概率分布的参数。

      生成模型,进行了大量脑补。脑补听起来并不是一件好事,但是当你的数据量太小的时候,则必须要求你的模型具备一定的脑补能力。

      判别模型非常依赖样本,他就是很传统,死板,而生成模型比较有想象力,可以“想象”出不存在于当前样本集中的样本,所以他不那么依赖样本。

      关于 想象出不能存在于当前样本集的样本 ,见本课程 40:00 老师举例。

      生成模型在如下情形比判别模型好:

      1. 数据量较小时。
      2. 数据是noisy,标签存在noisy。
      3. 先验概率和类别相关的概率可以统计自不同的来源。

      释疑第三条优点:老师举例,在语音辨识问题中,语音辨识部分虽然是 DNN --- 一个判别模型,但其整体确实一个生成模型,DNN 只是其中一块而已。为什么会这样呢?因为你还是要去算一个先验概率 --- 某一句话被说出来的概率,而获得这个概率并不需要样本一定是声音,只要去网络上爬很多文字对话,就可以估算出这个概率。只有 类别相关的概率 才需要声音和文字pair,才需要判别模型 --- DNN 出马。