从数学基础的角度来看,可以说我们需要很好地理解的数据科学的三个支柱是线性代数,统计,而第三个支柱是优化,它在所有数据科学算法中都被广泛使用。为了理解优化概念,需要对线性代数有一个基本的了解。
什么是优化?
Wikipedia将优化定义为一个问题,在该问题中,您函数通过从允许的集合中系统选择输入值并计算函数的值来最大化或最小化实际函数。这意味着当我们谈论优化时,我们总是对寻找最佳解决方案感兴趣。因此,可以说一个人对他感兴趣的某种功能形式(例如f(x)形式),并且他正试图为此功能形式找到最佳的解决方案。现在,最好的意思是什么?有人可以说他有兴趣最小化这种功能形式或最大化这种功能形式。
为什么要优化机器学习?
- 几乎所有的机器学习算法都可以看作是优化问题的解决方案,有趣的是,即使在原始机器学习技术的基础是从其他领域(例如生物学)衍生而来的情况下,仍然可以解释所有这些问题。机器学习算法作为优化问题的解决方案。
- 对优化的基本了解将有助于:
- 更深入地了解机器学习算法的工作原理。
- 合理化算法的工作。这意味着,如果您得到结果并且想要解释它,并且您对优化有非常深刻的了解,那么您将能够知道获得结果的原因。
- 在更高的理解水平上,您也许可以自行开发新的算法。
优化问题的组成部分
通常,优化问题包含三个部分。
minimize f(x), w.r.t x, subject to a ≤ x ≤ b
- 目标函数(f(x)):第一个组件是目标函数f(x) ,我们正在尝试将其最大化或最小化。通常,我们谈论最小化问题只是因为如果您对f(x)有一个最大化问题,我们可以将其转换为-f(x)的最小化问题。因此,在不失一般性的前提下,我们可以研究最小化问题。
- 决策变量(x):第二个成分是我们可以选择以最小化函数的决策变量。因此,我们将其写为min f(x) 。
- Constraints(a≤x≤b):第三个成分是约束,它基本上将此x约束为某个集合。
因此,每当您看到优化问题时,都应该在优化问题中寻找这三个组成部分。
优化问题的类型:
仅取决于约束的类型:
- 约束优化问题:如果在此处给出了约束,并且我们必须使解决方案满足这些约束,则我们将它们称为约束优化问题。
- 不受约束的优化问题:在缺少约束的情况下,我们将其称为不受约束的优化问题。
根据目标函数的类型,决策变量和约束条件:
- 如果决策变量(x)是连续变量:如果变量x取无穷多个值,则称该变量x为连续变量。在这种情况下,x可以采用-2到2之间的无数个值。
min f(x), x ∈ (-2, 2)
- 线性规划问题:如果决策变量(x)是连续变量,并且目标函数(f)是线性的,并且所有约束也都是线性的,则这种类型的问题称为线性规划问题。因此,在这种情况下,决策变量是连续的,目标函数是线性的,约束也是线性的。
- 非线性规划问题:如果决策变量(x)保持连续;但是,如果目标函数(f)或约束条件是非线性的,则这种类型的问题称为非线性规划问题。因此,如果目标或约束条件变为非线性,则编程问题将变为非线性。
- 如果决策变量(x)是整数变量:分数部分为0(零)的所有数字(如-3,-2、1、0、10、100)都是整数。
min f(x), x ∈ [0, 1, 2, 3]
- 线性整数规划问题:如果决策变量(x)是整数变量,并且目标函数(f)是线性的,并且所有约束也都是线性的,则这种类型的问题称为线性整数规划问题。因此,在这种情况下,决策变量是整数,目标函数是线性的,约束也是线性的。
- 非线性整数规划问题:如果决策变量(x)仍为整数,则为整数。但是,如果目标函数(f)或约束条件是非线性的,则这种类型的问题称为非线性整数规划问题。因此,如果目标或约束条件变为非线性,则编程问题将变为非线性。
- 二进制整数编程问题:如果决策变量(x)只能接受像0和1这样的二进制值,则这种类型的问题称为二进制整数编程问题。
min f(x), x ∈ [0, 1]
- 如果决策变量(x)是混合变量:如果将连续变量和整数变量组合在一起,则此决策变量称为混合变量。
min f(x1, x2), x1 ∈ [0, 1, 2, 3] and x2 ∈ (-2, 2)
- 混合整数线性规划问题:如果决策变量(x)是混合变量,并且目标函数(f)是线性的,并且所有约束也都是线性的,则这种类型的问题称为混合整数线性规划问题。因此,在这种情况下,决策变量是混合的,目标函数是线性的,约束也是线性的。
- 混合整数非线性规划问题:如果决策变量(x)保持混合状态;但是,如果目标函数(f)或约束条件是非线性的,则这种类型的问题称为混合整数非线性规划问题。因此,如果目标或约束条件变为非线性,则编程问题将变为非线性。