1. 程式人生 > >如何計算區域的下邊界?

如何計算區域的下邊界?

邊界 splay 如何 TE quad ots AS 最優解 最小化

如下圖所示,如何計算曲線的下邊界?
技術分享圖片

設輸入的數據為 \(\{(x_n, y_n)\}_{n=1}^{N}\), 直線方程為 \(y = k x + b\)。 根據拉格朗日乘子法,求解優化問題

\[ \begin{align} \min_{k, b} \quad & f(k, b) = \sum_{n=1}^{N}{ (y_n - k x_n - b)^2 } \\text{s.t.} \quad & y_n \ge k x_n + b, \quad n = 1, \cdots, N \end{align} \]

等價於最小化

\[ \begin{align} \min_{k, b} \quad & g(k, b, \lambda) = \sum_{n=1}^{N}{ [(y_n - k x_n - b)^2 + \lambda_n(k x_n + b - y_n)]} \\text{s.t.} \quad & \lambda_n \ge 0, \quad n = 1, \cdots, N \end{align} \]

其最優解滿足KKT條件

\[ \begin{align} 2\sum_{n=1}^{N}{(y_n - k x_n - b)x_n} = \sum_{n=1}^{N} {\lambda_n x_n} \2\sum_{n=1}^{N}{(y_n - k x_n - b)} = \sum_{n=1}^{N} {\lambda_n} \\lambda_n(y_n - k x_n - b) = 0, \quad n = 1, \cdots, N \y_n \ge k x_n + b, \quad n = 1, \cdots, N \\lambda_n \ge 0, \quad n = 1, \cdots, N \end{align} \]

其中,關於 \(k\)\(b\) 的方程可以寫為
\[ \begin{align} (2\sum_{n=1}^{N}{ x_n ^2}) k + ( 2\sum_{n=1}^{N}{ x_n}) b & = 2\sum_{n=1}^{N}{y_n x_n} - \sum_{n=1}^{N} {\lambda_n x_n} \(2\sum_{n=1}^{N}{x_n} ) k + 2Nb & = 2\sum_{n=1}^{N}{y_n} - \sum_{n=1}^{N} {\lambda_n} \end{align} \]

寫成矩陣形式
\[ \begin{align} \left[\begin{array}{cc} \sum_{n=1}^{N}{ x_n ^2} & \sum_{n=1}^{N}{ x_n} \2\sum_{n=1}^{N}{x_n} & N \end{array} \right] \left[ \begin{array}{c} k \\ b \end{array} \right] & = \left[\begin{array}{c} \sum_{n=1}^{N}{y_n x_n} - \frac{1}{2} \sum_{n=1}^{N} {\lambda_n x_n} \\sum_{n=1}^{N}{y_n} - \frac{1}{2}\sum_{n=1}^{N} {\lambda_n} \end{array}\right] \end{align} \]

如何計算區域的下邊界?