AIアプリを作ってゲームチェンジャーに俺はなる

      2023/10/29

以前AIと普通のプログラムの違いについて書いていたが、またアップデートしたので記事に残しておこう。
勿論、高校数学さえまともに勉強したことのないおじさんの戯言なので見かけた人はスルーしていただければと存じます。

指示、設定に対して答えが用意されているか?

AIと普通のプログラムの違いは、
要するに
ある指示に対しての反応、挙動、結果が固定されているかいないかという点に集約されるようだ

プログラムは何をどうするか具体的かつ峻別可能なようにあらかじめ記述されていないと、その事象に対してはスルーしてしまう(動かない)。
修理ロボットであれば、傷や故障がデータとして登録されていなければ、それを認識しても傷ではないと判断してしまうだろう。
この点AIでは学習した結果からデータとして保有していない事象でも傷や故障だと判断され得る可能性がある。

既存のAIツールはプログラムでも代替できるものが多い

AIを作るツールが色々と出現しているが(AIを作ると言う表現は適切ではないかもしれない)、ほぼほぼ生成系だったり、何らかの指示に対して答えを出すものである。
画像生成のAIだと、指示に対して単にキーワードを拾って組み合わせただけのようなものしか結果を返すことができないものもあるので、やはりそのAIの出来に左右される。
そういう意味では指示者、要するに人間の意図を汲み取ることができるものが本来の人工知能に近いと言える。
とは言え、人間は曖昧な事を言うし、特に日本語は曖昧過ぎてAIがその意図を汲み取るのは容易ではないことが想像できる。かのチャットgptも日本語より英語のほうが反応がよいという話もある。
もっとも、日本人同士は日本語で会話をして日常生活のみならず、学術研究分野でも滞りなく意思疎通ができているのだからAIにもそれが可能だろう。

AIによって仕事を便利にするツール

ワードやエクセルを使用して仕事をするのはもはや常識であり、これらをAIによって便利に使うことができるようなものも既に存在している。
こういうのは特化型AIとでもいうべきものだろう。2001年宇宙の旅のハルのように、このデータを使ってグラフを作ってと指示を与えればそれなりのものを作ってくれる。
いずれにしろ、そのデータで、この結果を抽出するにはどのようなグラフが適切でどのようなタイトルにするかなどはそのAIの精度に依拠するし、エクセルを動かすAIはエクセルを動かすことを前提にしているのでグラフと言えばエクセルで表示されるグラフの事だとすぐに認識できるだろう。

学習型コンピューター

機動戦士ガンダムでは主人公が初めてガンダムに搭乗する際マニュアルを手にして「教育型コンピューターか」と呟くシーンがある。
学習型ではないかという意見があるが呼び方の違いはあれどその目指すところはそのコンピューターが経験を積むことでアップデートされていく点にあるはずだ。
この点で機械学習とかディープラーニングと混同しがちであるが、まったく次元の異なるものかもしれない。
極論すればデータが新たに蓄積されて更新されるのみならず、その実行方法までアップデートされていくと言っていいだろう。そうでなければ単に記憶される量が増えていき、実行結果の精度が上がるだけである(勿論それだけでも充分だが)。
つまり、実行するかしないかの判断精度が上がるというだけでなく、このやり方よりもあのやり方の方がより精度が上がると判断し実行するということである。
言わば新たなやり方を編み出してしまうということになる。
既存のAIはこの実行方法は恐らく用意されたものの中から選択しているだろう。
エクセルを操作する場合で言えば当たり前だがエクセルで操作できる範疇のものになる。
しかし、真の学習型であれば例えばグラフを作成する際にエクセルだけではなく、他のアプリなどもその実行方法に加える可能性がある。

成長するAI

AIを作った当初では想定していなかった事も学習させれば(教育すれば)実行できるようになる。
エクセルを動かすマクロ、VBAではエクセル操作の一連の流れを記録させることによってイチイチ記述することを省略できるが、このように人間がやっていることを学習させることができればイチイチプログラムすることも不要となる。
もしも、ガンダムの教育型コンピューターがこのようなものであれば、ニュータイプであるアムロの挙動を学習することによって超人的に進化し、他のモビルスーツを圧倒してしまうのも頷ける話である。

既存のAIはある特定の分野に特化しており、このような事は望むべくもないようだが。

人間の挙動を見て学習し、行動するAI

