コンピュータ科学において、AIの歴史は**「問題をいかにして計算機に解かせるか」**というアプローチの進化の歴史です。大きく分けて、3つのフェーズ(パラダイムシフト)で理解すると構造が見えてきます。

探索と論理(Search & Logic)

──「正解」を探し回るプログラム

初期のAI(1950〜80年代)は、コンピュータ科学の基礎である「探索アルゴリズム」と「記号論理」で構築されていました。

  • CS的視点:これは巨大な**「If-Then(もし〜なら、こうする)」のフローチャート**です。例えば、チェスのAIは「次の手」の可能性を樹形図(ツリー構造)のように広げ、勝てる確率が高いルートをしらみつぶしに計算(探索)していました。
  • 仕組み:人間が「ルール」と「知識」をすべてコードとして記述します。$$Input + Rule \rightarrow Output$$

機械学習(Machine Learning)

──「関数」を自動生成するプログラム

1990年代以降、コンピュータ科学のアプローチは「人間がルールを書く」ことから「データからルールを見つける」ことへ転換しました。これが機械学習です。

  • CS的視点:ここでのAIは、**「巨大な関数(数式)の近似」**です。入力データ($x$)と正解データ($y$)を大量に与え、$y = f(x)$ が成立するような関数 $f$ のパラメータを、統計確率を用いて自動的に調整(最適化)します。
  • 仕組み:人間は「学習の枠組み」を作り、AIはデータから「パラメータ(重み)」を調整します。$$Input + Output \rightarrow Rule$$

深層学習と生成AI(Deep Learning & Generative AI)

──「特徴」を捉え、「確率」で紡ぐプログラム

現在のAIブームの中心であるディープラーニングは、人間の脳神経回路を模した「ニューラルネットワーク」を多層に重ねたものです。neural network architecture diagramの画像

(C)Getty Images

CS的視点:これは**「高次元ベクトル空間での確率計算」です。言葉や画像を、数万〜数億次元の「数値の列(ベクトル)」に変換します。例えば「王様 – 男性 + 女性 = 女王」のように、意味を計算可能な数値として扱います。ChatGPTなどの大規模言語モデル(LLM)は、次にくる単語を「確率的に予測」しているに過ぎません。「思考」しているのではなく、これまで学習した膨大なテキストデータの中で、「この文脈では、統計的にこの単語が来る確率が最も高い」**という計算を高速に行っているのです。


実用・活用の観点への落とし込み

コンピュータ科学的にAIを「確率を計算する関数」だと理解すると、実務での付き合い方が明確になります。

1. 「ブラックボックス」を許容し、モジュールとして扱う

従来のシステム開発では、なぜその答えが出たかという「ロジックの透明性」が絶対でした。しかし、深層学習以降のAIは、計算過程が複雑すぎて人間には追えません(ブラックボックス)。

実用への指針: 中身の数式を理解しようとするのではなく、**「入力を入れたら、一定の精度で出力が返ってくるAPI(部品)」**として割り切ってシステムに組み込む設計思想が重要です。「n8n」などのツールでつなぐ際も、AIを一つの「高機能な処理ブロック」として扱います。

2. 「プロンプト」とは「関数の引数」である

私たちが普段入力しているプロンプト(指示文)は、CS的に見れば、AIという巨大な関数に入力する**「引数(パラメータ)」です。

実用への指針: 曖昧な指示(引数)からは、曖昧な結果(戻り値)しか返ってきません。「役割を与える」「制約条件をつける」「出力形式を指定する」といったプロンプトエンジニアリングは、「関数がエラーを起こさず、期待通りの値を返すようにパラメータを調整するコーディング作業」**と同じです。

3. 「確率的な誤り(ハルシネーション)」を前提にする

生成AIは「事実」を検索しているのではなく、「それらしい並び」を確率計算しています。したがって、嘘をつく(計算結果が事実と異なる)ことはバグではなく仕様です。

実用への指針: 「100%の正解」が求められる業務(金融決済の計算など)には直接使わず、「0から1を生み出す(アイデア出し)」や「下書きを作る(要約・翻訳)」といった、人間が最終確認・修正を行うプロセスに組み込むのが鉄則です。

結論:エンジニアリングの対象としてのAI

コンピュータ科学の視点で見れば、AIは魔法の知能ではなく、**「大量のデータによってチューニングされた、確率的な情報処理エンジン」**です。

実用において重要なのは、AIに「心」を求めることではなく、その「計算機としての特性(得意な計算と苦手な計算)」を理解した上で、人間の業務フローという巨大なアルゴリズムの中に、適切な「サブルーチン(処理部品)」として組み込んでいく設計力なのです。