*【gradient descent】
{
看完所有example,才进行update(初始化,计算总的loss,更新)
*【adagrad】
调整learning rate的策略。通过对一阶微分平方的root mean来体现二阶微分的大小对步长的影响。
*【stochastic】
只考虑一个example(一行),计算一个example的loss
在update W的时候,只考虑这一个example的微分,进行更新
即初始化,一个example的loss,更新
*【feature scaling】
即归一化
椭圆的learning rate需要更多次update
正圆则update更容易
减去均值后除以标准差
*【math】
泰勒series
*【limitation】
因为我们只根据微分值为0,为loss最小。
}
*【problem】
太过正确的点,离群点,会影响liner classification的结果,如何解决?:perceptron,svm,logistic
能和逻辑斯蒂回归进行比较的就是牛逼闪闪的线性SVM了。关于这部分请移步这里。大概意思是:直接用线性回归做分类因为考虑到了所有样本点到分类决策面的距离,所以在两类数据分布不均匀的时候将导致误差非常大;逻辑斯蒂回归回归和SVM克服了这个缺点,前者采用将所有数据采用sigmod函数进行了非线性映射,使得远离分类决策面的数据作用减弱;后者则直接去掉了远离分类决策面的数据,只考虑支持向量的影响。
*【classification】
{
二分类与多分类不同
recap: 三step,1function set(这里为P(C1 | x))2loss3calculate the parameters to find the best function
*【generative model】
1求分布参数:training input 和 class(C1,C2)=>假设class服从nD-Gaussian,求得每个class的高斯分布(两个未知数,求极大似然最大)
2后验概率做分类器:计算后验概率>0.5则属于C1否则C2
*【modified】
1不同的class共享一样的(高斯分布)方差=>减少模型的参数避免overfitting:因为方差和每个class的feature size平方成正比
2这个时候怎么计算极大似然?每个class的极大似然乘起来
通过数学,得到μ还是原来每个class的μ,covariance则为每个类的covariance的加权平均。
3按照修正后的分类则boundary还是线性,因此修正后归属于liner classification
*【math】
class服从nD-Gaussian,且从input和class得到先验概率,且修正即covariance取一样的值=>推导出后验概率(引入z表示后验概率),z推倒后可简化为Wx+b,W是关于μ和covariance的vector,b为关于μ和covariance的常数,后验则可表示为P(C1 | x)=σ(Wx+b),因此boundary本质是线性的。
*【如何选择参数probability distribution】(需要理解)
1比如,每个feature服从1D-Gaussian,且feature视为独立,将概率连×。(与logistic不同,logistic是每个class服从nD-Gaussian,feature相关)
2比如,每个feature服从伯努利分布即取值0或1,且feature视为独立,将概率连×,则model即为naive bayes classifier。
*【discriminative model 即 logistic regression】
1由math得,我们的目标是W与b,那么既然是线性分类器,不可以直接去找一个vector和bias而不必计算μ、covariance吗?
2 1思路下的goodness of function:由training input和class所有C1后验概率与C2的(1-后验)相乘得L(W,b),求L(W,b)最大值时的W与b(这里的后验概率即为P(C1 | x)=σ(Wx+b),未知数W与b)
3如何求最大?1转为对数函数loss = -lnL(W,b),则求其最小值。2代入y-hat=1or0,得发现loss为两个伯努利分布的cross entropy的和(=1 y-hat和σ(Wx+b); =0 (1-y-hat)和(1-σ(Wx+b)))
*【logistic regression对比liner regression】
1gradient descent 一样,不一样之处只有y-hat(前者为0、1,后者为实数)
2为什么取cross entropy不取square error?
若logistic 也取square error作为loss,则在偏微分处,y-hat取1,后验概率也取1(0)时,误差大(小),但偏微分却为0(满足),很平坦,那么gradient descent变化非常小,那么则非常慢,卡住。如果把learning rate设大一些,但导致在误差小的地方learning过大=>无法判断偏微分为0时到底是距离目标点远还是近。
*【discriminative对比generative】
1前者无假设,后者对probability distribution有假设。前者通过Wx+b求后验,后者通过假设的先验分布求后验概率。
因为无论是什么probability distribution,math推导过后都会得到P(C1 | x)=σ(Wx+b)这样的形式。
2为什么会通常认为discriminative好?
看generative误分类例子。
模型假设的概率分布可能不符合实际。
3generative好处:1容易找到best function时候的各参数(即在假定高斯分布下容易找到极大似然最大时候的μ和covariance)。2当training data很少或3noise多,需要假设概率模型。4将prior和class-dependent probabilities 拆开,可通过不同sources来估测。
*【多分类】
1将(Wx+b)结果通过softmax来normalization。(math推导得关于z的后验概率公式=>softmax),softmax的二分类即为logistic regression
2再进行cross entropy求loss即max likelihood(和logistic regression一样)
*【logistic regression局限】
解决: feature transformation(需要领域知识)
或者没有知识->用logistic regression来做feature transformation(即 dl)
}