Step1.Function Set
Step2.Goodness of a Function
Step3.Find the best function
Step1:我们这里有一个Logistic Regression作为Function。
Step2:衡量我们程式的好坏。
假设我们有一组训练集(Xn,Ci),这组训练集是根据我们这个几率函数产生的,那给我们一组w和b,我们就可以得到它们产生训练集的几率,最好的参数w和b就是使L(w,b)的最大时相对的w和b。为了使计算简单,我们等同于去求使-lnL(w,b)最小时相对的w和b,这里我们再做一次符号上的变换,y=1表示x属于类别1,y0表示x属于类别0。
这里用到了H(p,q)交叉熵,代表了两个分布的相似度,如果两个分布一致,则H=0。
Step3:求解最优的程式。
- 比较Logistic Regression和Linear Regression:
- Logistic Regression中加上平方差会出现什么问题?
这表示离目标很近,微分是0,没有问题,但如果离目标很远,微分还是0,出错。
我们把交叉熵和平方差total loss的结果作图,如下:
discriminative中我们没有进行任何假设,直接求解,而generative中我们假设他们服从高斯分布、伯努利分布等等,所以两个方法求出来的参数w和b不一样。
比较这两种方法求出来的结果,我们发现discriminative的结果要更好一点。
为什呢么?generative方法实际做了某种假设,假设我们的data服从某种几率模型。
但有的时候generative模型会优于discriminative模型:1.辨别模型完全依从于数据,所以它的error会随着数据集的增大逐渐减小,而生成模型不完全依从于数据,它有一套自己的假设,所以它的error随着数据集的增大不会明显变化,在数据集比较小的时候,我们会发现生成模型优于辨别模型。2.如果我们的data有比较大的噪声,那我们的label就有可能存在问题,生成模型在进行假设时反倒有可能弥补了这种错误。
Multi-class Classification
softmax使得辨识度更高。
logistic regression有一定的局限性:
对于下面这样的data,我们无法在二维上得到很好的结果。
因为logistic regression两个class的界限就是一条直线,无论我们怎样话,都无法在这个数据集上划分出来:
特征转化:通过一定的方法让我们的feature可以被处理(启发性和临时性的东西),例如:
这样我们就可能将原本的data进行分类,问题是如何让机器自动进行特征转化?
(梦开始的地方…不是)