見出し画像

Retro-gaming and so on

人工知能に関する与太話

やっと最近、ChatGPTに始まる人々の一連の「人工知能」に関するスタンスも落ち着きを見せてきたような気がする。
ぶっちゃけ「飽きた」だろ(笑)?
あるいは「新しいツールが登場したなぁ」程度に落ち着いたと思う。
これも当然なんだ。
初めてパソコン上に「表計算ソフト」が現れた時にも人々は熱狂した。「これは今後業務を変えてくれるかも!」と。
でも適用出来ない分野には当然適用出来ないんだよ(笑)。大体登場から半年〜1年くらいかけて「落ち着く」。色々と「分かっちゃう」んだよ。
そんなモンなんだ。いっつも「新登場」した何かは騒がれるが、ある程度時間が過ぎると「フツー」になって、人々は登場当時の「熱中」を引きずらない。
結局、僕らにとっては「何かやる際の選択肢」が増えただけ、であって、かと言ってなんかの、伝統的な「社会構造」を変える程パワフルだった、ってこたぁねぇんだ。
別に「人工知能」を貶めてるわけじゃない。我々は何度もそういう「ブーム」が起きては短期間に「落ち着く」って事を繰り返してきてる。「人工知能」を殊更貶めてるわけじゃなくって、単に今までと同様、「人工知能も例外ではなかった」。それだけだ。
繰り返すけど、我々は、ツールとして「新しい選択肢を入手した」だけであって、かと言ってそれが「生活を根本から変える」モノではない。
ついでに言うと、基本的には人間って「飽きっぽい」んだよな(笑)。最初は「おもちゃ」にコーフンしても遊んでると「飽きちゃう」んだ。
そして人間はそれでいい、んだ。

さて。
ちょっと前にNHKだったかな?色んな人工知能研究に関わった人が出てきて、今の「人工知能」に対して軽く解説する番組をやってた。あんまマジメに観てたわけじゃねぇんだけど。
で、最後辺りに?確か外国の学者か何かが出てきて、

「我々はこの人工知能研究を通じて、人の知性は何か、と言うのを解き明かしたいと思っています。」

的な事を言って〆てた、んだよ。
それ聞いて爆笑してた(笑)。ぎゃははははははwwwwww
NHK(多分)のクセに、俺様を笑かすとは、なかなかやるな(笑)。
さすが工学者だ(笑)。そもそも全くシステムが違うモノを作っていて、何でそれを研究する事が人の知性を研究する事に繋がるんだ(笑)。
それとも、全く違うモノを比較すれば人の知性が「分かる」って理論でもあるのかい(笑)?ぶっちゃけ、工学者ってやっぱデタラメだわ、としか思えない発言だったんだよな(笑)。
いや、分からない?つまりだな、例えば人間社会にいまだ自動車がない、って考えてみよう。そして自動車を発明したヤツがいるとする。それ自体は凄い事だよな?なんせ、それまでは交通機関に馬しかない、的な状況だ。自動車は馬より速く走れる。明らかに自動車は馬より優れてる。ここまではいい?
でもその発明者が、「自動車を開発・研究し続ける事によって馬が走る仕組みが分かるようになる」とか言い出したら「あんた何言ってんの?」って話になんだろ(笑)?そういう事、なんだよ(笑)。
自動車も馬も、僕らは簡単に「走る」って仕組みはある程度「見た目で分かる」から、誰も(自動車の発明者でさえ)こんなバカな事を言い出さない。ところが、同様の事を何故か人工知能研究者は言ってるんだな(笑)。
原因は、「人の知性が何だか良く分かってないし、人工知能の仕組みも(一般人は)良く分からない」からだ。
だからこういう与太が言える。

いや、人の知性の仕組みはホント良く分かってない。でも我々は経験的に「どんな現象が起こるか」は知ってるだろ?
件の番組でも、例えば「犬と猫」の写真を何億枚とかネットで収集させて、新たに持ってきた「写真」をAIに見せて、「犬」なのか「猫」なのか判別させて「成功」させるような事柄を取り扱ってた。
いや、そこまではいいわ。「判別出来て良かったね」と。
でもさ、良く考えてご覧?子供が生まれるだろ?んで一歳か二歳か知らんが、子供に「これは猫」「これは犬」って教える状況を考えてご覧よ。一体どこの親御さんが、「犬の写真」とか「猫の写真」をネットを駆けずり回って何億枚、も収集して判別させよう、とするねん(笑)。そんな親がいたら周りも「やめなさい」って言うだろ(笑)?

パパ: 「そっかーもう言葉をしゃべるようになったかー。」
ママ:「凄いでしょ?あたしの子、天才かもしれないわ。」
パパ:「バカ言っちゃいけない。俺の子だから、だ。」
ママ:「うふふふふ。今度は動物図鑑でも買ってきて色んな動物を教えようかな。なんてったってモフモフは正義だもの。」
パパ:「そうだな。じゃあ、今度仕事の帰りに本屋にでも寄って、子ども用の図鑑でも買ってくるか。」
ママ:「そうね、お願いするわ・・・でもキチンとワンちゃんと猫ちゃんの違いが分かるように、ネットで猫ちゃんの写真とワンちゃんの写真をそれぞれ10万枚くらい集めようと思うの。それをあの子に全部見せて・・・。」
パパ:「おいバカやめろコラ。それは幼児虐待だ。」

