次回から「検索キーワード なうブログ」とご検索いただけると泣いて喜びます

AI(人工知能)とプログラミングの違いを4つに整理した

AIと普通のプログラミングの違いって何かな?そもそもAI自体がなにか分からないよ、こんな疑問にこんな疑問に今回は答えていきます。

 

結論、人工知能と普通のプログラミングの違いは以下のような感じです。人工知能は、なんらかのデータをもとになんらかのアルゴリズムのもと何かを推測する。普通のプログラミングは、一定のアルゴリズムをもとに規則的な処理を行う。こんな感じです。

 

AIとプログラミングとは何か

AIとプログラミングとは何か

 

まずAIとプログラミングの違いの前に、それぞれが何なのかざっくりとした概要を解説します。

 

AIとは

まずAIですが、人工知能のことですよね。実はAIも、特化型人工知能と汎用型人工知能の2つに分けられます。世の中のAIはほぼ特化型人工知能の方のAIですね。

 

特化型人工知能

特化型人工知能は文字通りで、何かの用途に特化した人工知能のことです。石鹸で現状活用されているのは、特化型人工知能です。

 

例えば画像認識だとかメールのスパム判定だとかは、そういう用途に限定した特化型人工知能ですね。基本的にはそれ以外の用途では、そのままこの特化型人工知能は活用できないという感じです。

 

マイクロソフトのりんねとかは、テキストチャットに特化したチャットボットの特化型人工知能です。ペッパー君は、その音声版という感じですね。

 

汎用型人工知能

一方の汎用型人工知能は、いろんなことにそのまま使えるという特徴のある人工知能です。ただここは技術的にまだ実証されていないというか、実証されたらとんでもないことになります。

 

事実上、人間の業務をこの汎用型人工知能で置き換えることが実現しうる可能性すらあります。いわゆるシンギュラリティは、この汎用型人工知能が実現される日を指しており、本当にくるのか?という感じです。

 

汎用型人工知能ができると、それこそターミネーターのような世界になってもおかしくはないためちょっと怖いですよね。ちなみにこの話になると強いAIと弱いAIという概念も知っておいた方がいいです。

 

強いAI・弱いAI

強いAIと弱いAIっていうのは、意思の有無の違いです。AIはあくまでデータを元にアルゴリズムによって何かを予測するためのものです。しかし、そこに意思が含まれるか否かが違いです。

 

人間とAIの大きな違いは、意志があるかどうかですよね。人間は意思という概念がありますが、基本的にAIにはありません。しかしAIにも意志があるとした場合のAIが、強いAIです。ないのが弱いAIです。

 

ただそもそもAIに意思という概念を作れるのか?って個人的に思いますし、それこそターミネータの世界でも愛とかそういう概念的な意思は理解されてないため強いAIって理論上の話だけなのかなって思います。

 

プログラミングとは

一方の普通のプログラミングは、定式化された処理を行うものなので、何かを予測したりはできません。エンジニアが実装した通りの処理を行いますし、例外があればエラーが出ます。

 

処理自体も進化したりもなくて、実装されたままの動きをするため何か変更が必要であれば要件通りに実装しないと動くものではないという感じです。

 

当然プログラミングには意思もないわけで、むしろどんな処理をしてもらうかは人間が全て考えているわけです。プログラミング言語自体も人間が作ってます。

 

AIとプログラミングの違い

AIとプログラミングの違い

 

これまでを踏まえると、AIとプログラミングの違いとして4つほどに整理できますよね。概ねこれらの違いで整理できるかなと思います。

 

学習データの必要性

1つは学習データの必要性の有無です。人工知能では必要ですが、普通のプログラミングでは必要ないです。もちろんプログラミングでもデータは必要ですが、学習用ではないです。あくまで処理のためのデータです。

 

人工知能のほうではどんなデータを学習データとするかで予測の精度も変わるという違いがあります。過学習と言って、むしろ学習用データを多く与えすぎるとかえってAIがあらゆるデータに都合が合うようなモデルを予測するため、

 

逆に精度が悪くなるということもあります。そのため、どれくらいどんなデータをAIに学習させるかもAIにおいてはとても重要です。

 

アルゴリズムの自己進化

2つ目の違いとして、人工知能のアルゴリズムは進化(学術的にもアルゴリズム単体としても)のに対して、普通のプログラミングのアルゴリズムは基本的に進化しません。

 

AIにおけるアルゴリズムは、機械学習の教師データありだとか教師なしデータだとか強化学習だとかいろいろあります。学術研究でもより精度の高いアルゴリズムの研究がされており、日々進化しているのが実情です。

 

普通のプログラミングであれば一定スキルがつけばあとは仕事について行けばOKな部分もありますが、AIエンジニアなどであれば最新の学術論文なども吸収する必要があって結構大変です。

 

使用目的が予測かどうか

3つ目の違いとして、目的が違うというものがあります。AIは基本的には何かを予測するために使う技術群です。一方で普通のプログラミングは予測ではなくて、定型化された処理を自動化するためのものです。

 

AIも自動化という意味では同じですが、用途が予測なのが違いですね。ユースケースが異なるため、そこを混ぜてしまうと不必要にAIを使い、誤って普通のプログラミングを適用してしまうことになるため注意が必要です。

 

AIプログラミングでの予測がどのような用途で使われているかどうかは、AIプログラミングでできることとそれぞれの需要の高さについてを参考に見てもらえればと思います。

 

数学との関わり

最後の違いは、数学との関わりです。AIは基本的に数学と密接に関係しており、統計や線形代数をある程度理解したうえでより高度な統計モデルを使っていることが多いです。

 

一方で、普通のプログラミングは算数程度のものでも普通に実務上は困りません。ただスキルを上げていくという意味では、この限りではないですが基本的に四則演算が理解できていればプログラミング自体は可能です。

 

AIエンジニアになっている人の多くは、大学や大学院で関連する分野の研究を行っていた人ばかりですし、僕の知り合いのAIエンジニアやデータサイエンティストの多くは働きながら大学院に通って最先端の理論を愛でます。そういう世界なのです。

 

まとめ

 

ということで今回はAIと普通のプログラミングの違いを解説しました。理解が進めば幸いです。もしもっと理解を深めたい、仕事に使いたい場合は以下の記事なども参考にどうぞです。

 

人気:AIを学べるプログラミングスクールのおすすめ【比較してみた】
人気:IT転職サイト・エージェントのおすすめ【体験談と役立つ考え方も解説】

最新情報をチェックしよう!