我对Logistic回归的全部理解
Q1:logistic中为什么要用sigmod函数?
A1:情境是这样的:
已知输入x,我们想要的预测值yhat=P(y=1|x),即给定x的条件下,y等于1的概率。
参数是w, b
输出:yhat=wx+b
这个输出就是线性回归了,但线性回归不是一个好的二分类做法,因为我们希望yhat是给定x条件下y等于1的概率,既然是概率应该是在[0,1]之间的。而线性回归的wx+b算出来可能比1大的多,可能是负值。所以我们用sigmoid函数作用在线性回归上,即输出是sigmoid(wx+b)
以上所述可参见如下图:
Q2:
Logistic回归:
1. RELU函数是Sigmoid函数在算法上的改进,因为sigmoid函数当自变量非常大的时候,函数值接近于1,梯度近于0;当自变量非常小的时候,函数值接近于0,梯度近于0;而梯度近于0对梯度下降法是非常不利的,会导致梯度下降的非常慢。
2.RELU函数的成因:
ReLU 它的数学表达式如下:
很显然,输入信号 <0 时,输出都是0, >0 的情况下,输出等于输入。
当x>0时,梯度是1,可以让梯度下降法快速收敛
3.Logistic推导:
y_pred=6(wTx+b)
Logistic的损失函数是:
L(y_pred,y)=-(y*log(y_pred)+(1-y)log(1-y_pred))
用以下两个极端的情况理解为什么L(y_pred,y)能够起作用:
(1).当y=1时,L(y_pred,y)=-log(y_pred) 。我们想让L越小,这意味着log(y_pred)越大,y_pred越大,y_pred不会==1(因为sigmoid函数),会无限接近于1
(2).当y=0时,L=-(1-y)log(1-y_pred)。我们想让L越小,这意味着log(1-y_pred)越大,意味着y_pred越小,y_pred不会==0(因为sigmoid函数),会无限接近于0
损失函数是对单个样本衡量预测值与真实值之间的差距。
成本函数 Cost Function:定义为对于m个样本而言就是:(m个样本的损失函数的和)/m
成本函数衡量了w和b在训练集上 的效果
详情如下:
Logistic函数不用(y_pred-y)的平方作为损失函数是因为调优的时候会发现变成了非凸优化问题
4.“凸优化”意味着:能用梯度下降法找到一个全局最优解;“非凸优化”意味着:用梯度下降法找到的可能是局部最优解,不是全局最优解,因为下降下降可能掉到一个相对较低的坑里(局部最优解),但不是最低的坑里(全局最优解)。
5.梯度下降法(恍然大明白):
上图假设w是一个实数(对应一维的x)
为什么梯度下降法能收敛到全局最优解?答案如下图