Regression
Gradient Descent
learning rate的取值很重要,一般会绘制右图,横轴为迭代次数,纵轴为loss。从图中可以看到learning rate太小迭代的速度太慢,太大可能無法收斂。如何加快训练速度? Tips1:Adagrad—选择合适的步伐 学习率除以前面几次一阶导平方和的均值
η
t
σ
t
=
η
t
+
1
?
t
+
1
∑
i
=
0
t
(
g
i
)
2
=
η
∑
i
=
0
t
(
g
i
)
2
\frac{\eta^t}{\sigma^t} =\frac{\eta}{\sqrt{\smash[b]{t+1}}}*\frac{\sqrt{\smash[b]{t+1}}}{\sqrt{\smash[b]{\displaystyle\sum_{i=0}^t(g^i)^2}}}=\frac{\eta}{\sqrt{\displaystyle\sum_{i=0}^t(g^i)^2}}
σtηt?=t+1
?η??i=0∑t?(gi)2
?t+1
??=i=0∑t?(gi)2
?η? Adagrad中“梯度越大,step不一定越大”,最好的步伐是
∣
一
次
微
分
∣
二
次
微
分
\frac{|一次微分|}{二次微分}
二次微分∣一次微分∣?,可用这个比值衡量几个点距离极值点的远近。
g
t
g^t
gt是一次微分,
∑
i
=
0
t
(
g
i
)
2
\sqrt{\displaystyle\sum_{i=0}^t(g^i)^2}
i=0∑t?(gi)2
?反应了二次微分的大小 Tips2:SGD:随机梯度下降 随机选一个样本迭代参数 Tips3:特征放缩(Feature Scaling)归一化参数 从下图可以看出,如果没做归一化,w2小小的变化,loss就下降了一圈,而w1只能走很大一步,loss才下降一圈。
Gradient Descent theory
梯度下降可以看作是损失函数的一阶近似,近似的前提是图中的红色圆圈足够小 如果对一阶展开不满意,可以尝试二阶展开如Newton’s method,但是二阶所需要的计算量很大,因此一般都用一阶。
Classification
Q:能否将分类问题直接当作回归问题来解?(即分类问题直接用回归的损失函数) A: 1、容易受到异常值的影响,如下右图中右下角有一堆离得非常远的点,其实我们可以看出绿色线是分类比较好的,但是因为要使得均方误差减少,故绿色线会变成紫色线。 2、多分类的时候,把类别1变成数值1,类别2变成数值2,类别3变成数值3……暗示类别1与类别2比较接近,与类别3比较远,实际上并无此关系。
那应该如何做呢? 一个替代方案是: 以二分类,将function中内嵌一个函数g(x),如果大于0,就认识是类别1,否则认为是类别2。损失函数的定义就是,如果选中某个funciton f,在训练集上预测错误的次数。当然希望错误次数越小越好。但是这样的损失函数没办法解,这种定义没办法微分。
two boxes
将上面两个盒子换成两个类别: 若知道红色方框的值,就可以计算出给一个x,它是属于哪个类型的,P(C1|x) 和 P(C2x) ,谁大就属于谁。接下来就需要从训练集中估测红色方框中的值
1、其中
P
(
x
)
P(x)
P(x)为全概率公式,
P
(
C
1
∣
x
)
P(C1|x)
P(C1∣x)为贝叶斯公式) 2、这一套想法叫做 Generative Model。因为有了这个model,就可以生成一个x,可以计算某个x出现的几率,知道了x的分布,就可以自己产生x
Prior 先验
知道了P(C1)和P(C2),下面求解
P
(
x
∣
C
1
)
P(x|C1)
P(x∣C1): 这里假设这79点是从高斯分布(Gaussian distribution)中得到的,现在需要从这79个点找出符合的那个高斯分布。
高斯分布
简单点可以把高斯分布当作一个function,输入就是一个向量x ,输出就是选中 x的概率(实际上高斯分布不等于概率,只是和概率成正比,这里简单说成概率)。function由期望 μ 和协方差矩阵 Σ 决定。下图表示相同的 μ , Σ 不同,概率分布的最高点是一样的,但是离散度是不一样的;不同的 μ , 相同的Σ ,则概率分布的最高点的位置是不同的 假设通过79个点估测出了期望 μ 和协方差矩阵 Σ。期望是图中的黄色点,协方差矩阵是红色的范围。现在给一个不在79个点之内的新点,用刚才估测出的期望和协方差矩阵写出高斯分布的function
f
μ
,
Σ
(
x
)
f_{μ,Σ}(x)
fμ,Σ?(x),然后把x带进去,计算出被挑选出来的概率
求解μ,Σ:Maximum Likelihood(最大似然估计)
求出
μ
1
μ_{1}
μ1?,
Σ
1
Σ_{1}
Σ1?,
μ
2
μ_{2}
μ2?,
Σ
2
Σ_{2}
Σ2?可以进行分类了。
更新model
如果每个类别
i
i
i都有一个协方差矩阵Σ,一方面,variance过大,容易过拟合,另一方面,共享协方差矩阵可以减少参数个数。共用的
Σ
=
79
140
Σ
1
+
61
140
Σ
2
Σ=\frac{79}{140}Σ_{1} +\frac{61}{140}Σ_{2}
Σ=14079?Σ1?+14061?Σ2? 右图新的结果,分类的boundary是线性的,所以也将这种分类叫做 linear model。如果考虑所有的属性,发现正确率提高到了73% 总结:
Posterior Probability
通过对后验概率的数学变形,推导出了sigmod函数。并且可以推出
z
=
w
?
x
+
b
z=w?x+b
z=w?x+b
|