凸関数の便利な性質

凸関数の便利な性質である以下の定理を証明しました.
f is convex if and only if g(t) = f(tx + (1-t)y) is convex.
fが凸関数であるための必要充分条件は上のg(t)が凸関数であることである.
これは有用な性質であるように思われます.n変数関数を1変数関数で表現できてますからね. 事実Convex Optimizationでは,first-order conditionの証明にこれが出てきました. first-order conditionは最も重要な定理の一つだと考えていますので,これの証明に出て来るこの定理は有用に違いない! ならば理解するしかない!というわけで証明を書いてみました. ちなみに初めて英語で書いたので,かなり怪しいですが.PDFで出してます.

次はfirst-order condition の証明もしたいですね.というか誰かにチェックしてもらいたい.

「近づける」と「小さくする」

どうやら僕は言葉を異常に気にするようだ. 微積分を復習していて,気になったことがある. まずは,微分係数や導関数の定義に出てくる,「近づける」という言葉だ. ちなみに,導関数のある値での関数値が微分係数だと理解している.

さて,「xをaに近づける」というと,「どう近づけるのか」,すなわちその経路が問題になる. x,aがスカラーなら,プラス方向とマイナス方向が考えられる. これが,2次元以上になると,その経路は数えきれないほど存在する. そこで,「近づける」という表現は「小さくする」という表現で書き直される.

また,「近づける」は「小さくする」に比べて抽象度が高いように思われる. 「近づける」をより具体的に表すためにもこれを「小さくする」に書き直される.

ちなみに,「ベクトルxを小さくする」,という表現は意味がわからない(ある方向にそって,というのであればわからないこともない). ここで小さくすると言ったらその対象はスカラーであることとする.

では,どのように「近づける」を「小さくする」に書き換えるのか. 「xをaに近づける」という表現を考える. これを「小さくする」に書き換えるために,|x-a|を考える. 距離だとかいう言葉はあえて使わない. 「xをaに近づける」を「|x-a|を小さくする」に書き換えることは,僕にも納得ができそうだ. ちなみに,「小ささ」は正であることにも納得ができる. これならば,2次元以上のベクトルに対しても使えそうだ. こうすると,いわゆる極限のときに使われる矢印記号\rightarrowを表現できそうな気がするが,まだ気が早いか. x \rightarrow aは「xをaに限りなく近づける」と読むと教わった気がする(これは非常に抽象的で,さっぱりわからないのだが). これを表現するには,「限りなく」の部分をどうするかを考えなくてはならない.
すなわち「どのくらい小さくするか」を考えなくてはならない. また,「xをaに限りなく近づける」の「限りなく」は「近づける」に係っているのだから,決してxはaにはならないことも暗に示されている. これをある正の数\epsilonを用いて表すこととする.

\displaystyle |x-a| < \epsilon,

すなわち,「正の数\epsilonより小さいほどに小さくする」と書くことで,「小さくする程度」を表現する. これにも納得ができそうだ. さらに,決してxはaにはならないことも考慮に入れると,

\displaystyle 0 < |x-a| < \epsilon,

と表される.
これで,「xをaに限りなく近づける」を表現できただろうか,いや,まだな気がする. 「小さくする程度」が表現できた気がするが,「限りなく小さくする」とはどういうことだろう. これはさっぱりわからない.本当にわからない.少し見方を変えてみる.
\epsilonにどんな(小さい)数を選んでも,上の式が成り立つとはどういうことか. これは「xをaに限りなく近づけ 得る 」ということではないか. すなわち「|x-a|を限りなく小さくし 得る 」ということではないか. これはなんとか納得ができそうだ. 「小さくする」と言うと,ある操作のように聞こえるが,「小さくし得る」と言えばまた違ってくる.

まとめ

