热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

1.线性回归算法与梯度下降算法

1.总括:线性回归即我们在分析某些数据样本之间的归来吧时,预先假定其存在线性关系。在此假设的基础上,利用数据样本拟合出线性方程的权重参数,进而得出此类数据的通用规律。主要解决的问题:

1.总括:线性回归即我们在分析某些数据样本之间的归来吧时,预先假定其存在线性关系。

    在此假设的基础上,利用数据样本拟合出线性方程的权重参数,进而得出此类数据的通用规律。

 主要解决的问题:预测连续值变量所对应的结果y

 举例:列入我们现在要预测:

  1).大首都北京的房价受那些因素影响(当然是一个复杂的问题,我们在这里只是简化或者说假设)

  2).大首都北京的房价和这些因素之间到底存在什么样的定量关系

 问题1:我们假设影响房价的因素有:房龄X1(就假设这一个吧)

 问题2:我们假设这些因素对房价的影响是线性的

2.此问题对应的数学模型如下:

  

  将问题具体化:假设我们取了10个样本(x1,y1),(x2,y2).....(x10,y10)

  

  则有:

  

  显然通过上述十个样本我们既可以求解出一组θ来。

****************************************************************************

3.提出问题:什么样的θ最好的呢?最能反映这些样本数据之间的规律呢?

  为了解决这个问题,我们需要引入误差分析预测值与真实值时间的误差为

  -----------------------------------------------------------------(1)

  而服从均值为0的正太分布(即高斯分布),即满足如下公式

  ---------------------------------------------------(2)

   将(1)式代入(2)式便可得到下面式子:

  

  

  为了便于计算我们引入对数似然

  

        

        

  当似然函数最大时对对应的参数即为最优的权重参数,只要最小即可

  如何才能求导上式的最小值,边成了我们求解此问题的关键,推导过程如下:

  

  

  导入等于0即可得:

  

4.总结:以上便是我们队二维线性回归问题的一个推导和理解过程,对于n维的问题,换汤不换药,用同样的方式解决就好

5.回顾:

  第一步:我们首先拿到样本数据,并假设此样本直线的规律是线性的

  第二步:列出线性方程,问题转移为求解权重参数θ,假设是n维,并设θ=[θ1,θ2,θ3.......θn]

  第三步:利用上述假设的权重参数θ,将任意一个样本数据代入对应的线性方程即可得到一个预测值

  第四步:预测值与真实值存在的误差为

  第五步:由于每个样本的误差是独立且同分布的,所以其服从正态分布,并且均值为0

  第六步:利用概率论中关于参数估计的方法极大似然估计,引入似然函数,求出似然函数最大值所对应的θ即为最优的θ

  第七步:利用导数求解即可 

***************************************************************************************

6.接下来我们还得思考一个问题,假如我们将上述样本交个计算机,我们应该怎么样让计算机帮助我们求解此类问题呢?

授之以鱼还是授人以渔呢?显然我们更希望给它一个解决此类问题的方向,让它帮助我们求解,这便引入了梯度下降算法

引入损失函数,方程如下,推导过程可以参考第3步:

  

  给出上述损失函数的图像如下:

   

7.如何求出上述函数的最小值呢?

  由于函数是一个开口向上的曲面,使得函数取得最小值的θ0,θ1,即就是曲面上最低点所对应的θ0,θ1。

  我们可以对函数关于θ0,θ1求偏导,并取偏导数为0的θ0,θ1

  采用梯度下降原理,让计算机一步步求解,可以参考下图:

  

  对上图的理解:我们将上图理解为下图中用粗红线所组成的平面(此平面平行于θ1所在的轴)切出的平面曲线,实际就是相当于此时θ0为常数的对上述平面曲线关于θ1求导数,实际相当于对于二元函数关于θ1求偏导,偏导数符号则反应了函数的增减性,也就是指明了函数变化的方向

  

 

   

  有了这个方向,你再给定一个步长,即就是学习率α,就能控制θ1向着使得函数关于θ1的偏导数等于零的方向去逼近

  

   一步步即可将最优的θ1,θ0用同样的方式就可以得到,这样你通过梯度下降就可以得到最优的θ1和θ0,对于影响因素有n个的问题采用的是同样的方式。


推荐阅读
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • 本文介绍了一种解决二元可满足性(2-SAT)问题的方法。通过具体实例,详细解释了如何构建模型、应用算法,并提供了编程实现的细节和优化建议。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • Linux 学习路径与核心框架
    本文提供了一套系统化的 Linux 学习路径,旨在帮助初学者和中级用户构建全面的知识体系。通过逐步深入的学习方法,掌握从基础命令到高级系统管理的技能。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 开发笔记:9.八大排序
    开发笔记:9.八大排序 ... [详细]
  • 在使用 Flutter 进行开发时,可能会遇到热更新功能无法正常工作的问题。本文将探讨一种常见的错误:无法连接到 Dart 观察站,并提供详细的解决方法。 ... [详细]
  • 本书系统介绍了概率论的基础概念,包括样本空间、事件及其概率定义,条件概率和独立性,并深入探讨了贝叶斯公式。随后,书中详细讲解了多种类型的随机变量,如离散型(伯努利、二项、几何、泊松)和连续型(均匀、指数、伽玛、正态)。此外,还涵盖了随机变量的期望值计算、联合分布特性、矩母函数以及极限定理等内容。特别地,本书对马尔可夫链、泊松过程及其扩展形式进行了详尽分析,为读者提供了丰富的理论依据和实际应用案例。 ... [详细]
  • 无线通信设备的OTA测试及其重要性
    随着智能设备和无线通信技术的广泛应用,确保这些产品在各种应用场景中的稳定性和可靠性变得至关重要。OTA(Over The Air)测试作为一种关键手段,能够有效验证无线传输设备的整体性能,解决通信问题并提升用户体验。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文探讨了如何使用自增和自减运算符遍历二维数组中的元素。通过实例详细解释了指针与二维数组结合使用的正确方法,并解答了常见的错误用法。 ... [详细]
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • 给定行数 numRows,生成帕斯卡三角形的前 numRows 行。例如,当 numRows 为 5 时,返回的结果应为:[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
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社区 版权所有