この関数の極値はグラフを見ると一目瞭然でx=0の時に与えられます。この場所を数学の手法で見つけるには、まずyをxで微分した式を求めます:そしてこの式が0になるxが極値になります(正しくは極値の候補)。簡単(^-^)上の二次関数は変数が一つ(x)の関数ですが、世の中には変数を複数持つ関数もあります。y)という数値になる関数です。y)には残念ながら極値がありません。どこまで行っても平ら(地面と平行な所)にならないのですから。y)の偏微分は、と定数なので極値が存在しない事が分かります。この永遠に続く坂道、x,yがどこまでも行けるから極値が無い訳です。「行ける範囲が限定されていたら」どうでしょうか?例えば、という半径が1の円上しかx,yが動けないと制約してみましょう。坂道上に投影された円上のみが値として有効になった訳です:この赤い円上には極値が存在します!赤円の右上で坂道を登り切るのでそこが最大値、逆に左下が坂を下りきった位置になるので最小値です。極値が存在しなかった坂道に制約条件を加えると極値が出現しました。円の位置が変われば極値も変わります。本章で取り扱うラグランジュの未定乗数法は、このような元の関数f(x)に対し何らかの制約条件g(x)=0を与えた時に現れる極値を求める手法です。2変数関数で具体的に見てみましょうラグランジュの未定乗数法はまず実際に試してみた方がとっかかりが良いかなと思います。幾つか例を挙げてそのプロセスを体感してみましょう。冒頭に挙げた関数を改めて、と2つの変数x1,x2で定義します。この段階ではx1とx2は自由な値を取れる変数なので、関数fに極値はありません。その自由を邪魔する束縛条件を、と関数gで表すとします。関数fと違い関数gは制約の為に方程式の形になっている事に注意して下さい。先程も図示したように、この制約条件はx1,x2を半径1の円上に制約します。ラグランジュの未定乗数法は元の関数fと制約条件を表す関数gから次のような新しい関数Fを作ります:「な、な、いきなり何だ?」と困惑するかもしれませんが、実はこの関数が実に素晴らしい働きをしてくれますので、今はそういうもんなのねと飲み込んでおいて下さい。注目するのは関数gに変数λ(ラムダ)が掛け算されている所です。このλの事を「未定乗数」と言います。今は謎のこの変数λの正体も追々判明していきます。λが追加されたので、関数Fはλ、x1、x2と3変数を持つ関数になります。次に関数Fが持っている変数λ、x1、x2で関数Fを偏微分し、それらの式がすべて0だとしてしまいます:偏微分した式が3本、そして関数Fにある未知の変数は3つ。いう事は、そう、連立方程式を解くと上の3本の式を満たすλ、x1、x2が定まります。驚くべきことに、そのx1、x2が極値(の候補)になっているんです!「何で!?」と思う訳ですが、それは章の後半で説明します(^-^)。実際に連立方程式を解いてみましょう。2本目と3本目の式から、ですからこれを1本目の式に代入すると、とλが算出できました。ここから、(符号同順)が出てきました。図は白い方ほどf(x1,x2)の値が大きい事を意味しています。赤い円がg(x1,x2)=0をf(x1,x2)に投影した物です。赤い点が極値で円の丁度斜め45度、円の半径は1なので、お〜〜〜ちゃんと先のx1,x2の座標になっています!このようにラグランジュの未定乗数法を用いると、制約条件付きの極値が連立方程式の解として出現します。面白くて不思議な手法です。多変数関数(1束縛条件)でも同じ考え方は変数の数が3個、4個、...N個と多変数に増えても同じです。束縛の無い関数を、とします(別に線形に足すだけじゃなくても何でも良いのですが分かりやすいので(^-^;)。関数fは3次元の空間の1点の値を表しています。例えるなら、お部屋の中にX1,x2,x3軸を作ったとして、軸の方向に行く程気温が高くなるような状態です。束縛関数は、という半径が1の球体の表面だとしましょう。この球体の表面の中で温度が最も高くなる(低くなる)場所が極値です。�@と同様の手順で進めてみます。関数Fを作りましょう:で、この関数Fを変数λ,x1、x2、x3それぞれで偏微分し、その答えを0とします:式が4本、変数も4つなのでこの連立方程式は解く事ができます。2〜4本目の式から、これらを1本目の式に代入してラムダを算出すると、となり、ここから、(複合同順)とめでたく解が出てきました。これは丁度お部屋が立方体だとして、その中心から温度が高くなっている(低くなっている)方の角へ向かって進み半径1の球の表面とぶつかった点です。多変数関数で束縛条件も複数ある場合ラグランジュの未定乗数法は束縛条件が複数ある場合でも同様の手順を踏めるのが面白い所です。�Aの束縛条件として例えば、という2種類の条件を同時に満たす極値を求めてみます。関数g1はx1x2平面に平行な半径1の円、関数g2はx2x3平面に平行な半径1の円で、関数fは3次元の空間なので、束縛条件は2本の同じ径を持つ円柱面が直角に重なった所となります。んー、イメージし難い...(-_-;;。こんな感じです:この赤い線分(裏も同様)が制約部分となります。束縛条件が複数になった時の関数Fは次のように束縛条件ごとにλ1、λ2と変数を設けて関数fから引き算します:この後の手順も一緒で各変数について偏微分し答えを0とします:ちょっとしんどいですが(^-^;、この連立方程式を解きます。x1、x2、x3はそれぞれこうなります:また1本目の式から2本目の式を引き算すると、ここにx1とx3を代入すると、ここからλ1=λ2もしくはλ1=-λ2がわかるのですが、後者の場合(λ1+λ2)=0になるためx2が無限大に発散してしまいます。よってλ1=λ2=λ。これを1本目と2本目の式に再度突っ込むとこうなります:ここから、(複合同順)が導けました。ちなみに、これ本当に極値なのかを数値的に調べてみます。真ん中の緑色の帯が極値です。上下でx1の値が極値から少しずれます。それに合わせてx2,x3の値も変わります(制約条件を満たす)。右列の値はf列の値について極値からの差を示しています。これを見ると極値がちゃんと最大値になっているのがわかりますね。極値が求まるのか?さて、ここまでの計算例で確かにラグランジュの未定乗数法は制約条件を満たす極値を与えてくれました。狐につままれたような不思議な式。ラグランジュの未定乗数法はなぜ制約条件の下で関数の極値を求める事ができるのでしょうか?この理由をイメージする時にキーワードとなるのが「勾配(Gradient)」です。勾配というのは坂道のきつさのようなイメージかもしれませんが、数学的には「ある点に注目した時、値がプラス側に最も大きく変化する方向での斜度」を意味します。その方向を勾配ベクトルと言います。x^2という放物線を考えてみます:今x=1という位置にいるとしましょう(赤丸の位置)。この位置の勾配ベクトルはどの方向になるでしょうか?「値がプラス側に変化する方向だから、右斜め上かな?」とイメージされた方、気持ちわかります!でも、勾配ベクトルは「変数だけで表現する」という概念なんです。二次関数の変数はxだけで、f(x)は変数ではありません。よってx軸だけでその方向を表します。x=1の地点から見てよりf(x)の値が大きくなるなるのはX軸方向ですね。よってX軸と平行な右矢印がx=1での勾配ベクトルの方向となります:でも、方向だけだとその勾配が「どれだけ急勾配か?」わかりませんね。x=1の勾配よりx=3の勾配の方がはるかに急です。ベクトルがあるのですから、その長さで勾配の大きさを表すともっと便利です。それをまるっと解決してくれるのが「微分」です。微分って「変数がちょっと動いた時に値がどれだけ大きくなるか」でしょ。それって正に勾配です。x^2の勾配は、f(x)を変数xで微分すると自然に求まってしまうんですね。2xですから、x=1の勾配の大きさはf'(1)=2。x=3の時はf'(3)=6となって、3倍急勾配であると分かります。2変数関数の場合も考え方は一緒です。これは深皿のようなパラボラになります。この勾配ベクトルは変数であるX軸及びY軸の二つでその方向を表すことになります。y)からX軸方向とY軸方向ににちょっとだけ動かしてみるとその地点の勾配がわかります。xとyそれぞれの偏微分が勾配ベクトルの各成分になるんです。勾配って実に直観的(^-^)。実際パラボラの勾配ベクトルを描いてみるとこんな感じになります:見事に放射状にベクトルが広がっていますね。中心からの距離に比例して勾配ベクトルが大きくなっています。1)の位置にボールを置くと、ボールは(下向きに重力があるとして)どの方向に転がっていくでしょうか?もうお察しと思いますが、勾配ベクトルと反対の方向の斜面に沿って転がっていきます。反対になるのは勾配ベクトルが「より値の大きくなる方向」なのに対して重力は「より値の小さい方向」に引っ張ろうとするからです。重要なのは「勾配ベクトルが坂道の一番きつい方向を指している」という事実です。これがラグランジュの未定乗数法を導く一つの鍵となります。勾配がゼロとなる所は極値の候補になります。傾斜が無いならそれは平らだからです。「候補」なのは全変数での偏微分がゼロでも天辺や底にならないケースがあるからです。x^3はその簡単な例で、xでの微分がゼロになるのはx=0の地点だけですが、ここは天辺でも底でも無いですよね(x<0の方にボールを押すと下へ転がり、x>0の方にはより高い位置がある)。x=0の所だけが「平ら」なだけです。いう所は極値とは言わず「停留点」と呼びます。極値は停留点の特別なケースという訳です。極値を含む停留点には一つ重要な共通項があります。それは「停留点にボールを置いてもボールは転がらない(動かない)!」という事です。逆もまたしかりで、ある点に置いたボールが動かなければそこは停留点です。これ!これがラグランジュの未定乗数法を一気に導く二つ目の鍵となります。ラグランジュの未定乗数法には制約条件関数gがありました。これは上の例を踏襲して言うなら「ボールを置く位置を限定する」ものです。y)ももちろん変数xやyで偏微分出来ます。y)の勾配ベクトルも定まります。y)=0ですから、その勾配ベクトルはXY平面にある赤い線から伸びる矢印だけが意味を成します。y)の勾配ベクトルが線に対して垂直な向きになっているのがわかりますね。勾配ベクトルが線分に対して垂直という事は、それに垂直な方向は線分の接線方向になる訳です。「勾配ベクトルに垂直な方向が接線だ」、この性質も鍵の一つです。y)=0限定の勾配図を意味を成す線上で重ねてみます。すると、非常に興味深い事実が見えてきます:パラボラをほぼ真上から見た様子です。地面に勾配ベクトルが描かれています。黒い矢印がパラボラの、赤い矢印が制約関数gの勾配ベクトルです。このパラボラの表面に球を置くとします。0を満たすx,yの上しか置けませんし動けません。この線上の例えば下図の位置にボールを置いてみます:もし何の制約も無かったら、ボールは黒い矢印で示した勾配ベクトルと反対方向にコロコロと転がっていきます。今ボールはこの赤い線上しか動けません。ボールを置いた位置での赤い線の接線方向を青い矢印で示しています。見ると黒い転がる方向に対し接線が転がる方向側にやや寄っていますよね。すると、ボールは青い矢印方向にすすすっと転がろうとします。ボールが転がるという事は「そこは平らでは無い(=もっと値が小さくなる場所がある)」という事です。赤い点の位置は極値(停留点)ではありません。y)の勾配ベクトルの反対である黒い矢印の方向に転がろうとしますが、動ける方向は相変わらず赤線の上だけです。その赤線の接線(青い線)はこの地点をピンポイントで見ると「黒い矢印に対して垂直に」走っています。y)の勾配ベクトルと平行になっているからです。黒い矢印の方向に転がろうという力は、赤線の接線が垂直である為、赤線上の左右どちらにも分配されません。結局球は坂道も転がれず、赤い線上も動く事が出来ず、ここで完全にせき止められてしまいます。y)の勾配ベクトルが平行になる点は停留点である!」というのが実感できるかと思います。2つの平行なベクトルは、そのベクトルの成分の比が同になります。2)は長さが違うだけで平行ですよね。数式で書くと2つのベクトルが平行というのは、と定数λで比を表すと書けます。お、これみよがしに出ました「λ」(笑)。停留点ではこの2つのベクトルが平行なのですから、です。これを各成分別に分けて書くと、そして右辺を左辺に移項すると...、どこかで見た気がしますよね。y)の勾配ベクトルがx,yで平行になる=極値(停留点)だ」という事実を間接的に表していたんです。x,yは制約条件g(x,y)=0の範囲でしか動けない。その条件は関数Fをラムダで偏微分した式、で直接示されます。わかるように、停留点でのf(x,y)及びg(x,y)の勾配ベクトルの大きさの比、つまりは傾斜の度合いの比です。方程式を解く時にだけ使う値ではありますが、これが極値である証なわけで趣き深い変数です。ラグランジュの未定乗数法とビッグデータ解析ラグランジュの未定乗数法は、実は色々な所で活躍しています。昨今何かと出てくる「ビッグデータ」の解析。ビッグデータと言うのは文字通り「でっかいデータ」つまり物凄い多量なデータの塊を言います。ビッグデータで溢れる社会において、その大量のデータから意味のある何かを抽出する事が求められています。歩いた距離、購入時の天候、季節、周囲にあるライバル店までの距離、近くにあるオフィスビル内の人数、etc...とあらゆる要素が考えられます。ビッグデータとなるとその項目数は物凄い数になります。何となく「そういう項目って沢山あった方がより詳細に知りたい事がわかるんじゃないの?」と思ってしまいがちですが、実は違うんです。項目が沢山あればあるほど「互いに関連を持つ(相関を持つ)項目」や「結果をぼかしてしまう項目」などが増えてしまうんです。これらは知りたい情報を攪乱し、時に間違った答えを導いてしまいます。ビッグデータから知りたい情報を取り出す式f(x)があるとします。f(x)はあらゆる項目を含んでいて、項目間の相関や攪乱データによって意図しない答えを出してしまう問題をはらみます。そこで、f(x)に対して例えば「項目数が多過ぎる場合はペナルティーを課す」という「制約」を設けます。すると、式f(x)はその制約上でしか動けなくなります。少ない項目数になる程ペナルティーは低くなりますが、少なすぎる項目数だと知りたい情報がぼやけてしまう。ここから、程よい項目数(項目の組み合わせ)が導かれてきます。その程よい項目数の下で知りたい情報を最大化する変数の組み合わせがあるかもしれません。f(x)という式に対して項目数に対するペナルティーという「制約」...これ、ラグランジュの未定乗数法の考え方の応用です。ラグランジュの未定乗数法は今日のビッグデータ解析と根底の所で実は繋がっていたりします。