「近づける」と「小さくする」という表現,また「限りなく」という表現について考えた. 「xをaに限りなく近づける」という表現は意味がわからないものとして,
「xをaに限りなく近づけ得る」という表現について考えることにする(ただし,xはaにはならない). そうするとこれは,
「どんなに(小さい)正の数\epsilonに対しても,0 < |x-a| < \epsilonが成り立つ」 という表現と等価であることに納得した. ここから更なる理解が深まることを期待したい.それにしても無限はわからないことだらけだ.

ベクトル空間の元と成分表示について

ここ最近,ベクトル空間というものによく出くわす.
そして,ここ最近ずっと悩まされている.つらい.が,楽しくもある.
出来の悪い僕は,誰もが簡単に通過できる部分にひどく苦しめられる.(決してベクトル空間が簡単な概念であると言いたいわけではない.)

この記事はベクトル空間の元について,掘り下げて考えてみたことをまとめたものである.
(正確には,まとめたevernoteのノートをちょっと変えてポストしているわけだが.)
ベクトル空間の定義はベクトル空間 – Wikipediaに任せるとしよう.
ここで考えたいのは,その元についてである.
僕はベクトル空間の元は,その名前から,ベクトルであるとなんとなく思っていたが,少し考えればそうとは限らないということがわかる.
院試のための勉強のときに,N次正方行列の全体はベクトル空間である,数列全体はベクトル空間である,などといった問題に遭遇したことを思い出したためである.
そうすると,ベクトル空間の元は,ベクトルであるとは限らないという結論に達する.
しかしながら,多くの本では,ベクトル空間の元は必ずベクトルであるかのように書かれている.
ここに,僕の誤解釈による大きな勘違いが生じていたことに気がつく.

さて,ベクトル空間の元とはなんであろうか?
結論から言えば,大きな勘違いは,元と成分表示を同一視していたために生じたと言える.
例として,2次正方行列の全体を考えると,これはベクトル空間である.
そうすると,この は2次正方行列である.当たり前の話である.
ここで,基底が登場する.基底については基底 (線型代数学) – Wikipediaに任せるとしよう.
基底に,{[1 0; 0 0], [0 1; 0 0], [0 0; 1 0], [0 0; 0 1]}をとれば,元の成分表示は[x1, x2, x3, x4]で表現できる.
そうすると,以下の結論が得られると思うのだが,どうだろうか.

ベクトル空間の元はベクトルでなくてもよいが,ある基底に対する元の成分表示はベクトルで書ける.

これは僕にとっては,頭の中をすっきりさせてくれる文である.
ここで,ある本にこう書いてあったのを思い出す.

ベクトル空間Vnの基底にBを固定する

僕はこれをすっと通り過ぎたために,勘違いが発生したのだ.
今やこの文の意味するところは,ベクトル空間Vnの基底にBを固定すると,その元の成分表示はベクトルで書けるので,Vnの元の成分表示全体の元はベクトルである,という意味だと勝手に考えている.
ここからもう一つ言えるのは,

基底を構成する要素はベクトルでなくても良い

ということだ.上の例では基底を構成する要素は2次正方行列である.
しかしながら,基底の条件を見ると,線形独立性と,全域性が挙げられている.
そうすると,これら2つの性質はベクトルに限ったことではないと考えられる.

整理するとベクトル空間Vnを考える.
ここに基底Bを固定する(もちろんBの構成要素はベクトルでなくてよい).
Vnの元の基底Bによる成分表示の全体をB(Vn)とすると,B(Vn)の元はベクトルである.
この段階で,”Vnの元”と, B(Vn)の元 を同一視して考えることにすると,暗に仮定しているのではないか.
なので,Vnの元は必ずベクトルで表されるのだ(なぜならこの段階でVnの元,というとB(Vn)の元を指しているのだから).

もう一つ見えてくる.
僕は,”何かをベクトルで表現する”という言葉を好んで使うが,この時僕は暗にベクトル空間Vnを仮定し,ある基底Bによる成分表示の全体B(Vn)を考えていたということに気がついた.
何も考えずに1段階だと思っていたステップが,実は2段階だったのだ.
これには驚いた.ささやかな喜びだ.