強化学習とディープラーニングでロボットが自動的に習熟
人間がやっていることを見させて、やらせてみて失敗すればそれを指摘する。そうやって何をすべきかすべきでないかを教育していき、学習させることができればプログラム言語を知らなくても一つの仕事を任せることができるAIロボットを作ることができる。
一度覚えこませれば、大量コピーも容易である。

もっとも、ある指示をこなすだけの場合強化学習は不要だろう。

働くAI

指示されたことを忠実にこなす、のであれば何もAIである必要はなくプログラムでもよさそうだがそう単純でもないのでそこでAIの出番となる。
人間の曖昧な指示をその作業として一般的に適切だと思われる指示として解釈して実行に移す。こんなことは単純なプログラムで行うと余計にめんどくさいことになるだろう。
人間の行動を代替するようなAIというものは精度の問題はあれど既に存在しているが、逆に言えばそこまで高度なものはある特定の指示に対して動く、というふうにはつくられていないだろう。いや、言い換えると、ある特定の指示に対して膨大な学習結果を詰め込んだものと言えるかもしれない。その結果として新たな事象にも対応できる。
しかし、新たな事象(環境など)に自律的に判断行動するのではなく、
日々別の作業をしたり、あるいは同じ作業をするにしてもその作業内容がある程度ルーティーン化している場合など、都度直接的な指示に対応して行動すれば足りる場合も多い。
逆に言えば、指示を与えることが前提と言ったほうがいいかもしれない。これこれこういうことをやってくれと指示出しをして(実際の作業時間は予約指定するにしても)仕事を行う場合はそこに強化学習が必ずしも必要とは言えない(あってもいいが)。

人間の指示を推し量って理解する

人間の話し言葉や文章、動作などを的確に理解して、それを汲み取れるかがより重要となる。
例えばあるファイルをコピーさせる場合、そのファイルの指定を厳密に行わないと動かない場合が多いが、人間だと厳密に指定しなくてもある程度理解して仕事は行える場合が多い。
こういう部分にAIが使える。
理解した指示を実行する場合も同様なことが言えるが、エクセルを操作するにつきVBAなどの言語をAIに理解させて実行させる方法と直接的にPCを操作させる方法が考えられる。
この方法だとAIとは呼ばれてはいないが既にUWSCのようなものがある。UWSCとは何か
しかし、UWSCは一度スクリプトとして記述する必要がある。UWSC辞典

AIとその実現結果

要は人間の指示をちゃんと理解して作業させるには、AIによる部分とそれを実際に作動させる部分が必要である。
自動運転であれば物理的な車(車を制御するプログラム部分か)である。
エクセルであればエクセルを動作させる部分であるが、この場合はエクセルそのもののプログラムではなくエクセルを操作する部分ということになり、ウィンドウズPCならウィンドウズということになるし、それを動かすのは人間の挙動である。
結局、人間の指示をPCを動かす人間の挙動に置き換えることによって実現させることになるため必ずしもVBAなどの言語をAIに覚えこませる必要はないということになる。
ctrl+Pをコピーと覚えさせておけばコピーという指示に対してctrl+Pを実行する。言語処理でコピーの意味を理解させるのとはまったく異なる。
もっとも、エクセルやワードを操作するという特化型の場合は最初からそういうものを学習させておいたほうがいいのは言うまでもない。いずれにしろウィンドウズPCならウィンドウズPCを動かす何らかのプログラム実行する必要があることに違いはない。

人間がその操作方法を知らなくても使えるようになる

もっとも、OSが違う場合はそのOS特有の動作をAIに覚えこませておく必要がある。従って、人間の行動を模倣してそれを実践することをベースにしておけば、指示出しを人間が実際に行わせることによってOSなどの違いを超えることができるようになるし、当然各OSを理解させておけば人間が使い方の違いを把握していなくても動くことになる。
結局これは目的地を言えばそこまで連れて行ってくれる自動運転と変わらないわけであるが。
PC操作を自動化!業務を効率化するツールや手法
エクセルに指示を出して後は自動で実行させると言っても既にたくさんの手法が存在しているが、これらを使いこなすにはそれこそ学習がそれなりに必要であるため大部分の人には敷居が高く、勉強するくらいなら手動でやったほうがよいとなってしまう。
また、きちんとした指示を出さなければ思ったような動きをしてくれない。
従って、ここにAIが利用されるメリットがある。

AIを利用した言語型のプログラム

要は人間が人間の話し言葉で指示したら思っていた通りの動作をしてくれた、これである。
言わば言語型プログラムと言えよう。

指示 解釈 → 翻訳 実行




 - python, VBA, 素朴な疑問