本記事では、制約付き極値問題を解く手法の一つであるラグランジュの未定乗数法について説明します。
*計算や解釈の違い等がありましたら、ガンガンご指摘ください!
ラグランジュ未定乗数法の目的
まずは、ラグランジュの未定乗数法の目的を整理します。
ラグランジュの未定乗数法の目的
\(n\)変数関数の\(m\)個の等式制約\(g_{1}(x_{1}, \ldots, x_{n}) = \cdots = g_{m}(x_{1}, \ldots, x_{n})=0\)のもとで、\(f(x_{1}, \ldots, x_{n})\)の停留点を求める。
*\(g_{1}, \ldots, g_{m}, f\)はそれぞれ微分可能かつ偏導関数が連続ということを仮定します。
よく教科書の説明では、上記の目的を簡単にして以下のように二変数の問題で説明することが多いです。
ラグランジュの未定乗数法の目的|二変数の場合
2変数関数の等式制約\(g(x, y) = 0\)のもとで, \(f(x, y)\)の停留点を求める
しかし、機械学習や数理物理では二変数以外のケースも頻繁に現れるため、多変数のケースの説明を行います。
ラグランジュの未定乗数法とは
先ほど説明した目的を達成するために、ラグランジュの未定乗数法は、次の定理を利用します。
*いち早く使えるようになりたい方は、これから説明する定理の雰囲気だけ理解して、次の例題を解きながら理解を深めることをおすすめします。
定理
\(\nabla_{\mathbf{x}} g_{1}, \nabla_{\mathbf{x}} g_{2}, \ldots, \nabla_{\mathbf{x}} g_{m}\)が一次独立のとき、
\begin{align} &L(x_{1}, \ldots, x_{n}, \lambda_{1}, \ldots, \lambda_{m}) \\ &= f(x_{1}, \ldots, x_{n}) ~- \sum_{i=1}^{m} \lambda_{i} g_{i}(x_{1}, \ldots, x_{n}) \end{align}
とおくと、\(g_{1}(x_{1}, \ldots, x_{n}) = \cdots = g_{m}(x_{1}, \ldots, x_{n})=0\)のもとで、\(f(x_{1}, \ldots, x_{n})\)の停留点は以下を満たす。
$$\frac{\partial L}{\partial x_{1}} = \cdots = \frac{\partial L}{\partial x_{n}} = \frac{\partial L}{\partial \lambda_{1}} = \cdots = \frac{\partial L}{\partial \lambda_{m}} = 0$$
または、以下を満たす。
$$\sum_{i=1}^{m} \lambda_{i} \frac{\partial g_{i}}{\partial x_{1}} = \cdots = \sum_{i=1}^{m} \lambda_{i} \frac{\partial g_{i}}{\partial x_{n}} = 0$$
一般的に\(L(x_{1}, \ldots, x_{n})\)はラグランジュ関数、\(\lambda_{1}, \ldots, \lambda_{m}\)はラグランジュ定数と呼ばれます。
これも、教科書だと二変数の場合がよく紹介されるので、二変数の場合の定理も以下にまとめておきます。
定理|二変数の場合
$$L(x, y, \lambda) = f(x, y)~- \lambda g(x, y)$$
とおくと、\(g(x, y)\)のもとで、\(f(x, y)\)が極値を取る点は、以下を満たす。
$$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} = \frac{\partial L}{\partial \lambda} = 0$$
または、以下を満たす。
$$ \frac{\partial g}{\partial x} = \frac{\partial g}{\partial y} = 0$$
興味がある方は、以下に二変数関数の場合の証明を紹介します(一般の多変数関数の拡張は容易なので割愛します)
『証明よりも、ラグランジュの未定乗数法を使えるようになりたい!』という方は次に進んでください!
証明(二変数の場合)
等式制約条件\(g(x, y)\)より、\(y=\psi(x)\)と表せる(参照 : 陰函数定理 – Wikipedia)。
この結果から、\(g(x, \psi(x))\), \(f(x, \psi(x))\)と表せ、全微分と停留点となる条件より次の等式が導ける。
\begin{align} &\frac{\partial g(x, \psi(x))}{\partial x} + \frac{\partial g(x, \psi(x))}{\partial y} \psi^{\prime}(x) = 0 \\ &\frac{\partial f(x, \psi(x))}{\partial x} + \frac{\partial f(x, \psi(x))}{\partial y} \psi^{\prime}(x) = 0 \end{align}
\(\psi(x)\)を消去すると停留点となる点では次の関係式が満たされる。
$$\frac{\frac{\partial f(x, y)}{\partial x}}{\frac{\partial g(x, y)}{\partial x}} = \frac{\frac{\partial f(x, y)}{\partial y}}{\frac{\partial g(x, y)}{\partial y}}$$
上記の式の両辺を\(\lambda\)とおくと、停留点となるとき、次を満たす。
$$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} = 0$$
ラグランジュの未定乗数法の例題
具体的には、以下の手順で等式制約条件のもとで停留点を求める問題を解くことができます。
- ラグランジュ関数を定義する
- ラグランジュ関数の偏微分を計算する
- 偏微分が0となる条件の連立方程式を解く
実際に、例題を使って詳しく解説します。
三変数の例題
二変数の例題は、教科書によく載っていると思うので、今回は三変数の問題を扱ってみます。
具体的には、次のような例題を考えます。
体積が一定値\(V\)の直方体のうち、縦、横、高さの三辺の長さの和が最小となるものを求めよ。
それでは、具体的に最小値を求めていきましょう!
ラグランジュ関数を定義する
まずは、問題を数式で表します。
縦、横、高さをそれぞれ \(x_{1}, x_{2}, x_{3} \)とすると、三辺の長さの和 \( f(x_{1}, x_{2}, x_{3}) \)は、以下のように表せます。
$$ f(x_{1}, x_{2}, x_{3}) = x_{1} + x_{2} + x_{3} $$
次に、体積が一定値 \(V = x_{1} x_{2} x_{3} \)という制約条件を以下のように等式制約条件に変換しましょう。
$$ g( x_{1}, x_{2}, x_{3} ) = x_{1} x_{2} x_{3} – V = 0 $$
ここまでくれば、ラグランジュ関数は次のように定義できます。
$$ L( x_{1}, x_{2}, x_{3}, \lambda ) = x_{1} + x_{2} + x_{3} ~- \lambda ~( x_{1} x_{2} x_{3} – V) $$
ラグランジュ関数の偏微分を計算する
次にラグランジュ関数\(L( x_{1}, x_{2}, x_{3}, \lambda )\) の偏微分を求めてみましょう。
\begin{align} \frac{\partial L }{\partial x_{1}} &= 1 ~- \lambda x_{2} x_{3} \\ \frac{\partial L }{\partial x_{2}} &= 1 ~- \lambda x_{1} x_{3} \\ \frac{\partial L }{\partial x_{3}} &= 1 ~- \lambda x_{1} x_{2} \\ \frac{\partial L }{\partial \lambda} &= x_{1} x_{2} x_{3} ~- V \end{align}
偏微分が0となる条件の連立方程式を解く
あとは、先ほど求めた偏微分が0となる条件の連立方程式を解けば良いだけです。
\begin{align} &1 ~- \lambda x_{2} x_{3} = 0 \\ &1 ~- \lambda x_{1} x_{3} = 0 \\ &1 ~- \lambda x_{1} x_{2} = 0 \\ &x_{1} x_{2} x_{3} ~- V = 0 \end{align}
この方程式の解は、\( x_{1} = x_{2} = x_{3} = V^{1/3} \)となり、停留点は\( f(x_{1}, x_{2}, x_{3}) = 3 V^{1/3} \) となります。
例題は停留点を求めるのではなく、最小値を求める点に注意する必要があります。
本来は、今回求めた停留点が最小値になるかどうかは勾配を用いて数学的に確かめる必要ありますが、\(f(x_{1}, x_{2}, x_{3})\)は、一辺を無限に長くすることで、3辺の和を体積一定のまま無限にすることができるため、最大値は存在しません。
そのため、\( f(x_{1}, x_{2}, x_{3}) = 3 V^{1/3} \)は最小値となることがわかります。
結局、3辺の値が最小になるのは立方体というのがオチでした笑笑
n変数の例題
次は、一般の\(n\)変数の例を考えます。
具体的には、次の例題を考えます。
例題|\(n\)変数
等式制約\(g(x_{1}, \ldots, x_{n}) = \sum_{i=1}^{n} x_{i}~ – 1=0\)の条件のもと、次の関数の最大値を求めよ。
$$f(x_{1}, \ldots, x_{n}) =~ – \sum_{i=1}^{n} x_{i} \log_{2} x_{i}$$
それでは、具体的に最大値を求めていきます。
ラグランジュ関数を定義する
問題設定からラグランジュ関数は次のように定義できます。
\begin{align}L(x_{1}, \ldots, x_{n}) = ~- \sum_{i=1}^{n} x_{i} \log_{2} x_{i} + \lambda \left(\sum_{i=1}^{n}x_{i} -1 \right) \end{align}
ラグランジュ関数の偏微分を計算する
任意の\(i\)について偏微分は、次のように計算できます。
$$\frac{\partial L}{\partial x_{i}} = ~- \left(\frac{1}{\log 2} + \log_{2} x_{i} \right) + \lambda$$
偏微分が0となる条件の連立方程式をとく
先ほど求めた偏微分が\(0\)となる条件から、全ての\(i\)に対して以下の結果が導けます。
$$x_{i} = 2^{\lambda + \log 2}$$
この結果から全ての\(x_{i}\)に関して次の等式が成り立ちます。
$$x_{1} = x_{2} = \cdots = x_{n} = 2^{\lambda + \log 2}$$
また、制約条件\(g(x_{1}, \ldots, x_{n}) = \sum_{i=1}^{n} x_{i} – 1=0\)より、以下の結果が導けます。
$$x_{1} = x_{2} = \cdots = x_{n} = \frac{1}{n}$$
離散確率を\(x_{1}, \ldots, x_{n}\)としたとき、情報論の離散エントロピーは、今回最大値を求めた以下の関数で表されます。
$$f(x_{1}, \ldots, x_{n}) = ~- \sum_{i=1}^{n} x_{i} \log_{2} x_{i}$$
また、等式制約条件\(g(x_{1}, \ldots, x_{n}) = \sum_{i=1}^{n} x_{i} – 1=0\)は、確率になるための条件です。
実際に、等式条件のもと得られた結果は、全ての事象が等確率の一様分布となりました。
$$x_{1} = x_{2} = \cdots = x_{n} = \frac{1}{n}$$
実は、定性的に離散エントロピーは『ある事象の不確実度』のような量を表しており、全ての事象が等確率の一様分布は最も不確実度が大きいので直感に反しない結果になっています。
まとめ
本記事では、ラグランジュの未定乗数法とその使い方を説明しました。
もう一度、ラグランジュの未定乗数法を使用するプロセスを以下にまとめます。
- ラグランジュ関数を定義する
- ラグランジュ関数の偏微分を計算する
- 偏微分が0となる条件の連立方程式を解く
様々な場面で出てくるので、確実に理解しましょう。
『Amazon Prime Student』は、大学生・大学院生限定のAmazon会員制度です。
Amazonを使用している方なら、必ず登録すべきサービスといっても過言ではありません…
主な理由は以下の通りです。
- 『Amazon Prime』のサービスを年会費半額で利用可能
- 本が最大10%割引
- 文房具が最大20%割引
- 日用品が最大15%割引
- お急ぎ便・お届け日時指定便が使い放題
- 6ヶ月間無料で使用可能
特に専門書や問題集をたくさん買う予定の方にとって、購入価格のポイント10%還元はめちゃめちゃでかいです!
少なくとも私は、Amazon Prime Studentを大学3年生のときに知って、めちゃめちゃ後悔しました。
専門書をすでに100冊以上買っていたので、その10%が還元できたことを考えると泣きそうでした…ww
より詳しい内容と登録方法については下記を参考にしてください。
登録も退会もめちゃめちゃ簡単なので、6ヶ月の無料体験期間だけは経験してみても損はないと思います。