八度绘图一步一步(!)成本函数和梯度下降

时间:2015-09-25 14:21:10

标签: plot octave

为Andrew Ng的Cousera课程"机器学习"我开始使用 Octave

对于线性回归分配(一个变量),提供了一个代码,用于创建原始数据与拟合线的散点图,弓形成本函数 J( theta_0, theta_1 ) 和一个轮廓情节。

但是:所有这些图只提供最终结果。

我希望看到一步一步的情节发展,以便更好地了解正在发生的事情。循序渐进的意思是:创建一个数字,添加第一个值,然后是第二个,然后是第三个,等到达到最终结果。

(1)一个讲座视频的截图:是否有可能将其显示出来,添加粉红色然后是绿色,然后是红色等等?

Screenshot from one lecture video: Is it possible to visualise this, i.e. adding the pink, then the green dot, then red dot, etc dot?

(2.1)搜索正确参数的第一步,梯度下降步骤1

(2.2)搜索正确参数的最后一步,梯度下降:包括所有单步

(2) First step in searching for the correct parameters, i.e. gradient Descent Step 1

enter image description here

注意1:关于屏幕截图散点图+等值线图:在散点图中总是有一行可见,但它在步骤之间变化。在等高线图中,一个点后面出现。

注2:这不是作业请求! 我只想学习Octave 中的绘图,并希望将其与学习梯度下降的方式结合起来"真的"的工作原理。

感谢每一位提供一些代码帮助的人!

1 个答案:

答案 0 :(得分:2)

使用hold all(或仅hold on,但颜色增量不会自动生成) ColorOrder是一个轴属性,可以作为后续图形轴的默认值,部分描述为here

# start with a blank page
clf

# the curve (full line, blue)
x = -5:0.1:10;
y = x.^2;
plot(x, y, '-b')

# successive colors for the points
N_colors = 6;
colororder_map = cool(N_colors);
set(gcf, 'defaultaxesColorOrder', colororder_map)

# this will add the following plots, instead of replacing the old one
hold all
# note: "hold on" does the same, except the colors are not incremented

# the progression
x_p = [10, 7, 3, 1, 0];
y_p = x_p .^2;

# plot the progression
for cpt = 1:numel(x_p)
    x_current = x_p(cpt);
    y_current = y_p(cpt);
    plot(x_current, y_current, 'o')
    pause
endfor

sample plot