AIとは?人工知能とプログラムの違い備忘録

      2023/10/28

追記 ※個人的備忘録なのでスルーでお願いします
AIの説明でもっとも分かりやすかった記事↓ 

AIに関する基本的な仕組み
人工知能:人間の思考プロセスと同じような形で動作するプログラム全般
機械学習:入力されたデータからパターン・ルールを発見し、新たなデータに関する識別や予測などが可能
深層学習:パターン・ルールを発見する上で何に着目するか「特徴量」を自ら抽出

機械学習に学習と推論がある ※機械学習に使用するためには「使えるデータ」を用意する必要がある

教師なし学習:これは猫であるという情報を与えない学習※正解のラベルをつけない※猫と呼ばれる動物かはわからないが他の動物と区別できる
教師あり学習:正解のラベルをつける学習
強化学習:試行錯誤を行い正解に報酬を与えることにより学習させる

参考文献としてあげられているもの

人工知能或いはAIという呼称は言わば一つの概念の呼称と言える。
人間が判断、行動する際にどうやらこんな感じで学習し判断し行動しているのだろうというある種のイメージを人工的に再現したものを言っているのだろう。
機械学習や深層学習と言われると何も知らないものは学習をするだけのものと思ってしまい、人工知能は別にあると考えてしまう。しかし、機械学習にしろ深層学習にしろ学習したものをどのようにルール化して決定するかなどもセットとなっている。このことからAI=機械学習と捉える人もいることは納得できるし、専門家に言わせればいやそうではないと言いたくなるのも分かるが、実際のAIは機械学習の外に何らかのプログラムが存在して最終的に意思決定していることではないことから通常のAIは機械学習で完結しているのでAI=機械学習もあながち間違いではないだろう。
そういう意味ではアルゴリズムとプログラムも同じものとも考えられるし、別物だとも言える。どういう観点で捉えるかによって変わってくるためにややこしくなっているのだろう。

アルゴリズムとはある問題を解決する方法や、ある目標を完了するための方法が書かれた一連の手順のことhttps://www.rd.ntt/se/media/article/0077.html

アルゴリズムは要するに方法、或いは戦略、手法、そういったものを言うのであって、それをコンピューターが再現できるようにしたものがプログラムと言ってよい。

以下メモ

改めてAIと通常のプログラムあるいはアルゴリズム(以下プログラム)との違いを結論から言えば
AIは最適解を計算して出し通常のプログラムは用意されているもの
と定義できる。
まず、人工知能とはなんぞやと言い始めると、知能自体が哲学的な要素まで含んでいると思われるので定義できないだろう。また、そういう意味では現在人工知能などというものは存在しない。にもかかわらずAIとプログラムを区別しているのはなぜか?そこに違いがあるから区別しているのだろう。その区別の基準を自分なりに考えた、というわけである。

AIもプログラムの一種だろ?だからAIとは呼べないのではないか問題

まず、AIであってもプログラムの一つに過ぎない。だからAI=人工知能ではないと私も考えていたが、それを言い始めると身もふたもない。そもそも人間の知能であっても遺伝情報があって成立しているのであり、遺伝情報を一種のプログラムとみると知能ではない、となりかねないのでプログラムだから知能とは言えないとはならない。
また、厳密な意味での人工知能は存在しないので一般的に言われているAI、要するに人間が作ったプログラミングとしてのAIと通常のプログラムの違いを論点とするため、プログラムの一種だからAIとは呼べないとは言えない。

通常のプログラムとAIプログラムの違い

ワードやエクセルなどをAIと呼ぶ人はいないだろう。他方チャットGPTはAIと言う。※上記の説からプログラムの一種なのでAIとは呼べないことになるが、ここで言っているのはなぜチャットGPTのようなものをAIと呼んでいるのかである。

ワードやエクセルは指示された事を実行するだけである。そうプログラムされている。
チャットGPTもプログラムである事は間違いないが、指示されたことに対する答えを事前に用意しているわけではない。勿論そのパーツパーツは用意していると言ってもいいが、ワードの場合は「あ」をキーボードで入力したら「あ」と表示するというプログラム。しかし、チャットGPTは●●という小説の感想を2000字くらいで書けと指示するとそれなりの文章を表示するが、元々チャットGPTに●●という小説の感想が2000字くらいで用意されていたわけではない。

指示されないと動かないのがプログラム説

指示したことしか実行できないのがプログラムであるという説もあるが、この説だとAIとの区別がはっきりしなくなる。
AIであっても指示、命令に対して動くようにプログラムされていることに違いはないからである。
プログラムは指示に対する答えを用意してあげないと(ワードで言えば「あ」と表示する場合は●●~など)動かないが、AIは指示に対応するような結果が用意されていなくても動くというほうがしっくりくる。
もっとも、ベースになるような答えは当然あるわけだが、通常のプログラムは1000個の答えを用意していればそれ以外はスルーされる。
例えば傷を見つけて修理する修理ロボットの場合、1000個の傷のデータしかないと通常のプログラムではそれ以外の傷は傷だと判断しない。しかし、AIだと1000個の傷のデータを学習させ(単に記憶させるわけではない)、傷とみなす条件をデータ化して記憶させ、それに合致すれば傷だと判断して修理することができるので1000個記憶している傷以外のものも傷だとして判断する場合があるだろう。
勿論、傷とみなす条件を用意しているという意味においては答えを用意していると言ってもいいかもしれないが、傷そのもののデータがあるわけではない。

