一:回顾一下子奥:
上节课的classification用的是根据宝可梦的属性值预测其类别,分类问题不能被视为回归问题,离决策边界远的点会对结果造成误差,因此采用三步法,1.假设模型 2.利用到贝叶斯公式计算P(C1|x),即P(C1)、P(C2)、P(x|C1)、P(x|C2)这四个值,P(C1)、P(C2)容易估计,要估计P(x|C1)、P(x|C2),用高斯分布产生,用最大似然的方法,使得似然函数最大的参数(μ∗,∑∗),分别是训练数据中该类数据的平均值和协方差矩阵,求得P(C1|x),测试集正确率低,改进模型,两类高斯分布的∑ 不同的话,数据太大,容易过拟合,让相等,准确度大大提高。数学推导出,分类器有先行边界。
二:logistic Regression
1.上节课学P(C1|x)=σ(z)=σ(w⋅x+b)
w,b取任意值就得到不同的function set
这是logistic Regression
step1时,logistic Regression 和Linear Regression在step 1(选择model)的区别是,output,由于logistic Regression做了那个啥,输出限制在0-1之间。
2.step2 看看Function的好坏。
最好的w和b就是最有可能产生那组参数的(最大化几率的function)
也就是最大化似然函数,
y^=1 表示C1,用y^=0 表示C2。
最大化似然函数即是最小化交叉熵。(交叉熵代表两个分布有多接近,若两个分布完全一样则交叉熵等于0。)
这样就得到了logistic Regression 和Linear Regression在step 2时的区别:一会给你讲,为啥用复杂的交叉熵而不用差平方。
- step3 找到最好的function,用梯度下降。
参数更新公式:
需要自己调的:学习率
来自数据的:xi
对结果直观的理解是:模型结果与目标差距越大,参数更新幅度越大。
step3时,logistic Regression 和Linear Regression用梯度下降更新参数方式相同
三:Logistic Regression损失函数的选取:交叉熵损失
他讲了一下,为啥Logistic Regression的损失函数用交叉熵损失而不用平方误差损失
直接看图把:
距离目标远时,微分很大,参数更新大
相反用square Error 目标远,微分很小,就会卡,而且微分小时不知道是距离目标远还是近。
四:Discriminative VS Generative
Discriminative 就是Logistic Regression
Generative就是前面的那个随机高斯分布
相同:模型相同,方法不同
不同:判别方法,通过梯度下降,直接找到w,b。
生成方法,通过假设估计N1,N2,μ1,μ2,∑ 来得到w,b 。
结论:同样的模型,同样的训练数据,采用两种方法所得结果(w,b)不同。因为生成方法对概率分布做了假设。
Discriminative model 常比Generative model表现更好
给你举个例子:
通过这张图看一下完整的贝斯算法过程。
这个实验是说,直观来讲,明显是Class 1,可是呢生成算法小于0.5
但是有时候生成模型在一些情况下相对判别模型是有优势的:
1、训练数据较少时。判别模型的表现受数据量影响较大,而生成模型受数据量影响较小。
2、label有噪声时。生成模型的假设(“脑补”)反而可以把数据中的问题忽视掉。
3、判别模型直接求后验概率,而生成模型将后验概率拆成先验和似然,而先验和似然可能来自不同来源。以语音识别(生成模型)为例,DNN只是其中一部分,还需要从大量文本(不需要语音)中计算一句话说出来的先验概率。
四:Multi-class Classification
重点:softmax
注意output 在0-1之间 和等于1
y海特设为:
涉及到交叉熵的计算
最小化交叉熵,等价于最大化似然函数,注意那个负号
logistics的缺点:对于线性不可分的数据没有办法分类,此时考虑在Logistic回归建模之前对特征进行转化,线性不可分的数据在特征转化后可以很好地被红色直线区分开。
解决方法:做feature transformation. (Not always easy to find a good transformation.)
希望机器自己找到 transformation:把多个Logistic Regression接起来。
一个Logistic Regression的input可以是其它Logistic Regression的output;一个Logistic Regression的output可以是其它Logistic Regression的input。这样,我们就得到了Neural Network,其中每个Logistic Regression叫做一个Neuron.