您现在的位置是:网站首页> 内容页

Supervised learning demo

  • 旋乐吧
  • 2019-10-03
  • 39人已阅读
简介监督学习案例规范假设函数:使用h(hypothesis,假设)表示输入(inputvalue):x输出(outputvalue):y参数(Parameters):(het

监督学习案例

规范

假设函数: 使用h(hypothesis, 假设)表示输入(input value): x输出(output value): y参数(Parameters): (heta)

房价的Size和Price的预测

建立一个线性模型: (h_heta(x) = heta_0 + heta_1x)要让我们fit的model与y差异最小, 称之为最小化(minimize)在这个案例中使用[J(heta_0, heta_1) = {1over2m}sum_{i = 0}^m(hheta(x^{(i)}) - y^{(i)})^2]上面的就是我们的代价函数(cost function), 因为我们有让得到的和除以了2m, 所以我们的到函数也称之为平均误差函数(squared error function), 注意: cost function的自变量时theta_0和theta_1, 不在是我们熟悉的x了[{minimize_{heta_0heta_1}} J(heta_0, heta_1)]表示求出一个(heta_0)(heta_1)使得(J(heta_0, heta_1))的值最小, 我们称之为最小化的过程, 上面的这个表达式就是我们的优化目标(optimization objective), 也就是我们的目标函数对于线性回归模型来说, 它的(J(heta_0, heta_1))目标函数是一个凸函数(没有局部最优点, 只有一个全局的最优点), 在二维上是抛物线, 在三维上是一个碗状, 对于三维的(J有两个theta参数), 一般使用等高线图来替代三维凸函数使用gradient regression梯度降维求出最优解, 梯度降维的公式为(heta_0 := heta_0 - alpha imes {partialoverpartialheta_0}J(heta_0, heta_1)), 对于另一个(heta_1)也是一样的, (heta_1 := heta_1 - alpha imes {partialoverpartialheta_1}J(heta_0, heta_1)), 上面的是公式, 在实际更新我们的参数(heta_0, heta_1)的时候, 应该保证(heta_0, heta_1)同步更新, 所以应该这样子[tmp0 := heta_0 - alpha imes {partialoverpartialheta_0}J(heta_0, heta_1)] [tmp1 := heta_0 - alpha imes {partialoverpartialheta_0}J(heta_0, heta_1)] [heta_0 := tmp0] [heta_1 := tmp1], 在最后同步更新(heta_0)(heta_1)的值关于梯度下降公式的细节公式中, (alpha)表示学习率, ({partialoverpartialheta_0}J(heta_0, heta_1))表示梯度下降的方向, 所以(alpha imes {partialoverpartialheta_0}J(heta_0, heta_1))表示(heta_0)要更新多少的值, 形象一点就是说, 一个人在一个山顶上, 他步子的大小为(alpha), 他希望尽快下山的方向为({partialoverpartialheta_0}J(heta_0, heta_1)), 这样我们就可以更新(heta_0)的值了虽然我们在公式中规定了(alpha)学习率, 但是并不代表我们走的每一步就是不变的, 因为导数是在变化的, 为最低点的时候为0, 在其他地方有时别的值要应用梯度下降法, 我们需要为(heta_0)(heta_1)进行初始化, 一般来说都初始化为0, 但是也要视情况而定什么时候停止梯度下降, 我们可以规定一个阈值, 当我们的(alpha imes {partialoverpartialheta_0}J(heta_0, heta_1))小于这个阈值的时候停止其他对于这个房价的模型, 我们除了使用梯度下降的方法求出我们的目标函数之外还可以使用matrix的方法来求, 这个更加的简单我们每求一次(J(heta_0, heta_1))的值就要遍历一遍所有的数据, 因为the definition of the (J(heta_0, heta_1)) is [sum_{i=1}^{m}{1over2m}{(h(x^{(i)}) - y^{(i)})^2})], 这种方式我们称之为Batch梯度降维

文章评论

Top