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課程的第一章課件。課件內容是截圖,我就不重新打了,下面都有文字描述理解。給一個基本的概念,有些不求甚解也問題不大(包括我哈~)。
優化問題的數學定義:是目標函數,是不等式約束函數,如果對任意滿足約束的向量,有,那麼稱爲優化問題的最優解。
非作者注:general optimization problem是很難求解的,特別是非凸,以及帶約束的優化問題求解,都是比較複雜的。我們現在常用的神經網絡優化求解,大部分是無約束的非凸優化,即使一些有約束的問題,往往也是做一些放鬆,然後加到loss function裏面去,看成一個整體function來求解。
凸優化問題
本書主要介紹凸優化問題,定義是:對於目標函數以及約束函數都是convex的優化問題,稱爲convex optimization問題。
本節簡單介紹兩個非常常用的凸優化例子:最小二乘問題和現行規劃問題。
最小二乘問題
基本最小二乘問題特點是:沒有約束條件(),目標函數是若干項的平方和,每一項的形式是,寫成矩陣形式:
這個就是基礎線性迴歸模型,一般寫成,最小化目標是就是(求解是最基礎的,E對x求導=0,得到x*):
還有加權最小二乘問題,我們最小化加權的誤差值:
其中,加權係數均大於零,表示每一個子項的重要程度,在統計應用中,當給定的現行觀測值包含不同方差的噪聲時,我們用加權最小二乘來估計向量x。
在線性迴歸模型上加上一個變量的L2-norm,是一種常見的正則化技術:可以避免x的數值過大,過大時懲罰項會較大。最小化:
其中。
線性規劃問題
雖然線性規劃問題一般沒有解析解(也有叫做閉合解,closed form),卻存在很多有效的求解方法,包括Dantzing的單純形法以及內點法,(非作者注:這些都是很經典的優化方法,平時我也很難用到,先mark一下,後面有需要的時候找資料看,本CVX書後面算法部分重點介紹了內點法,似乎作者Stephen Boyd特別看重內點法)。
一個優化問題例子:最佳燈源問題
有m盞燈,要照亮n個板子,每一塊板子的光照強度公式如下,是所有燈功率的一個加權和。
問題:在燈的功率限制範圍內,達到給定光照強度,給出最接近的功率方案。
這個目標函數挺有意思,先max,後min——意思是說首先對每一個板子k都檢查一下光照強度,是否偏離目標,偏離程度中最大的那一項,我們要最小化它的值,所以相當於我們要求每一個板子k的光照強度都儘可能地和目標接近。怎麼解這個優化問題呢?
方法有很多,最後5是構造了一個凸優化問題,有了這個形式以後就可以用一些成熟的凸優化方法來求解,本章節不介紹。
非作者注:很多問題如何構造成一個凸優化問題往往是最難的,如果能構造出來,那麼基本上就是認爲可以比較容易求解了。
Chebyshev逼近問題,轉化成線性規劃
再給一個例子:
其實和上面點燈的例子很像,但又不完全一樣。原始min-max問題可以認爲是讓現行迴歸的值和儘可能接近,因此引入一個誤差的bound t,限制條件很容看到可以轉化爲
雖然,但實際上我們可以看到,否則上面限制條件就不成立了。因此和可以看成是的一個對稱的上下界,我們最小化這個界,就是讓值和儘可能接近,因此(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)