一、sigmoid函数及其求导
Z=ωT+b
- 什么时候视为复合函数求导?
一个函数是不是复合函数是你的主观判断,就连一次函数y=ax+b你都可以判断成复合函数即y=u+b,u=a*x,你判断这些的标志是你知不知道这个函数怎么求导;
当然复合函数要和导数的四则运算分开(这句话的意思:函数是复合函数,你就用复合函数的求导法则.而如果函数是和,差,积,商的形式,你就用四则运算.
比如我给你y=x^2+2x+1,明显是y=x^2,y=2x,y=1三个函数之和,所以你用四则运算.
但我给你y=(x+1)2,明显是y=u2,u=x+1两个函数复合得到,所以你用复合函数求导法则.),当你能把y写成u的函数(此时y的式子里面不应该再有x)那么就可以看成复合函数
举个例子吧:(以下的exp表示以e为底数的指数函数)
y=exp(sin(a*x)+c)这个函数,当你令u=sin(a*x)+c之后你发现y=exp(u)里面再也没有X了,也就是说你成功把它转换成复合函数的形式了
y'=dy/dx=(dy/du)*(du/dx)=(这是y对u求导,即y=exp(u)这个式子求导)*(u对x求导)
=(exp(u)) * (a*cos(a*x))
就是这样喵,y'的式子里面含有u和x怎么办,把u直接带入u=sin(a*x)+c就行了
你如果觉得直接u对x求导你算不出来,那么令v=a*x一般也可以解出来,(如果还是有困难就令v=sin(a*x),w=a*x)
需不需要,需要多少个中间变量就要看你自己的能力了(能力越强越不需要中间变量)
如果不知道怎么令u那么就在y=f(x)式子里面(或者化简过后的式子)里面找就行了
(说明:
不要将sigmoid函数求导时看成是复合函数,而是看成导数的商运算:
在无法利用导数的加减乘除法的情况下,才不得不用复合函数的情况下,才看成复合函数求导;
另外不要把单纯的x的n次或单纯的n的x次看成是复合函数
)
即σ′(z)=σ(z)(1−σ(z))
在σ(z)=0或σ(z)=1时,σ′(z)=0;
根据极值条件:因为σ(z)是单调递增函数σ(z)=0有最小极为0,而σ(z)=1时有最大值1
二、逻辑回归成本函数意义:
Loss function的原则和目的就是要衡量预测输出y^与真实样本输出y的接近程度。平方错误其实也可以,只是它是non-convex的,不利于使用梯度下降算法来进行全局优化。因此,我们可以构建另外一种Loss function,且是convex的,如下所示:
我们来分析一下这个Loss function,它是衡量错误大小的,Loss function越小越好。
三、单个样本逻辑回归的求导过程:
四、如果有m个样本,其Cost function表达式如下:
这样,每次迭代中w和b的梯度有m个训练样本计算平均值得到。其算法流程图如下所示:
J=0; dw1=0; dw2=0; db=0;
for i = 1 to m
z(i) = wx(i)+b;
a(i) = sigmoid(z(i));
J += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
dz(i) = a(i)-y(i);
dw1 += x1(i)dz(i);
dw2 += x2(i)dz(i);
db += dz(i);
J /= m;
dw1 /= m;
dw2 /= m;
db /= m;
经过每次迭代后,根据梯度下降算法,w和b都进行更新:
这样经过n次迭代后,整个梯度下降算法就完成了。
(参考:
【机器学习】【逻辑回归】Logistic函数/Sigmoid函数的详细公式推导_logistic函数求导_CV_ML_DP的博客-CSDN博客
吴恩达《神经网络与深度学习》课程笔记(2)– 神经网络基础之逻辑回归-红色石头的个人博客
)