(蓝色字体:批注;绿色背景:需要注意的地方;橙色背景是问题)

一,机器学习分类

二,梯度下降算法:2.1模型   2.2代价函数   2.3 梯度下降算法

一,机器学习分类

无监督学习和监督学习

无监督学习主要有聚类算法(例题:鸡尾酒会算法)根据数据中的变量关系来将数据进行分类

其中分类算法,可以根据一个特征来分类,多个特征分类更加准确

二,多元回归问题

2.1 模型定义:

  

m代表训练集中实例的数量

x  代表特征或者输入变量 (x是一个向量,可以有很多特征)

y  代表目标变量/输出变量(y也有可能是一个特征)

(x,y)代表训练集中的实例(训练样本)

代表第 i个观察实例(训练样本)

h :假设。

2.2   代价函数

  定义:衡量  模型预测出来的值h(θ)与真实值y之间的差异  的函数。(如果有多个样本,则可以将所有代价函数的取值求均值,记做J(θ)。)

  用处:我们用代价函数是为了训练参数θ,利用代价函数衡量θ的好坏。从而得到最符合训练集的模型

  性质:

  • 对于每种算法来说,代价函数不是唯一的;
  • 代价函数的自变量是θ,而假设函数h的自变量是x。
  • 总的代价函数J(θ)可以用来评价模型的好坏,代价函数越小说明模型和参数越符合训练样本(x, y);
  • J(θ)是一个标量;
  • 选择代价函数时,最好挑选对参数θ可微的函数

  理想情况下,当我们取到代价函数J的最小值时,就得到了最优的参数θ,记为:minθJ(θ)。例如,J(θ) = 0,表示我们的模型完美的拟合了观察的数据,没有任何误差。

  参考:https://www.cnblogs.com/Belter/p/6653773.html?utm_source=itdadao&utm_medium=referral

  (在训练过程中:选取模型,这个过程只是一个模型比如是多元多次函数,指数函数等,确定参数个数;给参数一个初始值;然后利用训练集训练;使代价函数收敛于最小值,即确定参数)

  代价函数有均方误差函数,交叉熵函数等

2.3 批梯度下降算法

对于二元线性问题:

实现梯度下降算法的微妙之处是,在这个表达式中,需要同时更新 和Θ1,Θ0:

  • 这里的Θ是一个标量,减法并不能代表矢量运算,梯度下降里面的偏导数现在只是一个正负的区别,并不表示一个方向。因为梯度的定义是:。梯度是一个向量。这这里只是梯度的一个坐标。所以每一次参数更新都是同时更新两个
  • 这里的同步更新是很重要的,因为不同步,两个参数会前后影响
  • 这里的参数更新用相减的形式是为了更靠近J最低点的地方,就是让J更快速靠近最低点。而且此时的更新不再沿着函数变化,而是沿着每一个地方的切线。

对于二元问题,这里的 α 是我们切线上纵坐标变化值Δy。这里我们不用改变α ,最终由偏导数来控制大小然后实现收敛。

梯度下降算法是根据当前点找偏导数最小的方向然后更改点的位置,所以算法看不见最小值,只能找到这个方向进行参数的训练,所以要注意当学习率比较大时,如果代价函数不是凸函数就很有可能迭代到离我们的最小值很远的局部最小值点。而且对于多维函数,偏导的方向并不向一维一样只能在正负方向,偏导方向可能是四面八方。

 对于多元线性问题:

其中x0=1(为了方便运算添加了x0)

计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。这里注意也是同时更新