さて,B(Vn)の元は必ずベクトルであり,n次元ベクトル全体はベクトル空間であるので,B(Vn)はベクトル空間である.
B(Vn)の元の要素数(次元数)はBの要素数,すなわちVnの次元,すなわちnである.
今,実数のみを考えることにすると,n次元実数ベクトル全体はRnと書かれることが多い.
そうすると,B(Vn)はRnの部分集合であるとも言えそうだ.
直感的には部分空間である,と言えそうだが,B(Vn)が和とスカラー倍に対して閉じているか検証していないのでここでは控えておく.

以上で終わる.
つっこみどころは満載かもしれない.
最初から元がベクトルであるベクトル空間を考えているのだ,と見なせば楽に読めるのかもしれない.
しかしながら,ベクトル空間としていろいろなことを表現できるのに,上のように見なすと,少しむなしい気がする.
以後もう少し掘り下げてみる予定だ.

「正しい」証明とは何か

最近「正しい」証明とは何か,というのを考えてしまっています. これは数学基礎論とかで研究されている分野なのだろうか. 例えば,本を読んでいて,こうこうこうだからこうなる. なんて簡単に書かれていますが,本当にそうなの?って思っちゃうんです. どういう根拠でそうなの?って思っちゃうんですよね. どうしようもないですね笑.

まだいろいろ調べている段階ですが,普通の本なんかでは公理系っていうのを暗に仮定している気がします. 公理系の中には,公理があって導出規則なんかもあって,どっちかというと論理学に近いのでしょうか. 例えば,pならばqっていう形の定理を証明している本では,もちろんpを仮定してqが出て来たらpならばqを導出して良いという演繹という導出規則を仮定しているでしょう. で,そんなことを書いているスペースはないから察してくれよ,と. まぁそうですよね.だってその本は数学基礎論の本ではないし,論理学の本でもないし,そんな当たり前のところに割くページなんかないですよね. というわけでいつまでたってもぼんや〜り雲に覆われたような数学観が養われてきた僕です. しかしですね.これに立ち入るのはかなり勇気いると思うんですよね. 少し考えただけでノイローゼになりそうです.笑 なので,どういう公理系があってどういう導出規則があるのか,そういうところだけ拾って来て, 「ああ,この本のここではこういう規則を使っているんだな」,というのを意識しながら本を読むことにしようかなと思っています. 実際何の抵抗もなく受け入れられる導出規則なんかは,本の中で文章として使われていても,多分読んでて違和感を感じないんですよね. ん?って思うのはだいたい「任意の」とか「存在する」とか背理法とか. この辺は「全称例化」「全称汎化」「存在例化」「存在汎化」を抑えれば良いと思うんですよね. で,証明を読むときには,そこに書いてある事実が,何を「仮定」して成り立っているのかを見極めるようにする. 言い換えればどんな仮定の上にその事実は成り立っているのか,を見極めながら読む. 数学のできる人って,これらを全て頭の中でやっているんだろうけど,僕は多分できないので,どんな仮定の上に成り立っているのか,きちんと書こうと思います. そうして全てを追えれば,最初に書いた疑問なんかは浮かんでこないんだろうと思います.

\epsilon - \delta論法なんかそのいい例ですよね. そんなわけでここに飛び込んだんですよね. そうするとまたいろんなことが気になって来て,最終的に解析学を復習しよう,なんてことになってきました. なんですかね. 機械学習とか勉強してても,フワフワしてる感じがすごいんですよね. フワフワしてると不安じゃないですか. だからここらで時間かけて復習しようと思ったんですね. そんなわけでそういうポストも増えるかもしれない,いやそういうポストもするぞ!という意思表示のポストですこれは笑.

半空間(half spaces)

半空間(Half spaces)はアフィン集合でないが,凸集合であることを示す.PDFファイルで出しました.

不等式の扱いって大変ですね.悩みました. 自分なりに書いてみたのですが,おかしいところがないか不安です.

最近数学ばっかりやってるからプログラミングが恋しいなぁ.