基本概念介绍

Posted 大饼博士X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本概念介绍相关的知识,希望对你有一定的参考价值。

文章目录


2020年我自己希望多看一些基础的理论知识,包括优化理论、微分方程等,重点先从Convex optimization开始看吧。另外,还会多写一些应用算法的基本知识,比如一些经典计算机视觉知识,以及一些新的NLP网络的概念知识。平时时间有限,加油吧!


引言

本系列是学习入门级convex optimization理论做的一些笔记,如果是大神请跳过和无视!主要参考的资料有:

1、非常经典的《Convex Optimization》,Stephen Boyd:其实这本书对我来说有点厚,本身做工程项目研发,太理论的知识用不上。学习这本书的主要目的是理解一下凸优化的基本概念,方便在读一些Paper的时候可以基本看懂理论部分在讲什么。我先计划学前面5章,有一个大概的了解就行。有一个课程:ECE236B - Convex Optimization (Winter Quarter 2019-20),课件基本上就是上面的书的课件,没什么差别,可以按照顺序去了解一些概念。

2、ECE236C - Optimization Methods for Large-Scale Systems (Spring 2019):上面课程的进阶版,可以查阅用,需要看什么技术点的时候查一下。

3、Convex Optimization: Fall 2019:Instructor: Ryan Tibshirani:主要看这个课程,也是这个系列的主要资料。个人感觉很好的一个课程。

4、Introductory Lectures on Convex Programming Volume I: Basic course,Yu. Nesterov:这个是一个优化的大牛写的经典材料,对我现在还用不上。推荐有理论功底的同学啃这本书。

在每一个章节开头,我会给出主要的参考资料来源。我写的顺序按我自己看的顺序写,不一定按照书来。

第1章 Introduction

本章节主要参考Boyd书课件的第一章,也就是ECE236B课程的第一章课件。课件内容是截图,我就不重新打了,下面都有文字描述理解。给一个基本的概念,有些不求甚解也问题不大(包括我哈~)。

优化问题的数学定义: f 0 f_0 f0是目标函数, f i f_i fi是不等式约束函数,如果对任意满足约束的向量 z z z,有 f 0 ( z ) ≥ f 0 ( x ∗ ) f_0(z) \\geq f_0(x^*) f0(z)f0(x),那么称 x ∗ x^* x为优化问题的最优解。

非作者注:general optimization problem是很难求解的,特别是非凸,以及带约束的优化问题求解,都是比较复杂的。我们现在常用的神经网络优化求解,大部分是无约束的非凸优化,即使一些有约束的问题,往往也是做一些放松,然后加到loss function里面去,看成一个整体function来求解。

凸优化问题

本书主要介绍凸优化问题,定义是:对于目标函数以及约束函数都是convex的优化问题,称为convex optimization问题。

本节简单介绍两个非常常用的凸优化例子:最小二乘问题和现行规划问题。

最小二乘问题

基本最小二乘问题特点是:没有约束条件( m = 0 m=0 m=0),目标函数是若干项的平方和,每一项的形式是 a i T x − b i a_i^Tx-b_i aiTxbi,写成矩阵形式:

这个就是基础线性回归模型,一般写成 b = A x b= Ax b=Ax,最小化目标是就是(求解是最基础的,E对x求导=0,得到x*):
min ⁡ x E = ∣ ∣ b − A x ∣ ∣ 2 x ∗ = ( A T A ) − 1 A T y \\min_x E=||b-Ax||^2 \\\\ x^* = (A^TA)^-1A^Ty xminE=bAx2x=(ATA)1ATy

还有加权最小二乘问题,我们最小化加权的误差值:
∑ i = 1 k w i ( a i T x − b i ) 2 \\sum_i=1^k w_i (a_i^Tx - b_i)^2 i=1kwi(aiTxbi)2
其中,加权系数 w i w_i wi均大于零,表示每一个子项的重要程度,在统计应用中,当给定的现行观测值包含不同方差的噪声时,我们用加权最小二乘来估计向量x。