人間は小数のサンプルでも「学習」が出来る。どこの親御さんだろうと、子供に犬と猫の「違い」を教えるのに何万匹とか猫を眼の前に連れてきて「教える」なんざしない。「人間は見りゃ違いが分かる」からだ。ネスカフェ・ゴールドブレンドだ(謎

ネスカフェゴールドブレンド1972遠藤周作

一方、人工知能はそうではない。これだけで全く違うシステムで動いてるのが分かるだろう。
人工知能が持ってるのは人間の知性ではないんだ(※1)。

何度か指摘はしてるんだけど、別に21世紀に入ってコンピュータに於いての「人工知能」ってのが発明されて今こうなってるわけ、じゃないんだ。実は1960年代初頭辺りで既に基礎研究自体は始まってる。
言い換えると、60年かけてやっとここまで到達した、って事は言える。それは「ソフトウェアの完成度」って意味なんだよ。「やっとこさ上手く動く事が出来るようになった」と。
ちょっと後に軽く解説するけど、厳密に言うと、現在の人工知能ってのは当初計算機科学者が想定してた人工知能じゃない。実は統計解析なんだ。そしてコンピュータによる統計解析自体が発達するのは90年代半ばから、なんだよな。
人工知能も統計解析もそれなりに長い研究期間になっている。理論はある程度発展してきてはいたんだけど、実用性に問題があった。何故かと言うと1990年代半ばまで、パソコンを含むコンピュータの性能がどうしようもなく低かったから、なんだ。また、「データを収集して保管、なお演算する」と言うメモリとストレージの量も極めて小さかった。これらが飛躍的に「実用レベル」に達するのは、そう、Windows 95が出てから以降なんだよ。この辺を境にしてCPUの性能がメチャクチャ上がり、メモリやストレージの量も劇的に増える。
つまり、ここでやっと「それまで塩漬けにされてた”理論”」を実際にプログラムを書いて試してみる事が可能、となったんだ。当然そうすれば「実践的な意味で」改良も出来る。
また、インターネットの一般利用とその普及も大きい。そもそも統計解析が絡んでる以上、「解析すべきデータ」が無ければお話になんない。そして1学者グループが、例えば上の例で言うと「犬」と「猫」の写真をどれだけ収集出来るのか・・・・・・。千枚も揃えば御の字だろう。ネットが無ければ「億」とかのデータを集められないんだ。
逆に言うと、インターネットっていう「データの無限収集が可能な」インフラがあってからこそ「発達出来た」ってのがあるのね。
これらがここ十数年で「人工知能が登場したように見える」原因だ。
そして繰り返そう。「ソフトウェアとして見た時、やっとこさ"マトモに動く"人工知能が出来た」って事なの。60年かけてやっと人様に見せて恥ずかしくないように「動くようになった」と。
ただし、それは「人間の知性を再現してる」を意味しない、んだ。

んでさ、一つ覚えていた方がいい事がある。
上の外国の科学者の発言?そういうのを聞いて

さすが外国の科学者!言うこともやることも違うのね!

とか簡単に思わん、事。それは早漏、いや早計だ(笑)。
特にアメリカなんだけど、原則「研究資金を如何に調達するのか」ってのが学者にとっては重要なの。口を開けていれば金は勝手に向こうからやってくる、なんつー事はない。
つまり、「何かを研究してます」って言った場合、常にプロモーションをかけないといけない、んだ。「俺が関わってる研究は人類の発展にとって必要なんだ!」的な事をどうしても言わないといけない。本人が本当にそう思ってるかどうかは別にして、だ。じゃないと予算が縮小されてしまう、と言う危険が、特にアメリカだと常にあるわけ。
だから、一般向けにも「自分の研究は素晴らしい」ってアピールし続けないといけない。そういう背景があるんだよ。
だからどんなデタラメだろうと口にする
人によっては「それって学者の良心として考えるとどーなの?」とか不快に思うかもしんない。でも学者の良心より研究予算、なんだわ(笑)。それが彼らが生きてる世界の現実。
この辺に於いては僕らのリテラシーを上げるしかない。そういうモンだ、って割り切ろう。毛唐の学者が大言壮語を言い出した時、それは「研究予算が欲しいのね」とまずはそう理解しないとダメなんだ。

さて、ここでもう一回整理しておく。
元々、確かに「人工知能研究」と言うのは、「人のように考えて答えてくれるコンピュータないしはプログラムが作れないか?」ってのがスタート地点だった。
これは分かるだろ?人間は夢想する。実際、鉄腕アトムから始まって、人造人間キカイダー、キューティーハニー、超時空世紀オーガスのモーム、Dr.スランプのアラレちゃんとか、「人間のように考えて話す」ロボットが好きだ。いわゆるアンドロイドだよな。そういうモンが作れるなら作ってみたい。SFでは美味しい人気のネタだ。
ところが、前提として、「人間のように考えて話して反応する」何かを作りたい、としてもそもそも「人間の心や知性を生み出す仕組み」はいまだ良く分かっていない。いや、全然分かってないんだ。だからこそ心理学や精神分析学なんかは分裂してる。茶道の流派のように色々な心理学が乱立してるんだ。「何を根底として捉えるか」自体がその提唱者によってバラバラだから、だ。つまり、構造的には提唱者の「主観」が基礎になる以上、心理学は残念ながら科学ではないのだよ(※2)。
これは僕が言うだけの話、じゃなくって当の心理学者達も良く分かってたみたいで、ホントに観察と実験だけに意識を集中し、「心」や「知能」に対しては直接目に見えない以上「排除する」流派が1950年代から1960年代にかけて出てくるわけだ。これを認知心理学(Cognitive Psychology)、と呼ぶ(※3)。
認知心理学の基本的考え方はこうだ。貴方が誰かと話すとする。それに対して相手は「反応」する。反応する以上相手には知性なり、知能なり心がある、と「言う事にする」。ただし、「どう考えてるか」とか「どう感じてるか」は問わない。「反応」だけが重要でそれを重視すべきだ、と。
つまり、「心のメカニズム」は考えない。そこは全部ブラックボックスとして扱う、ってのが認知心理学の考え方、なんだ。
これはコンピュータで考えると非常に都合の良い理論なんだ。入力に対して出力を返す。「どうそれを実現してるのか」は取り敢えず棚上げにする。そうすると、それは「知能」を持ってる、と言うのと同義だ。
一言言うと、「ブラックボックスをブラックボックスのままに扱う」ってのに対して「人間の心とか知能とか、そんなモンじゃないんじゃないの?」って思う人も多いだろう。
しかしながら、欧米の人が日本人よりある種優秀だよな、って思うのは、彼らは暫定的でさえ定義を決定する、って辺りなんだよ。取り敢えずやってみまひょか、的な(笑)。逆に日本人はクソマジメ過ぎて「考えすぎ」の傾向がある。考えすぎな以上物事が進まない。そして「正しさ」を要求しすぎ。学校でも何でも「正しい事を教える」前提になってるし、大学辺りまで行ったら「そうじゃない場合もある(間違った事を教わる可能性がある)」と言う事実に納得する人は少ないだろう。
一方、欧米人って「不具合があったら後で考えよう」ってんで、少なくとも学問的な意味では結構割り切ってるのね(※4)。「それが正しいか間違ってるかは知らんが、そこは関知せずに見切り発車する」のが欧米の、しかも割に伝統的な考え方、なんだ。
取り敢えず「人工知能」の考え方は認知心理学的な立場を採用した。その結果、大勢の「認知心理学者」と「人工知能研究者」が交流を持ち、結果この2つの間での行き来が生じたわけだ。実際、この時期で、認知心理学者が「プログラミングの世界に入る」と言う事がかなり起こっている。
いずれにせよ、この段階で、「人間の思考や感性のシステムと違っても構わない」と言うのが人工知能と言うモノに対しての「共通基盤」になったわけだ。

さて、取り敢えず1990年代の半ばになるまで、それでも「人工知能」の主な目標は「人間のように思考するコンピュータないしはプログラムを作る」だった。1980年代辺りに、名前を聞いたことがあると思うけど、ニューラルネットワーク、なんつーのが出てくる。第5世代コンピュータ、とか言われだしたのもこの頃、だ。従来の石のコンピュータ(つまり半導体、だ)に代わって、タンパク質ベースの「バイオコンピュータ」がどーの、って言われたのもこの頃。
ニューラルネットワークってのは今でも残ってるが、当初はハードウェアで実現する、って言ってた記憶がある。人間の脳細胞のニューロン、は電気信号で0/1をやり取りする。っつーこたぁ、半導体も電気信号で0/1をやり取りする以上、半導体素子を集めて「人間の脳の構造そのままのハードウェアを作れば何とかなるんじゃね?」と(笑)。
あれだ、ルパン三世で言うと、マモー(※5)の正体のハードウェア版を作ろう、ってアイディアだったんだよな(笑)。



まぁ、そんな時代もあったんだけど、予算が足りないとか色々あって、実現は難しかったのよ。色々と結果ポシャってる。
ちなみに、なんでんなこと知ってるか、って?うん、大体情報源は600こちら情報部だった(笑)。すげぇな、600こちら情報部(笑)。ガキに色々な「バラ色の未来」を吹き込んではくれたんだけど、殆どこの時期の「最先端はこーなる」ってのは実現せんかったんだ。

さて、んなワケで当初「人工知能が目指したブツ」ってのは1990年代半ばあたりまで、少なくとも外野から見ると「袋小路で行き詰まった」ように見えたのね。かつての「熱気」ってのはあまり感じられないジャンルになってたの。
ところが、ここで出てくるのが「統計解析」だ。Windows 95の登場前後で飛躍的にこのジャンルが発展する。
元々、パソコンの能力は低かった。そもそもパソコンは「パーソナルコンピュータ」である以上、個人で「巨大なデータを操る」って事はまずないわけよ。あっても表計算ソフト程度で充分、だったし、Windows 95以前だと「パソコンで統計解析するソフトを操る」ってのはレアケースだった。っつーか今でもそうだろ?
実際、例えば有名なMicrosoft Accessと言うデータベースが登場したのが1992年。これ、いわゆるMicrosoft Officeの製品群として見ると、ほぼ最後に登場したブツだ。ほぼこの時期まで「個人的コンピュータ」でデータベースが要り用になる、って事はほぼ無かった、と言う間接的な証明だ。また、プロの中ではAccessを嫌う人が多い、ってのは実はアクセス出来るメモリ容量が少ない、ってのが理由だが、これはそもそも、登場時の「パソコンで扱えるデータ容量に厳しい制限があった」って事を引きずっている。
いずれにせよ、この時期あたりまで、ある意味「統計」ってのは、古い世代(笑)の人が思ってるような、人力で「足して足して足して割って」が殆どだったんだよ。ぶっちゃけ、「統計解析ソフト」がポピュラーになって、データベースに接続して解析、なんつー「やり方」ってのは2000年代中頃辺りに入るまで、大学の初等教育なんかでも「メジャーな方法論」ではなかったんだ。
さて、パソコンの性能が上がるまで、大体のケースだと上で書いたような「足して足して足して割って」が基本だったんだけど、せいぜい扱う「データ」なんぞは100に満たない。で、大体そのデータ数でも人力で計算するのは厄介で、大学で統計を勉強しはじめたヤツも「やってられっか」になるわけだが(笑)。
一方、パソコンの性能が上がったお陰で、数百、数千、数万のデータを「統計解析ソフトで」一瞬で処理が可能になった。これにより「理論の検証」なんかもラクになったんだ。
もうわかるよな?ここで「袋小路で行き詰まっていた」人工知能と「統計解析」のマリアージュが成される。上で書いたように、認知心理学的立場だと「中身がどうかは問われない」、つまり、ある意味「統計解析をエンジンとした」人工知能は定義上「あり得る」って事になる。
そして、この「人工知能」と「コンピュータを用いた統計解析」のマリアージュを、平たく言うと「機械学習」と呼ぶわけだ。しかし、その本体は、あくまで統計解析、ってのが正体だ。

では、その仕組みを超ザックリ説明する。これは今言う「人工知能」の考え方の基本だ。
上で説明したように、例えば犬の写真を10億枚、猫の写真を10億枚用意する。そこに一枚写真がやってきて、その写真が「犬」なのか「猫」なのか、どうやって現在の人工知能が「判別」するのか・・・こういうのを統計学では判別問題と呼ぶ。
これ、ホンマ超ザックリ説明すると、実はアイディア自体は超簡単なの(※6)。まずは犬の写真、猫の写真の散布図を作るのね。こんなカンジになる。


さて、上の散布図を見る限り、「猫のグループ」と「犬のグループ」を見分けるのは簡単そうに見える。そうだな。境界線を引けばいい。



つまり、新しいデータがやってきたとして、境界線の「上」に配置されるなら、そいつは「犬」と判断され、境界線の「下」に配置されるならそいつは「猫」と判断される・・・・・・。
簡単だろ?多分この「超ザックリした(メインストリームの)機械学習の仕組み」を聞けば、「そんなん簡単じゃん!」「小学生でも思いつきそうだ」と言う感想を持つと思う。そう、実はアイディア自体は単純なんだよ。これを数理的に「キチンとこなそう」とすれば途端に難しくなるだけ、で、アイディア自体は「小学生でも思いつきそうな」モノなんだ。
逆に言うと「見ればわかる」人間の知性と違って、コンピュータは「見ても分からん」って事なんだ
もう一つ問題がある。今回は人工知能ネタなんで、実は上の散布図作成のコードはChatGPTに作らせた(笑)。これがまた、バカ相手に狙い通りのコードを書かせるのが大変だったんだけれども(笑)。
それはさておき、上の散布図はかなり理想的に、つまり恣意的に「犬」と「猫」が分離するようなデータになっている。しかしながら、「現実のデータ」はこう綺麗に分離なんぞしてないんだ。例えば次のようなカンジになる。



何となく2グループに分けられそうには見えるが、一方、「犬」のデータが猫エリアに突っ込んでたり、あるいはその逆が「あり得る」。
言い換えると、幾何学的に見た場合、「綺麗に二分できる」データじゃない方が現実には多いんだ。
そして「ある境界線」を引いたとして、それが永久にどんなデータが来ても「耐えられる」境界線であるかどうかも分からない(これを頑強性とかロバストネス、と呼ぶ)。


例えば、IKKOみたいな化け物性別が不可解な人物を、男女データとして「どう分類するのか」と言うのも難しい。コンプライアンス的にヤバい(笑)?LGBTがどーの、とか言う世の中でどーなんだ、と言う例ではあるが、こういう「難解な判別問題」は理論上「あり得る」んだよ。
また、IKKOみたいな境界線的に際どい例に対して、「境界線」がロバストである、と言う保証はない。

ハッキリ言うと、機械学習の根本的なアイディア自体は「至極簡単」だ。しかし、「境界線の引き方」の方が実は難しく、「どうやって境界線を引くのか」が機械学習の研究者の腕の見せ所で、ニューラルネットワーク等の技術(※7)はその「境界線の引き方」をどうするか、ってトコに使われている。その辺に興味がある人は、各自専門書を読んでくれ。それは本記事の程度を超えるし、そこが主眼ではない。要は「やってる事のアイディア自体は至極簡単だ」って事を言いたかっただけ、なんだ(※8)。
ここでこの「基本的アイディア」をバラしたのは(笑)、実の事を言うと、今我々が見ている「人工知能」は、別に摩訶不思議なモノであるとか、何らかの「神秘性がある」プログラムが成してる、ってワケじゃない事を知ってほしかった、からだ。非常に根底的なアイディア自体は「単純だ」と言う事を知ってほしかった。
そして根底のアイディアが「単純だ」と言う事は、それ自体は我々が通常思うトコでの(認知心理学的な意味ではなく)「人間の知性」でもなんでもないし、原理的に「全幅の信頼をおける」ブツでもない、って事を表している。
判別問題を基礎にする以上、統計機械は常に「間違える」可能性がある。現実のデータに対して「境界線を間違えなく引く」と言うのは不可能だから、だ。あるのは結果、「確率的にどの程度の正しい境界線を引く事が出来るか」なんだ。

2015年にAlphaGoが出てきて、後に世界的なプロ碁打ちに勝った、ってのは凄い快挙だった。
ただ、一言言っておくと、「碁のようなゲームで人間に勝てるようなプログラムはいずれ出ては来るだろう」と言うのは、専門に研究してる人でもそう思ってたんだ。確かに「組むのは難しいプログラム」だけど「いつかは出来るだろう」と。
問題は、計算が速く、メモリをしこたま積んだハードウェアがいつ登場するんだ、って事だったんだ。要はかなりの部分をハードウェアの機能に依存してる。
例えばチェスは8x8のマスを持った盤面で行う。かつ、「初手」としては一手目にポーン(将棋で言う歩)を動かさざるを得ない。これだけで「どの駒を動かすのか」は8パターンしか存在しない。1手目だけは2マス動けるので対象は16通りだ。ここから先読みしていくわけだが、それでもある程度は「絞り込める」わけだ。だからこそチェスが一番最初に「コンピュータが人間に勝った」例になったわけだ。
一方、囲碁は違う。プロが行うのは19x19のマス目の交点対象だ。その時点で「初手」は361通りの可能性がある。それに対する「返し」は(1つは黒に使われた為)360通りある。その360通りに対して・・・と「先読み」を考えていくと膨大な数になるわけだ。
実際、今の碁等の人工知能も基本的な路線はそのまま、で結果、「チェスより大変」なのは「可能性が大きすぎる」と言う事なんだ。
AlphaGoのすごかったトコ、ってのはこれを基礎としながら、まずは「人間の棋譜」を覚えさせた事。そして次に「自分と自分を何十億回も対戦させて」勝率の高いパターンを記憶させた事。この「自分と自分を何十億回も対戦させる」事をディープラーニング等と呼んだが、結局この仮想対戦を統計的に処理して「勝ちやすい定石」を確率的に定めた辺りで計算量を劇的に削減させたんだ。
ただ、繰り返すが、「いつか碁でも勝てるようになるだろう」と人工知能研究者が考えてた、と言うのは事実なんだ。あとはハードウェアの発展次第だ、と。
一つ言っておくけど、実はこういうゲームみたいに勝敗が付く、つまり白黒つけやすいケースは人工知能と言われるヤツにとっては比較的攻略しやすい分野なんだ。何故なら開発動機がそもそも「勝つために」やってるわけで、「負けるように」する手順は明らかに廃せばいい。人工知能のプログラムでも確率的に「悪手」は捨てるようにしろ(あるいはその手順は踏むな)と組む事自体はさほど難しくない・・・・・・あとはメモリ上にそれらを上手く展開出来るかどうか、ってトコにかかっている。

スーパーファミコン用ソフト「初段森田将棋」(1991年)。日本将棋連盟からアマチュア初段の実力がある、と公認されたソフトで、登場当時は衝撃的だった。実はこれも人工知能ソフトだ。
ただし、今の基準から言うと、4MbitROMカセットっつー事は512kbyte程度のROMしか持ってない、と言うわけでつまり「知ってるパターン数」自体が全然多くない。
また、スーファミ自体が本体に積んでるRAMは128KB程度であり、「色んな状況を展開して先読みする」にも限界がある(逆に言うと、その小さいスペースにどれだけ「情報を」詰め込めるか・・・どういうトリックを行えるか、が当時のプログラマの腕の見せ所だった)。
この辺の技術は正直、「ソフトウェア上でどーにかなる」よりも、ハードウェアの「発展」が鍵を握る分野だった。

学習で、ゲームの「勝敗」のように白黒付きやすい分野は攻略しやすい・・・。
一方、例えばこういうのはどうだろうか。


ご存知Amazonの「オススメ商品」だ。
実はこれを出してるのも人工知能の一種なんだ。
いや、ここでちと考えて欲しい。「犬」か「猫」の判別をするにも、統計的に「学習せな」アカン。こういうのをトレーニングとか訓練、とか称するが。
いずれにせよ、チェスのソフトだろうと将棋のソフトだろうと碁のソフトだろうと「訓練」が必要となる。「猫」を「犬」と分類すれば「判別失敗」だし、チェス/将棋/囲碁で「勝てなければ」判別失敗、だ。従って再度学習する、なりユーザーのフィードバックを利用した「再訓練」が必要だ。
ところが、Amazonの「オススメ商品」。・・・これって何をすれば「成功」で何をすれば「失敗」なんだろう。・・・もちろんカスタマーがオススメ商品をクリックしてくれて購入してくれれば「成功」なのかもしれんが。
実の事を言うと、僕はこの「オススメ商品」を気にした事がないんだ(笑)。みんなはどう?こいつらチェックするタイプ?
そう、「オススメ商品を出す」と言う事に対して、大してユーザーは気にしないだろう。また、「俺が欲しい商品と違うぞ」って思ったトコでそこまで怒らないだろ?「全然違ぇよ!」とか(笑)。ズレた商品が並んだトコで「怒髪天を衝く」とはならん筈だ。
そうなんだよ、実は機械学習の弱み、ってのに、「人に提示した結果がクリティカルだとは限らない」ってのがあるんだよね。「違ぇよ!」って怒っちゃうタイプのモノに関しては学習が容易なんだけど、「人がどーでも良い」って思ってる事に対してはそもそも「正誤判定」になりようがない、んだ。
一体誰が何を持って「正しい」と言えるんだ、って事の方が世の中の事象では多いんだよ。言い換えると世の中には「カテゴリに分けられる」と言う単純なモデルばっかじゃない、って事だ。
そういう、殆どの人にとって「どーでもエエんちゃう?」って思ってる事は、統計学及び機械学習にとっては「ものすごいやりづらい」対象なのね。
加えると、現在の人工知能は「統計解析」を基としてるけど、人が行動する時は「統計的に」とか「確率的に」行動しない、んだ。よって「他人の行動の結果」を集積された結果を提示されたトコで「だから何?」でしかねぇんだよな。
そーだろ?キミたち。

さて、人工知能には「学習が必要」と書いた。そしてその「学習」は実は統計解析だ(※9)。
しかし、以前別のトコに書いたが、MicrosoftがTwitter(現X)で、人工知能のチャットボットを公開実験してた際に、結果そのアカウントの中の人(笑)は差別発言を繰り返すトンデモボットに成長してしまった(笑)。
つまり、「悪意を持った人々」が人工知能を「トンデモ野郎へと」訓練する事は充分にあり得る。
この「公開実験の失敗」のせいか、ChatGPTはどうやら「成長しない」人工知能となってるようだ。要はユーザーとのやり取りをフィードバック「しない」プログラムとして設計されてる模様。ChatGPTは「使っているから」それに応じてアタマが良くなる、って事はない。無料版の3.5と有料版の4以降「どれだけ」アタマが良くなってるかは知らない(無料版しか使った事はない)が、その「アタマの良さ」は開発者のOpenAI社が「決定している」ってのが現状のようだ。恐らくユーザーとのやり取りをログ化はしてるんだろうが、直接ChatGPTに食わせてるんじゃなくって「選定」して食わせてる、ってトコだろう。
いずれにせよ、ChatGPT系のプログラムは「使えない」とは言わないが、今まで書いてきた通り「仕組みを知れば」使いどころはどこなんだ、と言う風に思考は切り替わるだろう。「無闇矢鱈に人工知能"だから"信頼に値する、ってワケじゃない」事が分かるだろう。
もし、ブームに乗って「会社員に給与を払いたくないから、会社員をクビにしてAIを採用しよう」とか言ってる社長がいたらバカ者だろう(笑)。多分そういう会社は遅かれ早かれ潰れる(笑)。「統計的に見て(いわゆる)平均的な」行動をするAIが人間に成り代わって色々な事をするのはあり得ない。「平々凡々の事しか行わない」社員ばっかの会社と同じだ、って意味になる。そんな会社に「成長」は望めないだろう。


ChatGPTは言わば「統計解析」に古典的な「人工無能」をガワとして被せたモノ、に等しい。この程度の返却しか出来ない「ソフト」は個人的には「知性がある」とは全く思っていない。

また、プログラムとして考えた時、「人工知能」は新たな問題を提示してる。
上で書いたけど、「白黒付けやすい」ジャンルだと人工知能は適用しやすい。従って、仮に「囲碁をプレイする人工知能」を開発したとして、仮にそいつが「負けまくり」だった場合、「あ、これはどっかでバグを書いちゃったな」と分かる。
一方、上の写真のように「ジョークを理解しない」ChatGPTはどうなんだろう?これはプログラマの狙い通りなのか、あるいはバグなのか。
言い換えると「バグが分かりづらい」のがこのテの人工知能の欠点、なんだ。ホントにそれは「狙い通りに」動いてるのか。それとも単なるプログラム上のミス、バグなのか。
仮にこういう事を考えてみる。「人工知能で株を売買するソフトウェアを作る」と。
実際株を買わせてみると5日間くらいは上手く動いてそこそこ儲けが出る、と。ところが6日目に市場が大暴落して大損した、とする。これは「市場原理」的にそう言う事が起きるのは不可避だからしょーがないのか、あるいは「株を買い続ける」と判断したAI側に問題がある、つまりプログラミング上のバグなのか。これを判断するのは難しい。
また、この例で、投資家の50%前後が全員人工知能で株を売買してたらどうだ。それでも「市場が暴落した」のは自然で必然なのか、それともこいつら全員使ってたソフトにバグがあったのか。この判断も非常に難しい。
もっと言っちゃうと「統計ベースで動いてる以上」人工知能の行動の基本は「人の平均的な行動を真似る」だ。じゃあ、株式投資で勝ってる人ってどの程度いる?勝ってる人は「平均値じゃない」んだよ。当然サンプル数が少なくて「データの中で埋もれる」。人工知能は「勝ってるでも負けるでもない」人の行動をトレースする。いや、それどころじゃない、実際、負けてる人の方が多かったら?つまり統計的に行動指針が決まる人工知能だと「株は負けるように買う」と言う事になってしまうんだ。
「使いどころ」って言った意味が分かるだろうか?

いずれにせよ、何らかの「返答」がバグかバグじゃないのか、判断が付かないソフトウェアを「盲目的に信頼する」ってのは非常に危険だ、と個人的には思っている。
個人的な経験上そうだ、って事だ。
と言うか、僕もChatGPTにプログラムを書かせる、なんつー事は何度かやってみた。ところが、「マトモに動くプログラムが書けた」例はホンの数例しかない。実の事を言うと圧倒的に「失敗する」んだよな。
龍虎氏なんかはかなり上手くAIと付き合ってる。見事だと思う。それは彼が人工知能を「検索」の延長線上に捉えているから、だ。加えるとすでにプログラミングの知識が豊富になってるんで、「細かい注文を出せる」からなんだよな。
言い換えると、ど素人が「こんなプログラムを書いてくれ」と注文しても成功するたぁ限らないんじゃないか。そう言うレベルには「人工知能」は到達してない。
誤解してほしくないんだけど、例えばプログラミングを自習するとして、アシスタントとして人工知能を使う、ってのは有用なテだと思う。デバッグを頼む、とかさ。
一方、「全面的にプログラミング自体を頼る」のは恐らく上手く行かない。僕自身が試してみてそういう結論なんだ。もちろん無料版しか使ってないんで、3.5と4以降は違うかもしんない。でも多分大差ねぇだろ、って思ってる。それは現在の人工知能が「統計学」ベースだから、だ。上の株の売買の話と基本は同じなんだ。
仮に、Lispのコードを書け、って言ったらかなりマシな結果になるかもしんない。僕は違うけど、Lispユーザーには元々ハッカーが多い。彼らは「綺麗なコード」を書くのに慣れている。結果、「統計解析」がベースな人工知能はマシなコードを提示してくるだろう。
一方、そもそもLispコードの「データが少ない」と言う問題も生じる。人工知能は、繰り返すが「コードの意味が分かってる」わけではない。あくまで「統計的にあり得る」解を返すわけだ。見たこともないようなプログラムを「Lispでのコードで返せ」と言った時点で破綻する可能性は極めて高い。っつーか破綻するだろ(笑)?
Pythonならそういう事はないだろう。ところが、Pythonハッカーも当然数は少ないんだ。ポール・グレアムが良く引き合いに出すロバート・モリスとか、あるいは実用Common Lispの著者であるピーター・ノーヴィック先生とか。彼らの書いたハッカーらしい「美しいPythonコード」は「統計」の前では埋もれてしまう、んだ(「数の暴力」だ・笑)。
「統計解析を基礎とした」人工知能は、結局「平均的にあり得る」コードしか提供しない。言っちゃえばロバート・モリスやピーター・ノーヴィック先生が書くようなコードは学べないし出さない。可もなく不可もなく、平均的、あるいは場合によっては平均以下のコードしか出さない。いくら統計ベースで「参考になるだろう」コードの数が多いにせよ、基本的にはこのテのコードは「クソ汚い書き方」「そこそこの書き方」「ハッカーの書き方」の順で「減っていく」んだ。
これは何もPythonに限った話じゃなくって、メジャー言語にはそういう宿命がある。そして「言語のデザインはその言語の"綺麗な"書き方を決定しない」。
結果、

  • マイナーな言語はデータ数が少ないのでマトモなプログラムは組めない
  • メジャーな言語は下手クソが多いのでマトモなプログラムは組めない
と言う二者択一、になる。
これが統計解析の限界、だ。
従って、例えば「ChatGPTにプログラムを書かせてそれを使って勉強しよう」って方針は自然と破綻する。
龍虎氏みたいに「上手くやる」のは凄く難しいんだ。
もちろん、いつぞや書いた通り、プログラムを書く事自体に興味がない人ならいくらでも人工知能に生成させればいいと思う。どっちにせよ「動けばいいや」と言う判断基準だと、そのコードが「綺麗に書かれてて」「メインテナンスがしやすいか否か」ってのにはキョーミがないだろう、からだ。
ただし、プログラミングに興味があって、本当にプログラミングが好きだ、って人にとっては人工知能でコード生成、なんつーのはハッキリ言うけど勉強にはならん。上で書いてきた通り、「所詮統計解析」だとしたら、それは「人間が書くべきコードの質」の保証にはならんのだ。そんな事してる暇があったら、ロバート・モリスやピーター・ノーヴィック先生が発表している「コード」を読んだ方が遥かにマシだ、って事なんだよ。

いや、今回この記事を書き始めたのは、以下の記事が引っかかったから、なんだよな。


いや、こんな事は起きないんで安心していい・・・米国ではな(笑)。
これって要は「プログラミングを知らない人が」言ってるんだよな。
米国のIT企業は、立ち上げた人自身が「敏腕プログラマ」なんだよ。だから「綺麗なプログラムを書くのがどれだけ大変か」良く知ってる。
あるいは、このテの「起業家プログラマ」が、

ChatGPTが俺が書くより綺麗なコードを書いとる!

とか「感心する」こたぁまずねぇから(笑)。
そもそもここまで書いて来たら分かるだろ?クビにされるのは「ChatGPTが生成する"平均的な"(もしくは"平均以下の")コードを書いてるプログラマ達」だ。
元から「綺麗なコードを書こうと頑張ってる」、言い換えると「動けばいいや」とだけ考えない人はクビにされない。
IT企業の社長が元プログラマだったらなおさら、だ。そこは矜持なんだよ。
「どーでも良いスタイルで書いてる」無自覚な奴らが淘汰されるだけ、だ。
だからChatGPTみたいに「統計ベースでコードを書く」ヤツにコードを生成させてそれを勉強する、なんつーのはダメなんだよ。それは貴方が「平均かそれ以下の」プログラマになる事しか意味しない、んだ。

さて、日本はどうか。
日本の場合、IT企業のトップがプログラマだ、って事は少ない。
貴方が中村光一率いるスパイク・チュンソフトの社員だったら全然心配は要らないだろう。中村光一はハッカーだし、ChatGPT如きに負けるようなコードを書くとは思えない。
貴方が楽天の社員なら心配するべきだ。こっちの社長はプログラマでも何でもない。「人工知能」と言う言葉に惑わされて貴方をクビにする可能性が極めて高い。

いずれにせよ、プログラミングを学ぶ際に「コードの質」が重要になる時代に突入してる。
100行で書かれたコードを50行で実現出来る発想が必要で、それは今のトコ、「統計的な」人工知能では成し得ないアイディアなんだ。
人工知能に差をつけろ。

※1: この「何故に人間には犬と猫が分かるのか?」を端的に研究した人に、言語学者のフェルディナン・ド・ソシュールと言う人がいる。
人工知能では繰り返すが、犬と猫を「分かる」為には、データとして犬を何億、猫を何億、と見せないと「分からない」。
一方、何故に人間は小数のサンプルで理解出来るのだろう。それは「犬」と「猫」の差異を把握するから、だとソシュールは考えた。そしてコンピュータ及びプログラムは「差異」が分からない。
ソシュールは全てに於いて「差異」が体系を形作るのでは、と考える。このソシュールのアイディアがその後様々な分野(例えば文化人類学)に適用され、特に最大の影響として、「差異が形作る構造」を基礎にして既存の哲学をひっくり返すのを狙ったのが、知る人ぞ知る「構造主義」と言う現代哲学理論だ(日本では浅田彰がこの思想では有名だった)。
一方、ソシュールのアイディアは、見るところまだ「人工知能」の分野には届いてないんだろう。

※2: 意外だろうが、日本の大学だと心理学科は文学部に所属している例の方が多いんじゃないか。
また、心理学は実験や観察を行う辺りは科学的、ではあるが、現実問題、それは全て「間接的に観察した」結果以上のモノではない、と個人的には思ってる。従って、マジメに追求すると脳生理学的に、とか解剖学的に解明する以上テは詰まるんじゃないの、ってのが正直な感想だ。
行き着く先は人体実験とか(笑)。そうでもしないと「心」や「知能」は解明出来ないんじゃないか。

※3: 日本でたくさんの一般向けの心理学系書籍を書いた宮城音弥もその著作で論を展開するベースとして認知心理学を用いてた。
また、かつてLisperの代表格、として扱われていた苫米地英人氏も元来、認知心理学者だったと思う。

※4: だから欧米の翻訳書でこのテの本を読む場合、最初に大体「どういう立場を採用してこの本を書いてるのか」が書かれてる筈だ。日本人の場合、「本に書かれてる事は全て正しい筈だ」と思いかねない人が多いが、向こうの本の場合、「これが正しいかどうかは知らんけど、一応立場的にはこの本は✗✗な路線で書かれてる」と書いている。
その辺、読む時には気を付けよう。

※5: ちなみに、マモーの声を演ってた人ってのは、あまり知られてないが、二代目水戸黄門を演じてた西村晃、だ。


マモー。ルパン三世の映画第一作の敵役。ハッキリ言っちゃって、「映画としては」このルパン三世の第一作以外は観る価値はないだろう、って思っている。それくらい傑作だ。

マモーの中の人

意外だ、と思うかもしれないが、実は西村晃は元々、悪役として定評があり、ルパン三世の初映画化ではその「悪役ぶり」が徹底されている。
ちなみに、ルパン三世の映画は1978年、西村晃が水戸黄門を演じだしたのが1983年なんで、実はマモーの方が早い。

※6: ホント超ザックリ、だ。現実的には、この「散布図らしきもの」を作る事さえ難しくて、犬の写真、猫の写真を「どう分類するのか」と言うの対してこのモデルは説明していない。例えば写真の中の「境界線(つまり顔の輪郭)」を判別するのが人工知能には難しいし、あとは「丸顔比率が高ければ」猫っぽい、「鼻が高ければ」犬っぽい、とかそういう情報を付加するなり、最初は人間が整理した「データ」を元にして、「分類」を最初に教えておかなければならない、等と言った「下処理」が必要となる。
ここではあくまで「最終的にどうしてるのか」に注目している。

※7: 繰り返すが、元々ニューラルネットワークと言うのはこういうアイディアだ。
脳細胞のニューロンも半導体素子と同様に、ON/OFFしかない。そんなニューロン同士が繋がってネットワークになり脳を形成している事に着目して、「半導体素子同士を脳みたいに繋げてみよう」と言うのがオリジナルのアイディアだったように思う。要は一種の「脳をエミュレートした巨大なコンピュータを作ってみよう」計画だったわけだ。
現在でのニューラルネットワークは、ソフトウェアで脳をエミュレートしよう、と言うのがその根幹だ。ニューロンはON/OFFしか情報を出さない、つまり、1か0しか情報出力がないトコに着目してるわけだが、実はこういう「非連続関数」は扱いが厄介だ。
そこで代替として、シグモイド関数族、と言う数学関数を基本として使う。シグモイド関数族は色んな関数があるが(ロジスティック関数や正規分布の累積分布関数)、いずれにせよ、入力xに対して出力yは0〜1の間に収まる、と言う特徴を持っている。



三角関数のtangentの逆関数であるarctanもシグモイド関数の一種だ。シグモイド関数族は多かれ少なかれこういった概形になる。

データをxに入れると出力yが0〜1の範囲で決まる。その出力yを連結されたシグモイド関数のxとして入力するとまた出力yが生じる・・・とシグモイド関数の連鎖、がソフトウェア上での「ニューラルネットワーク」の基本で、その判定結果をフィードバックして各シグモイド関数の係数やら何らやを「鍛えて」行く。つまり、「歪んだ」シグモイド関数になる。それが「脳に物事を覚えさせる事」に対応してるわけだ。

※8: 古典的には、日本では「数量化II類」と呼ばれる統計手法がこれで、言っちゃえば「機械学習」とは数量化II類の延長線上に存在する。
なお、古典的な統計手法では、このテの、まずは「二値判別」が主題として来ていて、カテゴリが3つ、4つ、・・・と増えていくに従って精度が落ちていく。仮に手元に10億何らかのデータがあるにせよ、二分すれば5億と5億、カテゴリが3つになれば3億3千3百3十万・・・、カテゴリが4つあれば2億5千万・・・と「母数」が少なくなっていくのも良く分かるだろう。
カテゴリ数を増やすにはどのみち限界がある、んだ。
また、古典的手法では二値判別にせよ、その二値は「ほぼ同数のデータでなければ精度が落ちる」と言われていて、片方がもう片方よりデータ総数が極端に多いないしは少ない、と言ったら上手く行かない、と言う事も良く知られていた。
「スパムメール」と「正常なメール」が同数ある、なんてことは通常は考えられないわけだが。

※9: ただし、理論的な話をすると、統計学で「分析」された「結果」は、現代のフィッシャー以降の統計学では「定数」として扱う。言い換えると「推定値」は「推定値」だろうと、一回決定した「数値」は変更しない。
つまり、例えば最初に10億のデータを持っていて、判別対象として10億のデータが新規に入ってくる。しかし、後者の10億はデータベースに取り込まず「捨てる対象にすべき」と言うのがフィッシャー以降の統計学の基本的な考え方だ。得られたモデルを「更新」はしないんだ。
これは何故かと言うと「検定」と言う「その得られた結果の尤もらしさ」の判定を「何度も繰り返すべきではない」事に由来する。また、「検定」では、「モデルが現実と適合しない」事は言えるが、逆に「そのモデルであるべき」と言う完全な指標にはなり得ない。
実はこの辺の「現代統計学の基本的な考え方」と「機械学習」がどのように理論的に結びついてるのか、ってぇのは良く分からん(笑)。言い換えると「学習」と言うプロセスを認めた以上、「機械学習」はいわゆる「統計学」の理論を応用しつつ「別の道」を辿り始めた、と言う事かもしんない。
なお、「得られたモデルがどの程度信頼出来るか」の指標に、情報量基準、と言う考え方が存在する。つまり、モデルが複数あり、「そのうちどれが一番マシやねん?」と言う場合はこれを使ってモデルを選定する。ただし、そこで選定されたモデルが「正しい」とか「一番良い」とは保証されない。あくまで「候補の中では」一番良い、と言う意味になる。
例えると、例えばとある美少女コンテストが行われるとする。そこの優勝者は「その美少女コンテスト内では」最適解だろう。ただし、「この世に存在するあらゆる美少女の中で」一番を意味しない。そういう事だ。
美少女コンテストに世界中の全ての美少女が揃う、たぁ限らないんだ。統計モデルに付いても同じ事が言える。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「日記」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事