p1 批梯度下降算法的更多相关文章

  1. 监督学习:随机梯度下降算法(sgd)和批梯度下降算法(bgd)

    线性回归 首先要明白什么是回归.回归的目的是通过几个已知数据来预测另一个数值型数据的目标值. 假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就 ...

  2. 监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)

    线性回归 首先要明白什么是回归.回归的目的是通过几个已知数据来预测另一个数值型数据的目标值. 假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就 ...

  3. 梯度下降算法实现原理(Gradient Descent)

    概述   梯度下降法(Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法求解出最优解的,所谓的通用就是很 ...

  4. 梯度下降算法的一点认识(Ng第一课)

    昨天开始看Ng教授的机器学习课,发现果然是不错的课程,一口气看到第二课. 第一课 没有什么新知识,就是机器学习的概况吧. 第二课 出现了一些听不太懂的概念.其实这堂课主要就讲了一个算法,梯度下降算法. ...

  5. ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ

    ng机器学习视频笔记(二) --梯度下降算法解释以及求解θ (转载请附上本文链接--linhxx)   一.解释梯度算法 梯度算法公式以及简化的代价函数图,如上图所示. 1)偏导数 由上图可知,在a点 ...

  6. [机器学习Lesson3] 梯度下降算法

    1. Gradient Descent(梯度下降) 梯度下降算法是很常用的算法,可以将代价函数J最小化.它不仅被用在线性回归上,也被广泛应用于机器学习领域中的众多领域. 1.1 线性回归问题应用 我们 ...

  7. Spark MLib:梯度下降算法实现

    声明:本文参考< 大数据:Spark mlib(三) GradientDescent梯度下降算法之Spark实现> 1. 什么是梯度下降? 梯度下降法(英语:Gradient descen ...

  8. AI-2.梯度下降算法

    上节定义了神经网络中几个重要的常见的函数,最后提到的损失函数的目的就是求得一组合适的w.b 先看下损失函数的曲线图,如下 即目的就是求得最低点对应的一组w.b,而本节要讲的梯度下降算法就是会一步一步地 ...

  9. Logistic回归Cost函数和J(θ)的推导(二)----梯度下降算法求解最小值

    前言 在上一篇随笔里,我们讲了Logistic回归cost函数的推导过程.接下来的算法求解使用如下的cost函数形式: 简单回顾一下几个变量的含义: 表1 cost函数解释 x(i) 每个样本数据点在 ...

随机推荐

  1. Django的Modelforms的介绍

    from django.forms import ModelForm class Test(ModelForm): # 把那张表转化成form组件 class Meta: # 这个意思即是把Artic ...

  2. EasyUI 在Tab页用button打开新Tab

    标签: <a href="javascript:void(0)" class="easyui-linkbutton" id="ipConfig& ...

  3. [leetcode]692. Top K Frequent Words K个最常见单词

    Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...

  4. 2017-2018-2 20165315 实验三《敏捷开发与XP实践》实验报告

    2017-2018-2 20165315 实验三<敏捷开发与XP实践>实验报告 一.编码标准 编写代码一个重要的认识是"程序大多时候是给人看的",编程标准使代码更容易阅 ...

  5. CMakeLists.txt的写法

    [1]ADD_LIBRARY: Add a library to the project using the specified source files.要求CMake根据指定的源文件生成库文件 . ...

  6. 比特币系列钱包的UTXO总结

    1.通过比特币钱包的WalletNotify配置来处理 本钱包内的交易信息的 推送.BlockNotify数据更多,不适合交易所的监听

  7. 为Linux虚拟机设置网络

    安装虚拟机的时候为了使用方便我们除了需要设置静态ip为了能够让虚拟机也能够上网我们需要设置虚拟机网络 当然也可以使用虚拟机和主机共享上网,这个比较简单,这里就不说了,现在我们来通过桥接的方式为虚拟机设 ...

  8. c#task list waitall task waitany

    上边的主线程会被卡住: 7个同时开发,谁先完成之后, 需要完成某个工作,可以用waitany 2: 不卡界面的做法 加上以上命令就不卡,是子线程做的事 //Task task = taskFactor ...

  9. CODE[VS]2494 Vani和Cl2捉迷藏

    原题链接 这里有一个结论:最多能选取的藏身点个数等于最小路径可重复点覆盖的路径总数. 所以我们可以先传递闭包,然后求最小路径点覆盖即可. #include<cstdio> #include ...

  10. java中 this 关键字的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...