机器学习数学基础——最优化理论

以下文章摘录自

《机器学习观止——核心原理与实践》

京东: https://item.jd.com/13166960.html

当当:http://product.dangdang.com/29218274.html

 

最优化理论

概述

最优化理论是数学的一个分支,它主要研究的是在满足某些条件限制下,如何达到最优目标的一系列方法。最优化理论的应用范围相当广泛,所涉及的知识面也很宽,并不是简单的一两个章节就可以涵盖的——因而本小节我们的主要讲解重点,在于和后续章节中强相关的一些最优化基础理论,从而为大家的进一步学习扫清障碍。

根据所选分类角度的不同,我们可以把最优化问题划分为多种类型。例如从限制条件的角度,最优化问题通常可以被分为下面3种类型:

l  unconstrained optimization problem

l  equality constraint optimization problem

l  inequality constraint optimization problem

 

接下来我们针对上述3种类型分别进行讲解。

(1) unconstrained optimization problem

这是最简单的一种最优化问题,即在没有任何限制条件下实现最大值或者最小值(minimize和maximize实际上是可以互相转化的)的求解。

比如对于求解f(x) = x2函数最小值的问题,可以表示为:

 

从下面图例中,不难看出它的最小值是当x=0时,此时函数取值为0。

图  无限制条件下的极值范例

 

总的来说,这种情况下的最优解通常可以通过求导数的方式来获得。

 

(2) equality constraint optimization problem

对于带有限制条件的最优解问题,也可以再细分为两种情况——即equality和inequality contraint,简单而言就是等式和不等式约束的区别。

比如前面所讲述的f(x) = x2函数,我们可以增加一个equality constraint,这样一来问题就变成了:

subject to x -2 =0

 

其中“subject to”后面紧跟着的就是限制条件了。

图  带有一个equality constraint的最优解

 

在这个限制条件下,当x=2时f(x)可以取得最小值,对应函数值为4。

当然,我们也可以同时要求多个equality constaints,例如:

f(x, y) = x2 + y2

subject to x - 3 = 0

        y - 5 = 0

 

不过多个限制条件有可能出现无解的情况,譬如:

subject to x - 2 = 0

        x - 5 = 0

 

这一点我们在提出限定条件时需要特别注意。

 

(3) inequality constraint optimization problem

与equality相对应的是inequality,后者也同样不难理解——它代表的是限定条件为不等式时的情况。

例如下面是圆形函数的不等式限定条件:

f(x, y) = x2 + y2

subject to x - 3 >= 0

        y - 5 <= 0

 

另外,equality和inequality constraint还可以同时出现,共同做为某个最优解问题的限制条件。举例如下:

f(x, y) = x2 + y2

subject to x - 3 = 0

         y - 5 <= 0

 

针对不同的限定条件,最优解问题的解决策略也会有所差异。

概况来说,有如下几个核心点:

l  等式限定条件

拉格朗日乘子法是将equality constraint“隐含”到最大值/最小值求解过程中的关键理论基础

l  不等式限定条件

除了拉格朗日乘子法以外,对于inequality constrint条件下的最优化问题,我们还需要借助于另一个理论——KKT(Karush-Kuhn-Tucher)

 

在接下来的几个小节中,我们将首先基于若干范例来引出这些理论的应用场景,让大家有一个“感性”的认识。然后再尽量“抽丝剥茧”地为大家详细分析隐藏在它们背后的基础原理以及各种公式的推导过程。

函数等高线

在讲解Lagrange Multiplier和KKT之前,我们首先来补充一些基础知识,即什么是函数等高线,以及它的一些核心应用。

地理学科上的等高线指的是高程海拔相等的相邻各个点所组成的闭合曲线。按照百科上的描述,即是“把地面上海拔高度相同的点连成的闭合曲线,并垂直投影到一个水平面上,并按比例缩绘在图纸上,就得到等高线。等高线也可以看作是不同海拔高度的水平面与实际地面的交线,所以等高线是闭合曲线。在等高线上标注的数字为该等高线的海拔”。

如下示例图所示:

图  contour line示例

 

从地理学上的contour line,还可以引申出函数的等高线。其实并不难理解,比如对于函数f(x1, x2),它的等高线可以被表述为如下的形式:

f(x1, x2) = c

这样一来,如果我们针对上述公式取微分值,那么可以得到

 

另外,业界有多个库函数可以提供非常便捷的API来帮助我们快速绘制出函数的等高线,比如matplotlib。范例代码如下所示:

import matplotlib.pyplot as plt

import numpy as np

 

def contour_func(x, y):

    return (x / 5 + x ** 5 + y ** 3 - 4) * np.exp(- x ** 2 - y ** 2)

 

n = 500

x = np.linspace(-3, 3, n)

y = np.linspace(-3, 3, n)

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值