局所的空間の探索から降りて別の空間から極値へアプローチすること

Twitterに良いこと書いてあったのでその所感を書き散らしておく。 それだけ。

最適化問題について調べていたのに間違えてここに来てしまった方は次のリンクをお勧めする。ここを読むより有益です。

焼きなまし法と粒子群最適化法の探索挙動を可視化してみた - クマガリウムぶろぐ

個人ブログなら適当でもいいのさ。

巨大な稲のニュース

内藤健@drk0311さんのツイートです。

このツイートの写真と「巨大稲」のキーワードだけを見てまず巨大な稲って「美味しくなさそう」って思った。 そのあと内藤健@drk0311さんのコメントを読んでハッとした。

記事を読むと巨大稲はすごい。

 巨大稲は高く成長し、光合成の効率も高い。1本の穂に実るモミの数は約500粒に上る。また、病気に強く倒れにくいうえ、洪水や冠水に強く、アルカリ性の土壌にも適応性がある。稲株に十分な栄養を届けることができるため、水産物や哺乳類に涼をとる場所や休息の場も提供する。
高さ2メートルの「巨大稲」の試験栽培に成功 重慶市 - afpbb.com

良いこと尽くめで全てが本当かはわからないが、1本の穂にモミが 500粒実るのはすごい。コシヒカリは70粒程度1らしいので7倍もある。作付面積当たりの収穫量もかなり増えるだろう。 今後品種改良が進み美味しくなれば農家が乗り換えが進むポテンシャルがある。

現在主流の品種は味はもちろん収穫量や病気や寒冷、干ばつの耐性など多くの点で優れている。 その中で理想のお米を目指す取り組みは必要。 ただ、もしかしたら巨大種だったりもっと小さい種だったり、はたまた別の稲とは思えないような品種をベースに改良した方が今よりももっと良い米を作れるかもしれない。簡単ではないけどね。

ただ巨大だから美味しくないなって考えて稲の可能性を見ようとしなかったことを反省したい。 良く言われる「物事を俯瞰で見なさい」みたいな格言の通り、自分は先入観に囚われて視野が狭いようだ。

UNIX(Linux)が広まった例

他とは異なるアプローチによって広くシェアを獲った例としてUNIXを紹介したい。

unix

1960年代からミニコンと呼ばれるコンピュータが登場した。 これは今でいうOSのように汎用なOSを載せることが難しく、そのミニコンに適したOSが必要だった。

その時代のOSの主流はユーザーフレンドリーで、ユーザが操作を間違えないよう選択肢を絞り分かりやすくする方針をとっていた。また、開発会社が権利を持ちソースコードを機密とするのが普通です。

一方、AT&Tベル研究所で生まれたUNIXは「ユーザーは、自分が何をしているか分かっている」との前提に立っているため何をしているかわからないユーザーには不親切極まりない設計です。 そのため、多くのユーザは得られず長らく不遇の時代を過ごす。 しかし、分かっているユーザにとってその柔軟性は魅力的で一部のコンピュータに詳しい人々から支持を得ていじり倒された。

すると、柔軟性と移植性と性能の高いオペレーティングシステムだと評判になります。 ベル研究所が所属するAT&T社は当時独占禁止法によりUNIXを作りながらもUNIXを販売することができなかった。そのため、利益が出る程度の少額で大学や研究所に実費でソースコードが頒布されるようになり急速に普及しました。

結果、異なる方針やソースコードの配布を行ったUNIXが当時の他のOSよりも普及し移植され続けることになった。

余談だが、その後利益を求めてAT&T社が利権を抑えたためUNIXは失速する。 皮肉にも、UNIXを真似てゼロから作られたLinuxが台頭して現在のサーバと呼ばれるコンピュータのほとんどがLinux系統です。

まあ、調べると色々とややこしいけど、僕はこんな感じの理解です。

【技術書】UNIXという考え方-その設計思想と哲学を読んだ - suzu6

参考: OSの歴史(UNIX系)

大域的最適解と局所的最適解

話は変わるが、情報系の分野ではよく大域的最適解と局所的最適解との違いが問題になる。

AIの学習などの最適化問題でパラメータを少しずつ変えて改善していくと最適な値にたどり着く。これが一番最適なパラメータだって喜んでも、実は大域的にみるとさらに良い結果を出すパラメータが存在することがある。なぜか。

▼ 次の図のように学習前は良い結果になるようパラメータを調整していけばどんどん良い結果になっていく。そして、パラメータを変えてもそれ以上の結果を得られない点が見つかるとこれが最適解だと思う。(下に凸の2次関数だと一番低い場所は傾きがない→微分すると0の点。極値)

picture 4

もっと範囲を広げて探してみると実は最適解が他の場所にあることが多々ある。 ▼ この問題では学習のスタートが右から始めていれば最適解にたどり着いた。

picture 5

極値が2つあることに気づいていたら1つの解で満足せずもう片方を探しただろう。 気づけたらね。

情報学ではこういった最適化問題を解くアプローチがたくさんある。 上述の問題で言えば、

  • グリッドサーチ: 指定した値で区切ったパラメータの組み合わせを全て計算して分布の当たりつけるもの
  • シミュレーテッド・アニーリング(SA法): 結果が悪くなる方への移動も確率で受け入れて別の局所解へ移るもの

2つめは「焼きなまし法」とも呼ばれる。

紹介した図では単純な2軸だが、問題が複雑になってパラメータが増えるとそれだけ組み合わせが増えるし、局所が増えたり、パラメータを変えても結果が変わらない不毛地帯みたいな極値もある。 探索が難しくなる。

最適化アルゴリズムは奥深いです。

参考

まとめとてきとーな教訓

話を稲に戻すと、稲の生育には手間も時間もかかるためコンピュータのように手当たり次第に試すことが難しい。 実験結果や配合した系統の資料などの蓄積は簡単にはまねできない財産です。 予算が限られているため、今ある品種をよりよくする方針が主流になる。

ただ、「めっちゃでかい稲を作ったったぜww」みたいな研究もあると局所解から抜け出して新しいところへ行ける。 イグノーベル賞のように裾野を広く研究が進むと良いなと思う。

個人的にも、いつの間にかたどり着いた解で満足していると井の中の蛙になってしまうため、常識や適応した空間から離れて他のアプローチをとることを続けたい。

Placeholder image

すずろく/suzu6

札幌にいるWEBアプリのエンジニア。最近はテストをもっと書きたい。

@suzu6_py Amazon ほしいものリスト

 関連記事

 新着 or 更新記事