热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

大白话5分钟带你走进人工智能第五节解析解方式求解模型参数

第五节解析解方式求解模型参数第四节中我们讲解了最大似然和最小二乘之间的关系,通过数学原理找到了损失函数为MSE的理论支撑。本节的话我们讲解怎么样基于目标函数为MSE的

                                                                       第五节解析解方式求解模型参数

    第四节中我们讲解了最大似然和最小二乘之间的关系,通过数学原理找到了损失函数为MSE的理论支撑。本节的话我们讲解怎么样基于目标函数为MSE的情况下,找到最合适的参数模型。在此之前,我们总结下通过最大似然估计建立目标函数思路:

1. 建立线性模型(将误差视为未统计到的多个维度影响的结果)

2. 对于误差假设其服从均值为0的高斯分布

3. 得到每个数据点被采样到的概率分布函数(自变量为θ)

4. 最大似然估计--总概率最大

5. 通过两边取ln和公式整理,得到结论:mse最小时总似然最大。

我们挨个分析下上面逻辑,第一条什么是线性模型?所谓的多元线性回归里面的线性模型就是y=W^{T}X,是一个线性相加的结果,并且误差视为未统计到的多个维度影响的结果且其服从均值为0的高斯分布。第三条中,对于每一个样本,都会得到一个概率分布函数。第四条中,将所有的样本的概率分布函数累乘,得到一个似然函数,我们的目标就是使其总样本发生的概率最大。最后通过对最大似然函数做数学变换,两边取ln和公式整理,得到结论为:mse最小时总似然最大。所以我们得到新的目标:所谓学习就是 求出一组使mse最小的θ参数。通常,我们把求一个使某函数达到最大(小)值的自变量解的过程叫做函数最优化,机器学习实质上都是将参数学习问题转变为函数最优化问题,进而求解,所以对于线性回归问题,我们要做的就是对 J(\theta )=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}x^{i}-y^{i})^{2}其优化。

    那么如何求函数最小值呢?(函数最优化问题)我们结合高中的知识知道,直接的思路是求导,然后使得导数为零的点,就是我们的最优解。那么这个思想可以应用到求解我们的模型参数吗?实际上是可以的,因为都是函数的最优化问题。我们铺垫几个向量求导的预备公式:

                            \frac{\partial X\theta }{\partial \theta }=X^{T};        \frac{\partial\theta ^{T}X}{\partial \theta^{T} }=X^{T} ;          \frac{\partial \theta^{T}X }{\partial \theta }=X;        \frac{\partial \theta ^{T}X\theta }{\partial \theta }=2X\theta

上面我们不用管怎么来的,就是一些数学公式而已,有兴趣的自己研究下就可以。先将损失函数写成矩阵形式:

                                                \frac{1}{2}(X\theta -y)^{T}(X\theta - y)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}x^{i}-y^{i})^{2}=J(\theta )

解释:因为X\theta -y是列向量(X\theta是预测的y,减去对应的真实的y,所以是一个列向量),转置之后(X\theta -y)^{T}是行向量。所以(X\theta -y)^{T}(X\theta - y)根据向量相乘的规则,对应位置相乘相加,因为对应位置都是同一个元素,所以就是右边的(h_{\theta}x^{i}-y^{i})^{2}相加,也就是最终的上面的写成矩阵形式的公式。其中X矩阵是把每个x看做一个行向量张成的矩阵,y是把所有训练集上的y写作一个列向量。

因为我们的目标是想得到一组最小的\theta,所以也就是相当于\frac{1}{2}(X\theta -y)^{T}(X\theta - y)\theta求导,并令其导数为0,然后解出来,就是我们的最小的\theta解。既然要求导,那么我们对目标函数求梯度,我们说对于向量求梯度,实际上就是对于向量中的每个参数求导,这是一 一对应的。我们对目标函数求梯度的过程如下:

                                                   \bigtriangledown _{\theta }J(\theta )=\bigtriangledown_{\theta }\frac{1}{2}(X\theta -y)^{T}(X\theta - y)

                                                                 =\frac{1}{2}\bigtriangledown_\theta (\theta ^{T}X^{T}X\theta -\theta ^{T}X^{T}\hat y-\hat y^{T}X\theta +\hat y^{T}\hat y)

                                                                 =\frac{1}{2}(X^{T}X\theta+X^{T}X\theta-2X^{T}\hat y)

                                                                 =X^{T}X\theta-X^{T}\hat y

其实上面就是我们根据上面铺垫的向量求导公式结合乘法展开式可得。当梯度为0时,函数应有极小值。此时X^{T}X\theta=X^{T}\hat y 。解得\theta=(X^{T}X)^{-1}X^{T}y。称该形式为线性回归目标函数的解析解。因为解析解不是那么重要,所以不再详细一步步展开上面转换过程。所以我们可以补充总结下线性回归学习的整体流程:

1. 一开始我们拿到了训练集,包含若n个数据点,每个点有m个维度(特征)
2. 我们设定线性判别模型 y=X^T\theta
3. 想要求得最好的一组θ(学习目标)
4. 建立MSE目标函数
5. 对MSE目标函数求使其极小的θ。第一个工具:解析解。

然而解析解有如下缺陷:
1. 解析解函数中存在矩阵求逆的步骤,不是所有矩阵的逆矩阵都可求,有时候只能求近似解
2. 当数据维度非常高时(几百维度以上) 解析解的求解速度会非常慢(O(n^3))

因此:通常利用梯度下降法求解函数最小问题的数值解。

所以下一节中,我们讲解通过梯度下降法求解函数最小问题的数值解,这个是最常用也是机器学习以后经常见到的,会对其原理和过程做详细介绍。

转:https://www.cnblogs.com/LHWorldBlog/p/10597079.html



推荐阅读
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Lodop中特殊符号打印设计和预览样式不同的问题解析
    本文主要解析了在Lodop中使用特殊符号打印设计和预览样式不同的问题。由于调用的本机ie引擎版本可能不同,导致在不同浏览器下样式解析不同。同时,未指定文字字体和样式设置也会导致打印设计和预览的差异。文章提出了通过指定具体字体和样式来解决问题的方法,并强调了以打印预览和虚拟打印机测试为准。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
author-avatar
拍友2502935047
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有