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

最优化理论与凸优化的用处

转自:https:blog.csdn.netqq_39422642articledetails78816637概要:1.凸优化的定义1.1凸优化1.

转自:https://blog.csdn.net/qq_39422642/article/details/78816637

 

概要:

1. 凸优化的定义
  1.1 凸优化
  1.2 全局最优化与局部最优化

2. Least-squares and linear programming(最小二乘与线性规划)
  2.1 最小二乘
  2.2 线性规划

3. 最优化方法的一般结构

4. 优化理论在机器学习,深度学习中扮演的角色

 

1.优化的定义

1.1 凸优化

最优化问题目前在机器学习,数据挖掘等领域应用非常广泛,因为机器学习简单来说,主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止,那到底什么是最优化问题呢?

它的一般形式为:

第一个为优化的目标,即最小化目标函数f(x),而带大于号或小于号的,则是约束条件。我们希望找到一个满足约束条件的x∗">x,使得对于任意的z">z满足约束条件:

 

 

而x∗就是我们所求的最后结果。

相当于你要从上海去北京,你可以选择搭飞机,或者火车,动车,但只给你500块钱,要求你以最快的时间到达,其中到达的时间就是优化的目标,500块钱是限制条件,选择动车,火车,或者什么火车都是x。


满足所有约束条件的点集称为可行域,记为X,又可以写为:

,s.t表示受限于(subject to)。


在优化问题中,应用最广泛的是凸优化问题:

  • 若可行域X是一个凸集:即对于任给的x,y∈X,总有

  • 并且目标函数是一个凸函数:即

我们称这样的优化问题为凸优化问题。

用图像来表示就是:

 

函数上方的点集就是凸集,函数上任意两点的连线,仍然在函数图像上方。

一句话说清楚就是:希望找到合适的x,使得f0(x)最小

 

1.2 全局最优化与局部最优化

全局最优化指的是在满足条件约束的情况下,找到唯一的一个点满足最大值或者最小值。

局部最优化指的是在满足条件约束的情况下,有可能找到一个局部最大/小点,但不是全局最大或者最小的点。
用图像表示为:

 


2.Least-squares and linear programming(最小二乘与线性规划)

关于这两个问题的更详细的例子会在接下来的文章中说到,这次只是简单的介绍一下我们的内容。

2.1 最小二乘

最小二乘问题是无约束的优化问题,通常可以理解为测量值与真实值之间的误差平方和

这个问题既然没有约束条件,那应该怎么求解呢?我们的目标是求解出最好的x,观察这个式子可以发现,这个式子一定是大于等于0的,所以这样的最优化问题,我们可以把它转成线性方程来求解:

AT为A的转置,因此根据矩阵的逆:

可以把上式表示为:

加权的最小二乘问题

权值均为正数,代表每一个  对结果的影响程度。

正则化的最小二乘问题

ρ是人为的选择的,用来权衡 最小化 的同时,使得不必太大的关系。

2.2 线性规划
另一类重要的优化问题是线性规划,它的目标函数和约束条件都是线性的:

用画图的方法,就是根据条件,画出可行域,然后将目标函数在可行域上移动,直到得到最大值。

 

3.最优化方法的一般结构

最优化的过程,相当于爬山,如图:

 

希望找到一个点列xk使得他的函数值是一直减少的,直到到达某一停止条件或者达到最小值的点xk.

用数学上的术语可以表示为:

  • 设xk为第k次迭代点,dk为第k次搜索方向,αk为第k次迭代的步长因子,则第k次迭代为:

从这里可以看到不同的步长和不同的搜索方向组成了不同的优化方法,这就是最优化理论中所讨论的。f是xk的函数,搜索方向dk是f在xk是f在xk处的下降方向,即dk满足:

或者

而最优化的基本可以表示为:给定初始点xk

  1. 确定搜索方向dk,即按照一定规则画方法确定f在xk处的下降方向
  2. 确定步长因子αk,使得目标函数有一定的下降

不断迭代,直到xk+1满足某种某种停止条件,即得到最优解xk+1
最优化中的问题中,大部分都是在寻找各种各样的方法确定步长和方向,使得迭代的速度尽可能快,得到的解尽可能是最优的解。

4.优化理论在机器学习,深度学习中扮演的角色

凸优化,或者更广泛的说,是最优化理论,在目前的机器学习,数据挖掘,或者是深度学习的神经网络中,都要用到。

他的地位相当于人的脊背一样的,支撑着整个模型的学习过程。因为模型,通俗来说就像人学习思考一样,我们自己知道自己该学什么,该怎么学,发现自己的知识学错了之后怎么调整,但计算机可没有人这么聪明,知道学什么,往哪里学。

而最优化,就是告诉模型应该学什么,怎么学的工具。模型学习的往往都是一个映射函数,也就是模型中的参数W,这个参数的好坏,得看答案才能知道,但知道自己错了之后,该往哪里学,怎么学,怎么调整,这就是优化理论在其中扮演的角色。如果没有优化理论,那么模型是不知道该怎么学习的,也就是没有了最优化,模型的学习永远都是停滞不前的,这下你知道最优化理论的重要性了吧。


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Python库在GIS与三维可视化中的应用
    Python库极大地扩展了GIS的能力,使其能够执行复杂的数据科学任务。本文探讨了几个关键的Python库,这些库不仅增强了GIS的核心功能,还推动了地理信息系统向更高层次的应用发展。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 本文深入探讨了基于Pairwise和Listwise方法的排序学习,结合PaddlePaddle平台提供的丰富运算组件,详细介绍了如何通过这些方法构建高效、精准的排序模型。文章不仅涵盖了基础理论,还提供了实际应用场景和技术实现细节。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 新手指南:在Windows 10上搭建深度学习与PyTorch开发环境
    本文详细记录了一名新手在Windows 10操作系统上搭建深度学习环境的过程,包括安装必要的软件和配置环境变量等步骤,旨在帮助同样初入该领域的读者避免常见的错误。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 聚焦法是一种采用穷尽搜索策略的Filter型特征选择方法,其核心在于寻找能有效区分不同样本的最小特征集合。此方法的评估标准主要依赖于一致性测量。 ... [详细]
  • 如何用GPU服务器运行Python
    如何用GPU服务器运行Python-目录前言一、服务器登录1.1下载安装putty1.2putty远程登录 1.3查看GPU、显卡常用命令1.4Linux常用命令二、 ... [详细]
author-avatar
小麻雀yuuri
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有