2012-09-10 33 views
4

我正在嘗試使用Matlab優化工具箱來優化設備設計(使用fmincon函數來精確)。爲了快速得到我的觀點,我提供了一個小變量集{l_m,r_m,l_c,r_c},它的起始值等於{4mm,2mm,1mm,0.5mm}。正常化在優化中是否有用/必要?

儘管Matlab沒有特別推薦標準化輸入變量,但我的教授建議我將變量標準化爲{l_m,r_m,l_c,r_c}的最大值。因此,這些變量現在取值從0到1(而不是在l_m的情況下是3mm到4.5mm)。當然,我必須修改我的目標函數,將其轉換回適當的值,然後進行計算。

我的問題是:如果輸入變量被歸一化,那麼優化函數就像fmincon一樣小心嗎?由於正常化而期望性能發生變化是否合理?要考慮的要點是優化器如何像變量l_m那樣改變變量 - 在一種情況下,它可以將其從4mm改變爲4.1mm,而在另一種情況下,它可以將其從0.75改變爲0.76。

+0

在不同的問題領域中有很多種不同的規範化:所有的變量都在相同的範圍內,例如0 .. 1,或者減去均值併除以標準差,或者將每個數據點x除以其標準| x | (相當於使用[餘弦距離](http://en.wikipedia.org/wiki/Cosine_similarity),適用於稀疏數據)。這些都不能在任何地方工作 - 無約束/框約束,凸/不... – denis

回答

5

當輸入標準化時,通常更容易優化。除了收斂速度和輸出精度之外,你可以改進。例如,正如您在本文(http://www-personal.umich.edu/~mepelman/teaching/IOE511/Handouts/511notes07-7.pdf)中看到的那樣,當Hessian的最大和最小特徵值之比較小時,梯度下降的收斂率更好。通常,當你的數據被標準化時,這個比例是1(最佳)。

+0

它是目標函數* Hessian *的特徵值。 – Oli

+1

文章鏈接已損壞。 – Anthony

+0

@Anthony,我在我的回答中描述了鏈接內容的導入部分。 – Oli