在线性回归模型上加上一个变量的L2-norm,是一种常见的正则化技术:可以避免x的数值过大,过大时惩罚项会较大。最小化:
∑ i = 1 k ( a i T x − b i ) 2 + ρ ∑ i = 1 n x i 2 x ∗ = ( A T A + ρ I n × n ) − 1 A T y \\sum_i=1^k (a_i^Tx - b_i)^2 + \\rho\\sum_i=1^n x_i^2 \\\\ x^* = (A^TA + \\rho I_n\\times n)^-1A^Ty i=1k(aiTxbi)2+ρi=1nxi2x=(ATA+ρIn×n)1ATy

其中 ρ > 0 \\rho>0 ρ>0

线性规划问题


虽然线性规划问题一般没有解析解(也有叫做闭合解,closed form),却存在很多有效的求解方法,包括Dantzing的单纯形法以及内点法,(非作者注:这些都是很经典的优化方法,平时我也很难用到,先mark一下,后面有需要的时候找资料看,本CVX书后面算法部分重点介绍了内点法,似乎作者Stephen Boyd特别看重内点法)。

一个优化问题例子:最佳灯源问题

有m盏灯,要照亮n个板子,每一块板子的光照强度公式如下,是所有灯功率的一个加权和。

问题:在灯的功率限制范围内,达到给定光照强度 I d e s I_des Ides,给出最接近的功率方案。

这个目标函数挺有意思,先max,后min——意思是说首先对每一个板子k都检查一下光照强度,是否偏离目标 I d e s I_des Ides,偏离程度中最大的那一项,我们要最小化它的值,所以相当于我们要求每一个板子k的光照强度都尽可能地和目标 I d e s I_des Ides接近。怎么解这个优化问题呢?



方法有很多,最后5是构造了一个凸优化问题,有了这个形式以后就可以用一些成熟的凸优化方法来求解,本章节不介绍。

非作者注:很多问题如何构造成一个凸优化问题往往是最难的,如果能构造出来,那么基本上就是认为可以比较容易求解了。

Chebyshev逼近问题,转化成线性规划

再给一个例子:


其实和上面点灯的例子很像,但又不完全一样。原始min-max问题可以认为是让现行回归的值 a i T x a_i^Tx aiTx b i b_i bi尽可能接近,因此引入一个误差的bound t,限制条件很容看到可以转化为
− t ≤ a i T x − b i ≤ t ∣ a i T x − b i ∣ ≤ t -t \\leq a_i^Tx - b_i \\leq t \\\\ | a_i^Tx - b_i | \\leq t taiTxbitaiTxbit
虽然 t ∈ R t\\in R tR,但实际上我们可以看到 t ≥ 0 t \\geq 0 t0,否则上面限制条件就不成立了。因此 t t t − t -t t可以看成是 a i T x − b i a_i^Tx - b_i aiTxbi的一个对称的上下界,我们最小化这个界,就是让值 a i T x a_i^Tx aiTx b i b_i bi尽可能接近,因此(1.6)和(1.7)是等价的。

第一章就是简单介绍,主要是一些概念,就讲到这里。下次是第二章。

参考资料

[1] Convex Optimization, Stephen Boyd, Lieven Vandenberghe
[2] ECE236B - Convex Optimization (Winter Quarter 2019-20)
[3] ECE236C - Optimization Methods for Large-Scale Systems (Spring 2019)

以上是关于基本概念介绍的主要内容,如果未能解决你的问题,请参考以下文章

一篇入门 — Scala 宏

Structured Streaming教程 —— 常用输入与输出

01---JMS与消息中间件的基本概念

数据挖掘核心算法之一--回归

图像处理的一些基本概念

MySQL查询语句过程和EXPLAIN语句的基本概念及其优化