在学习逻辑回归的过程中,通过3D图像可以直接观察损失函数的收敛速度,对自行确定学习速率提供参考
损失函数公式:
Octave程序如下:
tx = linspace(100,-30,1000); %θ和X看做一个共同参数
ty = round(unifrnd(0,1,1,1000));% y的值仅仅为0或1,随机生成1000个
m=length(tx);
[xx, yy] = meshgrid (tx, ty);
tz = -1 *( yy* log( sigmoid(xx) ) + (1 - yy ) * log( (1 - sigmoid(xx)) ) )/m; %h()就是sigmoid(),tz就是J(θ)
mesh (tx, ty, tz);
xlabel ("θX");
ylabel ("y");
zlabel ("J");
从图中可以看到,J的收敛速度在开始比较大,后面越来越慢。对于学习速率的选择开始要小,后面可以适度变大
原文地址:http://wuliguo.blog.51cto.com/252985/1942046