网站建设注册密码咋弄,重庆制作网站培训机构,建站自学,重庆做网站好的公司假设函数定义 假设函数#xff0c;猜一个 x-y 的类型#xff0c;比如 y ax b#xff0c;随后监督学习的任务就是找到误差最低的 a 和 b 参数 有时候我们可以定义 x0 1#xff0c;来让假设函数的整个表达式一致统一 如上图是机器学习中的一些术语 额外的符号#xf…假设函数定义 假设函数猜一个 x-y 的类型比如 y ax b随后监督学习的任务就是找到误差最低的 a 和 b 参数 有时候我们可以定义 x0 1来让假设函数的整个表达式一致统一 如上图是机器学习中的一些术语 额外的符号使用 (xi, yi) 表示第 i 个样本
n 表示特征数量 在房屋价格预测问题中属性/特征有两个房子面积和卧室数量因此这里 n 2 监督学习的过程就是选择合适的参数来让假设函数的输出和样本输出相近针对训练集 房屋预测案例中的目标函数最小化误差平方和 我们通常会在目标函数旁边放个 1/2这是为了后边简化求导计算 我们通常使用梯度下降法来选取更加合适的 theta参数 来优化目标函数如上图是梯度下降法中的 “baby step”
这里的 阿尔法 就是学习速率 如图是对目标函数的求导 由于对几个项的和求导等于它们的导数和所以这里我们先不 care 那个 sum(sigma) 符号 如图是对求导公式的后续转换 如图这是对目标函数求导的最终公式的其中一项 这里只对 theta_j 求导 这也是最后统合得到的求导公式对每一个样本 i 进行针对 theta_j 的求导
接下来要做的就是重复 updating theta_j直到目标函数收敛 由于我们的目标函数对于每个 theta_j 都是二次函数所以这是一个凸函数它是一个大碗它只有一个全局最优 也可以用等高线图来表示
运用高中的一些数学知识你会发现最陡的防线和等高线椭圆的切线是90度
调试学习率的一些经验 如果你发现目标函数在增加而不是减少那通常说明学习率太大了超调 可以尝试 O1, O2 O4, O8 尝试不同的值 另一种可视化学习过程的方式是看到曲线假设函数一点点变化
刚刚提到的机器学习方法中梯度下降需要用到训练集中所有的样本来计算梯度所以也叫批量梯度下降法。在训练集很大的情况下这会变得昂贵因此我们需要做些改变 另一种快得多的方式是随机梯度下降法它遍历每一个样本 i随后针对这单个样本对所有的 theta_j 做梯度下降
原先的方法中我们每做一个 tiny step 都需要扫描一次所有的样本而 SGD 中我们每走一个 step 只需要扫描一个样本因此快得多
一个更直观的解释 SGD 的方式是一开始我的 theta 参数是随机的然后我看到了第一个样本 x1随后我针对这个 x1 修改的我 theta接着我看到了 x2我再针对 x2 修改我的 theta。在等高线图中你可能会看到参数并没有沿着 90 度的方向下降而是以一种更曲折的方式下降
SGD 通常不会收敛它会振荡
还有一种下降方法是“小批量梯度下降法”一次遍历100个样本
还有一种实践中的方法一点点减少学习速率
线性回归没有局部最优在它的目标函数是误差平方和时只有全局最优。所以实际上你可以使用一个矩阵去表示它的参数求cost function(目标函数对于 参数矩阵的求导随后让导数 0求这个位置上的导数矩阵即可直接得到全局最优解。这也叫做正态方程这个方法仅适用于线性回归 根据吴恩达的推导正态方程也就是最终最优的 theta 可以通过这么一个公式求出来
如果发现 X 不可逆那么通常意味着有多余的 features你有某些 features 是线性相关的你可以使用伪逆或者找出哪些特征是线性相关的
关于怎么选择学习率这非常依赖经验通常我们尝试许多个不同的值然后选择一个