学習するのがAI説

そういう意味ではデータを学習していくのがAIと呼びそうではあるが、実行するかしないかやどのように実行するかも含める必要があるだろう。修理ロボットで言えば未知の傷のようなものを傷と判断して修理するのか、傷と判断しないのか。
とは言え、それらも含めてプログラム上で動くものなのであってやはりプログラムだからAIと呼べないとしてしまうと身もふたもない。

指示や命令がなくても、ある条件に合致すれば実行されるようにプログラムされていれば通常のプログラムでも実行可能だが、結局それも指示命令が裏で走っていることに変わりないし、AIでも同じことである。
通常のプログラムはその指示に対してこのようなことを行う、あるいは行わないということがセットになっている。
また、その指示が自動で行われる場合は当然ある条件に合致したらその指示を出す、出さないということになる。
AIも基本は同じであるが、AIはその条件を学習して記憶させておき、条件に合致するかしないかを瞬時に判断している。勿論これも通常のプログラムでも可能であるが、保持しているデータではなく、今現在与えられたデータが条件に合致しているかどうかを計算していくという作業を瞬時に行うにはCPUなどの性能においてなかなか難しいものがあり、現在では技術の進歩によりそれが可能になったというだけである。

AIだからと言って必ずしも完璧だとは言えない

いずれにせよ、現在AIと呼ぶものはみんなプログラムの一種であり、基本的には同じものであるが、強いて通常のプログラムと違う点をあげれば、事前に持っているデータ以外の事象に対応できるものがAIということになろう。
そういう意味においてはプログラムとは別物ではないし、万能でもなければ常に完璧な正解を出すものでもないことは明白である。
とは言え、データの保持においてもそのデータを条件に合致しているかどうかを計算する速度においても、またその条件抽出の正確さにおいても人間のほうが優れているなどとも言えないわけで、むしろ感情や体調、個人個人の能力に左右される人間よりもAIのほうがよっぽどマシなのは間違いなさそうである。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
備忘録です。書いていることは間違っています。決して信用しないで下さい。

人工知能あるいはAIと呼ばれるものとプログラムの違いがよく分からない。
ググってみると、人工知能は人間の知能を模したものとか説明になっていないものが多い。
そして、実は人工知能の定義自体が結構曖昧らしい。

なのでAIとプログラムの違いからAI自体がどのようなものかを理解しようと試みたわけであるが、もっとも分かりやすかった記事はこちら→人工知能(AI)とは?具体例を交えて初心者にもわかりやすく解説!

引用抜粋まとめ

そもそもAIの定義は時代や人によって違う
AIもプログラムの一種である
とは言えAIと一般的なプログラムが違う特徴がある
その特徴的な4つのレベル
1単純な制御プログラム
2古典的なAI
3機械学習を取り入れたAI
4ディープラーニングを取り入れたAI

●ディープラーニングは機械学習の一部であり、機械学習は人工知能(AI)の一部

●機械学習は、開発者が全ての動作をプログラムするのではなく、データをAI自身が解析し、法則性やルールを見つけ出す、つまり、トレーニングによって特定のタスクを実行できるようになる人工知能をさす。
●ディープラーニングは従来の機械学習と異なり、人間の神経を参考にしたニューラルネットワークを何層も重ねることにより、データの分析と学習を強化した人工知能をさす。

機械学習とディープラーニングの違いがいまいちよく分からなかったのでこちらの記事を参考→ディープラーニング これだけは知っておきたい3つのこと

どうやら機械学習のほうはまず特徴の定義づけを人間がしておく必要がありそうだ。
それに比べディープラーニングは特徴やパターンを基本的には自動的に抽出するようだ。
しかし、ディープラーニングにおいてもある程度人間が特徴づけをしておく必要があるという記事もあったので、詰まるところニューラルネットワークを使っているかどうかに決定的な違いがありそうである。とは言え、ニューラルネットワークがいまいち分かりませんが(笑)

現在主流なのは弱いAI

強いAIとは、人間のように幅広い知識と何らかの自意識を持つようになったコンピュータのことを指します。

弱いAIとは、知能がある”ように見える決められた処理や特定の用途には突出した成果を出すことができる特化型のAI。

まとめ
AIとは機械学習を行うプログラムである

ディープラーニングによるAIがもてはやされておりますが、勝手に特徴やらルールやら判断し始めたらめっちゃ怖いやん。ラクしようとし過ぎ(笑)




 - 素朴な疑問