简单的来说就是通过求当前点的导数得到下一个点.用到的性质是导数值等于该点切线和横轴夹角的正切值.
收敛速度:quadratic conversions 二次收敛
θ为矩阵时
每次迭代都需要重新计算H -> nxn 特征较多时计算量比较大
极大似然估计可以推导:
高斯分布 =>最小二乘法
伯努利分布 => logistic回归
p(y;η) = b(y)exp(ηTT(y) - a(η))
被称为自然参数(natural parameter)或者典范参数(canonical parameter); 实数或者向量
T(y)是充分统计量(sufficient statistic)(对于我们考虑的分布来说,通常T(y)=y);
给定T,a,b,通过改变参数 η 得到不同的分布.
为了导出GLM,作三个假设:
(1) y|x;θ ~ ExponentialFamily(η)
(2)给定x,我们的目标是预测T(y)的预期值. 在大部分例子中,我们有T(y)=y,因此意味着我们通过学习得到的假设满足 h(x) = E[y|x] (这个假设对logistic回归和线性回归都成立)
(3)自然参数和输入变量是线性相关的,也就是说η =θTx (如果自然参数是向量,则ηi =θiTx)
指示函数
1{True} = 1, 1{False} = 0
softmax回归(softmax regression).是logistic回归的推广
θ1…θk-1 是k-1个n+1的参数向量
判别学习算法:
生成学习算法:
例:在上例中,假定一个肿瘤情况y为恶性和良性,生成模型会对该条件下的肿瘤症状x的概率分布进行建模
对p(x|y)和p(y)建模后,根据贝叶斯公式p(y|x) = p(xy)/p(x) = p(x|y)p(y)/p(x),可以计算:p(y=1|x) = p(x|y=1)p(y=1)/p(x),其中,p(x) = p(x|y=0)p(y=0) + p(x|y=1)p(y=1)
二元正态分布的概率密度函数改写成矩阵-向量形式 http://blog.csdn.net/neu_chenguangq/article/details/46581987
如图像:
叫做joint likelihood
而之前学习的
叫做 conditional likelihood
μ0分子为y=0时所有x的和,分母为y=0的个数,μ0为所有负样本的平均值
μ1同理
P(y=0) = P(y=1)
argmax使结果最大的参数的值(使y最大的x的值)
左面P(x|y=0) 右面P(x|y=1)
最后计算P(y=1|x)
P(x) = P(x|y=0)P(y=0) + P(x|y=1)P(y=1)
高斯判别分析假设更强
如果x|y服从高斯分布,使用高斯判别效果更好
如果数据服从柏松分布,使用logistic回归也会得到较好的结果,但是使用高斯判别则不会
高斯判别的优点:使用数据少(因为数据不是精确符合高斯分布,而是近似高斯分布)
上面的公式推导
x | y=1 ExpFamily(η1)
x | y=0 ExpFamily(η0)
=> P(y = 1|x) is logistic
logistic回归建模的鲁棒性
做一个很强的假设,对于给定的y,x_i是条件独立的(conditionally independent)
很显然这个假设是不正确的,因为一个词出现会影响到另一个词(不是条件独立的),但是朴素贝叶斯仍然有效,在对文本文件(邮件、网页)进行分类时
模型参数包括:
Φi|y=1 = p(xi=1|y=1), Φi|y=0 = p(xi=1|y=0), and Φy = p(y=1)
联合似然性(joint likelihood)为:
得到最大似然估计值:
Φj|y = 1
y = 1 是垃圾邮件,分子表示垃圾邮件中包含单词j的邮件数量,分母表示垃圾邮件数量,垃圾邮件中出现j的概率
如何选取x中的词(生成词典),可以遍历邮件里所有词,也可以只取出现次数大于3的
朴素贝叶斯:求P(x|y) P(y),而P(y)=Φy, P(x|y)为假设,服从伯努利分布,xi取值0或1
如果出现一个在训练集合从未出现的词,概率为0,得到的最终的概率是0/(0+0),在过去几个月的邮件(训练数据)未出现的词,概率为0,统计的意义上是不科学的
为了优化,使用Laplace smothing(Laplace平滑)