今天開始學Convex Optimization:引言、第1章基本概念介紹


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課程的第一章課件。課件內容是截圖,我就不重新打了,下面都有文字描述理解。給一個基本的概念,有些不求甚解也問題不大(包括我哈~)。

優化問題的數學定義:f0f_0是目標函數,fif_i是不等式約束函數,如果對任意滿足約束的向量zz,有f0(z)f0(x)f_0(z) \geq f_0(x^*),那麼稱xx^*爲優化問題的最優解。
在這裏插入圖片描述

非作者注:general optimization problem是很難求解的,特別是非凸,以及帶約束的優化問題求解,都是比較複雜的。我們現在常用的神經網絡優化求解,大部分是無約束的非凸優化,即使一些有約束的問題,往往也是做一些放鬆,然後加到loss function裏面去,看成一個整體function來求解。

凸優化問題

本書主要介紹凸優化問題,定義是:對於目標函數以及約束函數都是convex的優化問題,稱爲convex optimization問題。
在這裏插入圖片描述
本節簡單介紹兩個非常常用的凸優化例子:最小二乘問題和現行規劃問題。

最小二乘問題

基本最小二乘問題特點是:沒有約束條件(m=0m=0),目標函數是若干項的平方和,每一項的形式是aiTxbia_i^Tx-b_i,寫成矩陣形式:
在這裏插入圖片描述
這個就是基礎線性迴歸模型,一般寫成b=Axb= Ax,最小化目標是就是(求解是最基礎的,E對x求導=0,得到x*):
minxE=bAx2x=(ATA)1ATy \min_x E=||b-Ax||^2 \\ x^* = (A^TA)^{-1}A^Ty

還有加權最小二乘問題,我們最小化加權的誤差值:
i=1kwi(aiTxbi)2 \sum_{i=1}^k w_i (a_i^Tx - b_i)^2
其中,加權係數wiw_i均大於零,表示每一個子項的重要程度,在統計應用中,當給定的現行觀測值包含不同方差的噪聲時,我們用加權最小二乘來估計向量x。

在線性迴歸模型上加上一個變量的L2-norm,是一種常見的正則化技術:可以避免x的數值過大,過大時懲罰項會較大。最小化:
i=1k(aiTxbi)2+ρi=1nxi2x=(ATA+ρIn×n)1ATy \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})^{-1}A^Ty

其中ρ>0\rho>0

線性規劃問題

在這裏插入圖片描述
雖然線性規劃問題一般沒有解析解(也有叫做閉合解,closed form),卻存在很多有效的求解方法,包括Dantzing的單純形法以及內點法,(非作者注:這些都是很經典的優化方法,平時我也很難用到,先mark一下,後面有需要的時候找資料看,本CVX書後面算法部分重點介紹了內點法,似乎作者Stephen Boyd特別看重內點法)。

一個優化問題例子:最佳燈源問題

有m盞燈,要照亮n個板子,每一塊板子的光照強度公式如下,是所有燈功率的一個加權和。

問題:在燈的功率限制範圍內,達到給定光照強度IdesI_{des},給出最接近的功率方案。
在這裏插入圖片描述

這個目標函數挺有意思,先max,後min——意思是說首先對每一個板子k都檢查一下光照強度,是否偏離目標IdesI_{des},偏離程度中最大的那一項,我們要最小化它的值,所以相當於我們要求每一個板子k的光照強度都儘可能地和目標IdesI_{des}接近。怎麼解這個優化問題呢?

在這裏插入圖片描述
在這裏插入圖片描述
方法有很多,最後5是構造了一個凸優化問題,有了這個形式以後就可以用一些成熟的凸優化方法來求解,本章節不介紹。

非作者注:很多問題如何構造成一個凸優化問題往往是最難的,如果能構造出來,那麼基本上就是認爲可以比較容易求解了。

Chebyshev逼近問題,轉化成線性規劃

再給一個例子:
在這裏插入圖片描述
在這裏插入圖片描述
其實和上面點燈的例子很像,但又不完全一樣。原始min-max問題可以認爲是讓現行迴歸的值aiTxa_i^Txbib_i儘可能接近,因此引入一個誤差的bound t,限制條件很容看到可以轉化爲
taiTxbitaiTxbit -t \leq a_i^Tx - b_i \leq t \\ | a_i^Tx - b_i | \leq t
雖然tRt\in R,但實際上我們可以看到t0t \geq 0,否則上面限制條件就不成立了。因此ttt-t可以看成是aiTxbia_i^Tx - b_i的一個對稱的上下界,我們最小化這個界,就是讓值aiTxa_i^Txbib_i儘可能接近,因此(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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章