【ChatGPTやMidjourney】AIとは一体何者なのか?

IT

対話型AIのChatGPTやイラストを描くAIのMidjourneyなど、近年はより実用的なAIが数多く生み出されています。もう数年もしたら、銀行やスーパーなど日常的に利用するような施設でもAIがどんどん導入されていくことでしょう。そんなAIにまみれていく世の中の中で、今一度考えておきたいのは「そもそもAIとは何者なのか」ということです。もちろん「便利なもの」で終わらせてしまってもいいのですが、せっかくなのでAIのあれこれを教えていきたいと思います。

そもそもAIとは?

AIとは「Artificial Intelligence」の略で、日本語では人工知能と言います。人間のような論理的思考で物事を判断したり実行したりするプログラムです。例えば「今人気のお笑い芸人を教えて」と聞くと、インターネット上の情報を基に芸人の情報を教えてくれたり、障害物を認識して自動で停止する自動車など、過去の経験や大量のデータなどを基に最適な行動をしてくれるというのが大きな特徴の一つです。また、人間の脳のように、学習を重ねることによってその精度が高まっていくというのも特徴です。

AIは処理能力や用途によって「特化型AI」と「汎用型AI」に分類されます。簡単にそれぞれの種類がどんなものかをご紹介していきたいと思います。

特化型AI

特化型AIAGI – Artificial General Intelligence)はある分野の処理に特化したAIです。画像認識や音声認識、ロボット掃除機などに利用されるプログラムはこの特化型AIに分類されます。特化型は、特定の分野において大量のデータを蓄積し、そこから法則性を読むことで最適な行動ができるような仕組みになっています。

ただし、過去の例に無いようなトラブルへの対応は難しいという欠点があるため、創造性が問われるような処理にはあまり適していません。しかし近年では「ChatGPT」や「Midjourney」などのより人間に近い動作をするAIが作られているため、いずれは人間のあらゆる行動を模倣できるようになるかもしれません。

汎用型AI

汎用型AIGAI – Growing Artificial Intelligence)は、分野を問わず、あらゆる問題を解決できるAIです。すごく簡単に言うとドラえもんです。ドラえもんはのび太君の悩みをヒアリングして悩みを解決できるような道具を出してくれるだけでなく、おつかいに行ったりどら焼きを食べたりと、自分で考えそして実行することができます。

汎用型AIはより柔軟な思考ができるため、人間にしかできないような複雑な問題にも対応することができます。しかし今現在はまだ実現していません。もし実現することができたら、人々の生活をよりサポートしてくれるでしょう。

機械学習でAIを育てる

AIのプログラムが元から優れた判断を行えるかというと、そうではありません。実はAIは生まれたばかりの状態では何も判断をすることができないのです。AIは人間の赤ちゃんと同じように、いろいろな知識を教えることで判断力を高めていくのです。このAIに大量の情報を与え勉強させていく過程を「機械学習」と呼びます。

機械学習は、学習させたい分野のデータを大量に与え、そこから法則性を見つけ出すような学習法と、AI自身の行動結果にスコアをつけて、その状況に適した行動を自ら判断できるようにするような学習法があります。近年では、これらの学習の精度をより高めた「ディープラーニング」という学習法を実施している場合が多いです。

ディープラーニング

機械学習では、学習データをAIに与える入力層、データ分析を行う中間層、そして分析の結果を出す出力層からなる「ニューラルネットワーク」という人間の脳と同じような機能を利用しています。ディープラーニングとは、このニューラルネットワークの中間層をさらに細かく層を分けて学習させる方法です。これによりAIは、より精度の高いデータ解析を行うことが可能になります。

AI開発に使われている言語

現在世界中には多数のプログラミング言語が存在します。それぞれの言語にはそれぞれの魅力があるのですが、AI開発には特に以下のような言語が使われる場合が多いです。

Python

Pythonは1991年に開発された言語で、コードが読みやすく、初心者でも利用しやすいというのが特徴です。また、柔軟性・汎用性が高いので、AI開発だけでなくWeb開発や言語処理などのあらゆる分野で利用されています。

AI開発に特化したライブラリ(拡張機能)も数多く存在するため、現在のAI開発においては最も主流な言語だと言えるでしょう。もしAIを作ってみたいという方は、Pythonでの開発をおすすめします。

R言語

R言語は1990年代に作られたプログラミング言語です。R言語は統計処理や機械学習に特化したプログラミング言語のため、AI開発との相性が非常に良いです。ただし、Web開発ができないなど、汎用性が少し乏しいというデメリットもあります。

AI事業に注目が集まる昨今ではR言語の需要が高まっています。ただし、R言語プログラマの数はPythonよりも少ないため、AIプログラマとして活躍したい場合はR言語をマスターするとよいかもしれません。

Julia

Juliaは2012年にリリースされた比較的新しい言語で、PythonやR言語と同等の可読性がある言語です。最大の特徴は処理速度の速さです。その速度はなんとPythonの30倍ほどという圧倒的な早さです。ただし、まだ認知度が低く技術的な情報を取得するのが難しいため、覚えるのには少し苦労するかもしれません。

残念ながら今現在Juliaの需要はそれほど高くはありません。しかし、処理速度という魅力から、年々注目されていっている言語です。最初に触るプログラミング言語としてはあまりおすすめしませんが、PythonやR言語などの学習を一通り終えた後にJuliaを使ってみると将来的に役立つときが来るかもしれません。

上で挙げた言語の他にも「Java」「C++」「Scala」などの言語でもAI開発を行うことはできます。しかし、機械学習ライブラリの豊富さやコードの可読性から、上の3種類(特にPythonとR言語)が利用されることが多いです。もちろん言語にはそれぞれの良さがあるので、もしAI開発をしたい場合は、自分好みの言語で開発をしてみてください。

AIの将来性

現在では限られた分野でのみ活躍するAIですが、将来的には医療や教育、農業などの幅広い分野で利用されていくと思います。そして新たなビジネスモデルが創造されていくことでしょう。しかし、生活の利便性が高まる一方で、セキュリティ問題やAIに仕事を奪われるという失業問題など、多くの問題に直面していくことも危惧されています。こういった問題に取り組み、AIと人間の共存をを考えていくということが重要になってくるのではないかと思います。