这本书涵盖了凸优化的介绍,凸优化是一种强大且易处理的优化问题,可以在计算机上高效求解。本书的目标是帮助读者了解凸优化是什么以及如何在不断扩大的实际应用场景中使用,特别强调在机器学习领域的应用。本书的第一部分涵盖了凸集、凸函数和相关基本定义,这些概念有助于理解凸优化及其相应的模型。第二部分讲述了一个非常有用的理论——对偶性,它使我们能够:(1)获得算法洞察;(2)为通常难以解决的非凸优化问题获得近似解。最后一部分关注机器学习和深度学习的现代应用。这本书的一个特点是,它简洁地讲述了凸优化如何通过历史示例和当前机器学习应用发挥作用的“故事”。另一个关键特点是,它包括了基于优化基础原理启发的各种机器学习算法的编程实现,以及所使用编程工具的简要教程。实现基于Python,CVXPY和TensorFlow。本书并未遵循传统教科书式的组织结构,而是通过一系列紧密相关的讲义进行简化,围绕连贯的主题和概念展开。本书主要作为高年级本科生课程教材,同时也适用于一年级研究生课程。读者需要具备良好的线性代数背景,一定程度的概率知识和对Python的基本熟悉。本书由三部分组成。在第一部分中,我们将学习基本概念和几个数学定义,以便理解什么是凸优化,以及如何将感兴趣的问题转化为凸问题。然后,我们将探索凸优化问题的五个实例:LP、最小二乘、QP、SOCP和SDP。我们将专注于识别(和转换)这类问题的技术。我们还将研究一些用于解决这些问题的著名算法。在第二部分中,我们将研究最优化领域中的一个关键理论,称为对偶性。二元性有两种类型:(1)强二元性;(2)弱对偶性。强对偶性对于获得凸问题的算法见解是非常有用的。福利对偶性通过提供近似解来帮助处理困难的非凸问题。在最后的第三部分,我们将探讨机器学习的应用:(1)监督学习,最流行的机器学习方法之一;(ii)生成对抗网络(GANs),无监督学习的突破性模型之一;(iii)公平分类器,这是机器学习中的热门话题之一。