分かりやすく局所最適とqwertyの話があったので。
qwerty配列の謎
https://m.youtube.com/watch?v=WqOTiBomg-Y&feature=youtu.be
一応僕は理系で、
この局所最適を局所最適に陥らず、
より最適な解に導く方法の研究のようなことはしていた。
その基本的ないくつかを紹介したい。
まず最も簡単な解法が山登り法。
ある状態から始めて、
ちょっと変動させて、
山を登ったなと思ったらそれを採用する。
以下繰り返し。
寝返りを打っているうちに、落ち着くところに落ち着くイメージ。
qwertyの出来方がまさにそんな感じで、
これは簡単に局所最適に陥りやすい。
お山の大将終わりで、全然巨大にならないわけだ。
それもそうで、初期値依存性があるから。
親ガチャ国ガチャと言われるように、
初期値がへぼいところに生まれてしまったら、
どんなに努力してもそのお山の大将までしか登れない。
もっといい場所に生まれないと、という欠点が、
山登り法にはある。
人生で旅をせよといわれるのはこれで、
お山の大将に収まらずに、
もっと巨大な山脈を知れという話だ。
その上でお山に戻るもよし、移住するもよしだ。
山登り法がなぜポピュラーかというと、
「努力や改良が簡単」だからに尽きるのではないか。
プログラムも簡単に書ける。
山登り法を改良したものが、
多点探索による山登り法だ。
初期値をランダム配置した複数の点(10個とか100個とか)に、
それぞれ山登り法を適用させる。
「複数の子供を全国に生み、
最終的に強くなったやつが優勝」
みたいな聖闘士星矢みたいな話だ。
まあ、ただ、最高峰の山に生まれない確率もあるため、
最善手ではない。
そもそも最高峰がどこにあるかすら、
このやり方ではわからない。
ただ有限時間で探索するには、
複数人で探索するというのは納得できるやり方ではある。
これを改良したのが遺伝アルゴリズム(GA)。
初期値バラバラの場所に生まれさせる。
山登り法で登らせる(進化)。
ローカルチャンピオンは残して、あとは殺す(淘汰)。
残った複数人を、混ぜる(交配)。
別の要素が微妙に入ったローカルチャンピオンの、
次世代たちがまた進化を始める。
こうして何千世代も繰り返すうちに、
一番高い山に登るやつが出てくる、という仕組み。
また、局所最適に陥らせないために、
突然変異といって、たまにランダムで配列を変えてしまうと、
全く別のところにワープさせられるやつが出てくる。
俯瞰してみると、
多点探索が並行して行われ、
交配によっていい部分同士が掛け合わされ、
ダメなやつは淘汰されて計算負荷を下げ、
突然変異によってまだ未到達の場所にたどり着くやつが出るわけ。
手法としては最高な気がするのだが、
実装においては難点がある。
まず交配のアルゴリズムだ。
部分的なものを交換する法則で、
「優れた部分が掛け合わされる」わけではない。
じゃあ、「評価の高い部分と、評価の高い部分を掛け合わせる」
にしても、被ってるところをどうするかがある。
また、そもそも、
「評価」はなんだ、と言う話だ。
キーボードレイアウトを評価するのでメジャーなものは、
KLAだけど、アルペジオ打鍵が評価項目にない、
僕の視点から見れば欠陥だ。
「この配列のこの部分は優秀である」
と示す方程式をどのようにつくるべきか?
という永遠の課題がある。
あるいは突然変異率もだ。
これを多くしたらすぐ死ぬ弱い個体が大量発生するし、
低くしたら突然変異個体が出にくくなる。
局所最適を乗り越えるため、
このようなミュータント個体を、
淘汰させすぎないバランスの、
最適な値を求める方法はない。
つまりGAは、数学的計算がすぐにできない問題に対して、
パラメータ調整を何回かして、
違う地球を何個かつくって、
たまたま生き残ったやつを最強とする、
という場当たりと計算の中間のようなアルゴリズムである。
実際役に立つの?でいうと、
新幹線ののぞみの、カモノハシと呼ばれるやつは、
それで作ったらしい。
人間のデザイナーでは思いつかなかった空力性能があるそうだ。
配列の世界でも、
主に月配列でGAは使われて、
いくつか完成されたものがある。
幸花配列が有名だけど、
その後これは名作と呼ばれているかというと、
どうなんでしょ。
この山登りによる全体最適は、
何次元空間の問題か?
という、そもそもの問題設定の難しさもある。
キーボード配列はせいぜい何百次元だろうか。
現在のディープラーニングでは、
数百万次元から数兆次元の問題を解いているらしい。
しかし「解く」というわけではなく、
ある学習されたものに近いものを合成して出力する、
という程度にしかまだ最適化されていない。
見知らぬ問題を、勝手に解けるわけではない。
AIによる絵師(midjourneyなど)は、
結局「どこかで見た絵の合成」になっているから、
新しい絵は生まれていないよね。
量子コンピュータは、
ノイマン型では解けない問題が解けるそうだが、
そもそも「挙動が確率的に変動するコンピュータ」
でしかないため、
解が一意でなく確率分布するらしい。
これを何万回も計算させて、
優勝したやつを最適と定義するだけのことだそうだ。
つまりまだ人類は、最適化問題を、
ほんとうに最適だと確信する解法を発明していない。
局所最適に陥っているのは、
山登り法でやっているからだ。
多点探索をしていたワープロ時代に、
PC98という寡占が起こり、
Windowsという独占が起こってしまったのが、
qwerty固定の原因だろう。
原因はIBMとMSという外圧だ。
つまり政治家が原因だったんだね。
せっかくのTRONという突然変異は、
外圧で潰されたしな。
山登り法では全体最適には辿り着けない。
多点探索は最低限必要で、
それって、沢山の配列が出来ないと、
評価もできない。
そして評価軸が一つなのも危険だ。
タイプウェルだけで判定するのは危険だし、
KLAだけで評価するのも危険だ。
淘汰圧を高くしすぎると、
オルタナティブに移行する可能性をつぶしてしまう。
あとは、使う人間が、
一旦山を下る覚悟をするしかないんだよね。
お山の大将が本当の男になるには、
武者修行が必要だろう。
qwertyからの一時別居を試すのは、
僕は悪くないと思うんだな。
ただ武者修行は、途中で死ぬ人もいる。
その危険を、お山から出て冒したくない人の方が多いだろう。
でもどうせ、
qwertyのブラインドタッチが出来ない人がほとんどなんだ。
お山に登ってもいないんだから、
さっさと別の山を登ってみたほうが、
面白いんじゃない?
2022年12月31日
この記事へのコメント
コメントを書く
この記事へのトラックバック