机器学习(二) ——线性回归、代价函数与梯度下降基础

机器学习(二)

——线性回归、代价函数与梯度下降基础

(原创内容,转载请注明来源,谢谢)

一、线性回归

线性回归是监督学习中的重要算法,其主要目的在于用一个函数表示一组数据,其中横轴是变量(假定一个结果只由一个变量影响),纵轴是结果。

线性回归得到的方程,称为假设函数(Hypothesis Function)。当假设函数是线性函数时,其公式为:

二、代价函数

代价函数是用于评价线性回归,其公式为:

计算方式是计算每一个点在当前假设函数情况下,偏差的平方和,再取平均数。m即表示一共取了几个点进行判断。

因此可知,假设函数预计的越准确的,其代价函数的结果越接近于0。对于不同的假设函数,其J的结果可以形成一个轮廓图,如下:

上图中,横坐标θ0表示与y轴的交点,纵坐标θ1表示斜率。同一个圆环,表示取值在这些范围内的假设函数,其代价函数的结果是一样的,即这些取值情况下的精度是一样的。

三、梯度下降算法

梯度下降(Gradientdescent)是获取代价函数最小值的过程。

1、思想

想象现在在一座山(三维立体图形),有多个山峰和山谷(极大值和极小值)。当你在某个位置,找到最快下山的路线(偏导数最小而且是负数的方向),并走一小步,然后接着寻找最快下山的路线,直到到达最低点。

2、存在问题

从上述思想可知,对于有多个极小值情况下,用梯度下降算法很有可能到不了最小值点,只会到达某个极小值点,就因为周围没有减小的路线,而停止。

因此,不同的起始值,最终得到的结果会不一样。

3、步骤

如下述公式:(图片来自视频课程)

其中,α就是“一小步”的距离,α取的大小的变化,会导致从一个点抵达的下一个点的位置不一样,会影响到最终抵达的位置。

不断的执行公式,最终会抵达一个结果。

要求:每次更新的时候,θ1和θ0都要更新,即将θ0和θ1的结果都算出来后,才更新θ0和θ1的值,进行下一次的计算。图中的“:=”符号,即赋值符号,对于大多数编程语言来说,就是=号。

——written by linhxx 2017.12.27

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2017-12-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ml

朴素贝叶斯分类器(离散型)算法实现(一)

1. 贝叶斯定理:        (1)   P(A^B) = P(A|B)P(B) = P(B|A)P(A)   由(1)得    P(A|B) = P(B|...

3457
来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

1192
来自专栏计算机视觉与深度学习基础

Leetcode 114 Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place. For example, Given...

1958
来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1171
来自专栏刘君君

JDK8的HashMap源码学习笔记

3048
来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

672
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1726
来自专栏项勇

笔记68 | 切换fragmengt的replace和add方法笔记

1444
来自专栏MelonTeam专栏

ArrayList源码完全分析

导语: 这里分析的ArrayList是使用的JDK1.8里面的类,AndroidSDK里面的ArrayList基本和这个一样。 分析的方式是逐个API进行解析 ...

4519
来自专栏xingoo, 一个梦想做发明家的程序员

AOE关键路径

这个算法来求关键路径,其实就是利用拓扑排序,首先求出,每个节点最晚开始时间,再倒退求每个最早开始的时间。 从而算出活动最早开始的时间和最晚开始的时间,如果这两个...

2527

扫码关注云+社区