还记得两个变量求极致么,有这么一个结论,如果你已知有个最值,那么你可以放心的把唯一的极值当作最值。当然要注意边界条件。比方开阔号那就可以直接用,闭括号就不行,最小值可能出现在边际上。那么将系数theta(就是之前说的d)看成是一个向量,函数对于theta为自变量的最小值就是对他没一个元素求偏导数,并且让他等于零。
octave语句:pinv(X‘*X)*X‘*Y,是计算theta向量的多维函数。这里又涉及到线代的知识,原始公式就是X*theta’=Y X是矩阵,是m*n+1的矩阵,theta是n+1向量。y是dimentional=m向量。至于为什么左右两边同乘X‘再变形,X’表示转置,我想是因为这样可以出来一个方阵,也就可以求解逆矩阵了。
既然涉及到了逆矩阵,也就是pinv,那么就有可逆与否的问题,有两种可能会使其为零,一个是成比例的feature,比方同时用平米和英尺表示房子大小。还有一个就是有太多feature,而样本数量又不多,m<n,但是乘出来又继承了n,变成了n+1)*(n+1矩阵,那么秩一定是小于n+1的。如果你出现了不可逆,那么你就要检查这两点。使之可逆。但是他说,不可逆很少,而且octave也能处理不可逆。所以这不需要太担心。
数学符号表示起来太不方便了,如果没有实现看过原始视频,看这种公式比较费劲,怎么拯救我的笔记,要不以后我只做手写笔记好了。
鉴于我固执的认为feature scaling的除数是取值范围,而不是现有的feature最大值减去最小值,并且如果feature之间有代数关系,比方说x2=x1^2,那么就应该将x2想象成x1feature scaling的变量替换。比方t=(x1-d)/h那么t^2=((x1-d)/h)^2来保证代数平方关系,毕竟x2来源于x1但是规则并非这样。不论如何,直接用现有feature取值求max-min,然后不论feature之间什么关系,直接处理就当没关系。