热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习—回归与梯度下降(数学基础)

本文整理机器学习算法中的线性回归和逻辑回归算法的笔记,其中利用随即梯度下降更新参数。只整理其中的数学原理,不涉及代码实现。目录线性回归随即梯度下降逻辑回归线性回归输入数据:x(X)
  • 本文整理机器学习算法中的线性回归和逻辑回归算法的笔记,其中利用随即梯度下降更新参数。只整理其中的数学原理,不涉及代码实现。

目录

  • 线性回归
  • 随即梯度下降
  • 逻辑回归

线性回归

  1. 输入数据:x(X);输出数据:y(Y);
  2. 拟合的函数:可写做 y = h(x);
  3. 对于每一条数据,用x1,x2,x3…xn来表示其各个特征分量,则可以做出一个估计函数:机器学习—回归与梯度下降(数学基础),其中可设x0=1,则有θ0 * x0 = θ0 ,θ0可以充当线性方程中的常数项;
  4. 将上式用向量的方式来表示:机器学习—回归与梯度下降(数学基础)
  5. 接下来需要有一个机制去评估函数y = h(x)的好坏,同时也是评估参数θ。因此做出一个J(θ)函数,称为损失函数或者错误函数,用它来描述h函数的误差程度:机器学习—回归与梯度下降(数学基础),这个错误估计函数是以对x(i)的估计值(即h(x))与真实值y(i)的差的平方之和作为错误估计,前面乘上的1/2是为了在求导(确定梯度时需要求导)的时候,这个系数就不见了。

随即梯度下降

使用随即梯度下降算法调整θ以使得J(θ)取得最小值。

  1. 首先对θ赋值,这个值无特定要求,一般让θ是一个全为1或0的向量。然后在计算过程中改变θ的值,使得J(θ)按梯度下降的方向进行减少。θ0,θ1,θ2…θn表示θ向量的各个维度(不同点处J(θ)下降的梯度方向不同);
  2. 梯度下降法的第一步是给定的θ的初值,然后将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,每一步的进行都基于上一步的基础,因此可能梯度下降的最终点并非是全局最小点,而是一个局部最小点;
  3. 通过求导获得梯度:损失函数J(θ)关于θ的偏导数决定了下降的方向,对函数J(θ)中的θ求偏导:
    机器学习—回归与梯度下降(数学基础)
    机器学习—回归与梯度下降(数学基础)
  4. 依据所得的梯度公式来写出参数θ i的更新公式:
    机器学习—回归与梯度下降(数学基础)
    θi表示更新之前的值,“-”后面的部分表示按梯度方向减少的量,α表示步长(学习度),而(hθ(x) - y)其实就是每一次计算得到的errors。

逻辑回归

  1. 与线性回归的区别:引进Sigmoid函数:机器学习—回归与梯度下降(数学基础)
    其图像为:机器学习—回归与梯度下降(数学基础)
    将z代入后可以得到趋近于0或1的值。
  2. 函数 机器学习—回归与梯度下降(数学基础)
    也就是Z=θ^T * X(等价于上面线性回归中的h(x))需要经过Sigmoid转化才能得到预测值。
  3. 转化后此时的预测值h(x)为:机器学习—回归与梯度下降(数学基础)
  4. 此步骤之后便是相同的随即梯度下降计算方式。

推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
author-avatar
许婉玟秀贤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有