logistic regression
逻辑回归和线性回归一样,都是画一条线,区别是选的loss function不一样
逻辑回归是交叉熵 线性回归是square error
如下图就是逻辑回归
逻辑回归和线性回归的区别?
1:逻辑回归的z加了sigmod的激活函数,output就是概率,在0-1之间
接之前的GM
Z等于这两个P(XC1)/P(XC2)的对数,要输出的概率刚好是sigmoid函数的输出,自变量为z
如何来衡量这个函数的好坏呢?
可以利用函数L=各个training data的output之积,对于二分类,class 1为x,则属于class 2的概率为1-x
要让函数L保持最大
接下来就是数学变形了
加一个单调递减函数-ln,把原来求最大变为现在求最小
接下来,做一个假设
如果属于class1,y=1,属于class 2,y=0
那很巧妙的构建函数
咋说呢y*f(y)+(1-y)*f(1-y),其中y就代表属于class1,1-y代表属于class 2,如果y属于class 1,那y=1,后边那一项为0,相反,如果y=0,前边那一项为0
为什么这样做呢?
主要是好归纳成一个表达式
在衡量函数好坏的步骤的区别
如何求最好的函数?
利用梯度下降啊,对L求wi的偏导数,y是个常数,直接求f(x)的偏导数
称为交叉熵
得到这个
其中,右边那一项为:
因为:
因为再来求左边那一项
把上边算出来的结果代入公式中,最终的结果就是一个加权平均
梯度下降为:
是预期值与现实值的比较
代表training data的输入
是learning rate
gradient descent的公式一模一样
为什么不像linear regression用square error?
如果logistic regression用square error,损失函数为:
求梯度后为:,不论是那一个类,梯度总是0
的代表是logistic regression,求w和b的话,直接求
的代表是Generator model,利用公式来求w和b,
同一个function set,同一个训练数据,假设不一样(discrimination是伯努利分布,generator假设是高斯分布),function也是不一样的
二者的结果:discriminator的结果常常更准确
举一个例子
test data如下:
先利用朴素贝叶斯来算一下概率
当training data很少,generator效果更好
discriminatiive受数据的影响较大
Multi-class classifier
softmax:放大max
相当于每一个class的w和b,已经给定
其实这里的w是一个三维vector。b为常数
input 一个x,经过计算,并通过softmax放大后,得到x属于各个类的概率
cross entropy:y(实际值),y^(预期值),-就是交叉熵(预期值乘以实际值的对数,累积求和)
那我们如何计算呢?
有很大的局限性
对这样的四个点,利用logistics regression分不出来,因为logistics regression是条直线
进行特征的转换:feature transformation
先feature regression,再分类
不断的调整参数,然后把弄成能分开的样子
手推公式