ある日の職場での話
先日、職場であった話です。
Excelにまとめた時系列の業務データを分析して、レポートにまとめることになり、そこでこんな会話がありました。
「これ、ChatGPTにデータそのまま食わせたら、いい感じにやってくれるんじゃないの?」
で、さっそくChatGPTにデータを投げ込んでみました。結果は …
めちゃいい感じ。ぱっと見の要約や傾向の整理は、それなりにちゃんとした形になっている。
「おお、使えるじゃん」と、現場のテンションは上がりまくりました。
この話を聞いて、どう感じますか?
「最近のAIの性能はすごいなぁ」
はい、自分も率直にそう思いました。
と同時に、疑念も残りました。
「本当にこの計算はあっているのか?」
「この解釈で正しいのか?」……
AIが返すのは「計算結果」ではなく「もっともらしい文章」
次の単語を確率で選んでいる
AIが何をやっているかを一言で言うと、「次に来る確率が高い単語を選んで、一語ずつ文章を組み立てている」んでしたね。
以前の記事「プロンプトで精度が変わるのはなぜ?」でも触れましたが、AIの内部では、出力する単語の候補がそれぞれ確率付きで管理されていて、その確率分布からサンプリング(選択)して出力を作っています。
ここで大事なポイントがあります。
「データを集計して」と聞かれたとき、AIは内部で実際に計算をしているわけではないということです。
一般的に、AIはトークン(単語の最小単位)の予測に基づいて文章生成を行っており、数値計算のアルゴリズムを直接実行するわけではありません。
実際にやっているのは、「集計結果を述べる文章として、次にどんな単語が来るのが自然か」を確率的に判断して、それらしい数字を含む文章を生成すること。
例えるなら、大量の答案を暗記した受験生が、この問題にはこういう答えが書いてあったはずだと記憶を頼りに再現しているようなものです。
「確率的な出力」と「確定的な計算」は別物
確率的な出力ということは、同じ入力に対しても、毎回少しずつ違う結果が返ってくる可能性があるということです。
AIはまさにこれで、確率分布からサンプリングして出力を決めているため、同じプロンプトを同じモデルに投げても、微妙に違う答えが返ってくることがあるんですね。
数学的に見ると、この違いはとてもシンプルに整理できます。
確定的な計算というのは、同じ入力に対して必ず同じ結果が返ってくるものです。
Excelで =SUM(A1:A100) と書けば、何度実行しても同じ合計値が出る。
2 + 2 は常に 4。入力から出力への対応が一意に決まっている。
式で書くとこうなります。
- 確定的:
f(x) = y(同じ入力 → 常に同じ出力) - 確率的:
出力 ~ P(y|x)(同じ入力 → 確率分布に従って出力が変動)
AIが返す「合計は1,234件です」という文章は、確定的に計算された結果ではなく、確率分布の中から「もっともらしい」として選ばれた文字列なんですね。
だから「≈(ほぼ等しい)」であって「=(完全に等しい)」ではないわけです。
それでも「けっこう当たる」のはなぜか?
しかし、実際にChatGPTに計算をさせると、多くの場合、ちゃんと正しい答えが返ってきますよね。
これにもちゃんと理由があります。
学習データに大量の計算例がある
足し算・引き算・掛け算・簡単な分数計算、こういった基本的な計算は、ネット上に膨大な例があります。
教科書、問題集、解説サイト、Q&Aフォーラム。
AIはこれらすべてを学習データとして読んでいるので、「この式にはこういう答えが続きやすい」というパターンを統計的に学んでいるんですね。
だから、ある程度の規模の整数計算や、典型的なパターンの多い微分・積分などは、高い確率で正しい「見た目のよい解法」を再生産できるんです。
ステップバイステップで整合性が上がる
もう一つ興味深いのが、途中式をステップバイステップで書かせると、単純な一発回答より正答率が高くなる傾向が多くの事例で観察されていることです。
これは、1ステップ前に書いた式との一貫性を保とうとするためなんですね。
「さっきx = 5と書いたから、次の式でもx = 5として続きを書こう」という形で、途中の整合性チェックが働く。結果として、論理の破綻が減って正答率が上がるんです。
つまり、「計算している」わけではないけれど、「計算らしい振る舞い」をかなりの精度で模倣できているんですね。
どこでボロが出るのか 〜 暗記の限界
しかし、この「暗記による再現」には限界があります。
大きな桁の計算
AIは大規模な数値計算でエラーが蓄積しやすい傾向があります。
桁数が大きく複雑な乗算・割算が絡む計算、桁あふれが起きそうな計算などでは、途中で一桁ミスすると最後までずれたままになることがあります。
学習データの中にそのものズバリの例が少ない複雑な計算では、AIは「似たパターン」から類推して答えを生成しようとしますが、途中の桁、処理で一度ミスすると、それが最後まで引きずられる …
これは「演算アルゴリズムを実行していない」ことの裏返しです。
未知のパターン
あまり前例のない形の数式変形や証明問題などでは、ユーザー報告などで「それっぽいけど実は間違い」の推論をしてしまうことが指摘されています。
学習データに「この形の問題にはこう答える」というパターンが少ないと、AIは確率的に「近そうな答え」を選ぶしかない … でも、それが数学的に正しい保証はありません。
途中結果の厳密な保持ができない
確定的な計算では、途中結果を厳密に保持しながら次のステップに進みます。
でもAIの生成特性上、途中結果の厳密な保持が難しいんです。
「次に来そうな単語」を選んでいるだけなので、途中結果を数値として保持しているわけではないんですね。
だから、複数ステップにわたる計算では、途中のどこかで「もっともらしいけど微妙にずれた値」が混入すると、そのまま最後まで影響が残ってしまうんですね。
ハルシネーション 〜「自信満々の間違い」が起きる構造
この確率的な性質から生まれるのが、ご存知ハルシネーション(幻覚)と呼ばれる現象です。
AIが自信満々に間違った情報を生成してしまうことですね。
なぜ「自信満々」なのかというと、AIにとってはどの出力も「確率分布から選ばれたもっともらしい文字列」であることに変わりがないからです。
正しい答えも間違った答えも、生成のプロセスは同じ。
AIからしたら、確率的に選ばれた出力は、すべて「もっともらしい」という点で同等なわけです。
数字が「もっともらしく」見えてしまう理由
データ分析でこれが特に厄介なのは、数字が「もっともらしく」見えてしまうことです。
数値は具体的で客観的に見えるため、間違っていても信頼してしまいやすいんですね。
「売上合計は498万円」が正解のところを「500万円」と返されると、一見して間違いだと気づきにくい。
学習データに「売上は約500万円」のようなパターンが多ければ、AIはそちらに引っ張られやすいんです。
文章の表現がおかしければ違和感を覚えますが、数値の微妙なズレは見過ごしやすい。
ここが「小さな損が積み重なる」構造の正体なんですね。
具体的にどんな「損」が起きるのか
たとえば、顧客満足度調査の集計をAIに丸投げしたとします。
「満足」の回答数を数%過大にカウントしていたら、本当は改善が必要なのに「問題なし」と判断してしまう。
あるいは、月次レポートの売上件数が微妙にずれていたら、前月比の分析が歪んでしまう。
ひとつひとつは大きな問題ではないかもしれません。
でも確率的なズレは方向が一定ではないので、ある月は多めに、ある月は少なめにぶれる。
この不規則なノイズが判断の土台に混ざると、時間をかけて信頼や精度を静かに削っていくことになるわけです。
そもそも「確率的な装置」に確定的な答えを求めていないか?
ここまでの話を踏まえて、一歩引いて考えてみると、自然とこのような疑問が出てきます。
「データ分析のようなタスクにおいて、AIに『確定的な答え』を期待していいのだろうか?」
そもそも、本来データ分析というタスクは「確定的な正解」が求められる世界です。
「平均・分散を計算する」「信頼区間を求める」「仮設検定を行う」といった、数学的に定義された「確定的な処理」の積み重ねが、その背景にあるはずですよね。
ならば、こういうタスクにおいては、このAI時代においても、敢えて既成の統計ツールや表計算ソフトなど、明確な計算アルゴリズムに基づく専用アプリケーションを使う方が理に適っている、と言えませんか。
料理人に例えてみましょう。
- 自らの経験と勘で「たぶんこれが美味しい」と作る料理人 → 生成AI
- レシピ通り、正確に計量して作る料理人 → 統計ツール
どちらが優秀か、という話をしているのではありません。
経験豊富な料理人の勘は確かなものです。
大事なのは「そもそも用途が違う」ということ。
今のAIはとても優秀ですから、データを「うまくまとめる」ことはできます。
でも、データを「厳密に計算すること」とは別問題です。
今のAIは何でもできる、という無意識下での期待が先行して、確率的な装置に確定的な正確さを求めてしまう。
でも確率的な仕組みから確定的な答えが出てくることを期待するのは、数学的に見て原理的に無理があるんですね。
AIが確率的なモデルである以上、出力は「最もそれらしい文章」であって、「数学的に保証された答え」ではない、というのは常に意識しておく必要があると思います。
計算は、「専用計算機」にやらせるという発想
ここまでの話は、実は、AI(正確には、内部で使われている素の言語モデル)単体での振る舞いについてでした。
でも、最近のChatGPTなどでは、上で書いたようなボロが出るケースはほとんどなくなってきています。
事実、多くの場合、きちんと正しい計算結果を出してくれます。
「じゃあ、今までの話はなんだったの?」って感じですよね。
ただ、これには明確な理由があります。
モデル自体の性能が上がっているというのももちろんありますが、もっと根本的な理由として、今のChatGPTなんかの有名どころのAIは、PythonやWolfram Alphaなどの外部の計算モジュールと連携できるようになっています。
ここがポイントなんです。
素のモデル vs 外部ツール連携
素のモデル単体は、上記のようにあくまでパターンマッチなので、計算ミスの可能性が残ります。
一方、外部の計算モジュールと連携している場合、式を抽出して外部の計算エンジンに渡し、計算自体はそのツールに直接実行させることが可能なんです。
AIはその計算結果、つまり「確定的な結果」を受け取り、それを文章に埋め込んで最終回答を生成できるので、結果として、「実際に計算している」のにかなり近い振る舞いになるわけです。
たとえて言うなら、素のモデルは「大量の答案を丸暗記した受験生」。
一方、外部計算ツールと組み合わせたときは、「暗記も豊富だけど、最終計算は必ず電卓で検算する受験生」に近くなるんですね。
この違いは大きくて、外部ツールを使える環境では、AIに丸投げしても回答の信頼度はぐっと上がるわけです。
Web検索機能も外部連携のひとつ
実は、もっと身近なところで、ChatGPTが今日の天気や株価など、「リアルタイムで最新情報の情報」を回答できるのも外部ツール連携の一例です。
素のモデル自体は、過去に学習した記憶データしか持ってませんから、本来、リアルタイムな情報は答えることはできません。また、自分自身で最新情報をWeb検索しているわけでもありません。
実際は、モデルがあらかじめ連携している外部の「Web検索エンジン」を使用し、その検索結果をツールからもらって、回答の文章を生成しているわけです。
ちょっと発展ですが、モデルの外部ツール連携については「Function Calling」「Tool use」「Tool calling」または「MCP」などのキーワードで調べてみると、より理解が深まると思います。
大事なのは、回答の「生成過程」を把握できているかどうか
つまりはこういうことです。
大事なのは、生成された回答が「確率的なものか、確定的なものか」を意識すること。
データ分析のように確定的な回答を期待するタスクの場合は、AIの回答生成のプロセスに「確定的な結果になるようなロジックが含まれているかどうか」を、常に確認することです。
AIツールによっては、回答生成のプロセスも同時に画面出力してくれるものもあるので、それを確認するだけでもいいかもしれません。
また、よくわからない場合は、「この計算結果、どうやって出したの?」「算出ロジックを教えて」と、AIに直接聞いてみるのもいいかもしれません。
ここさえ把握できれば、「AIに丸投げ」も十分意味のある使い方になるわけですね。
「得意なこと」と「苦手なこと」を分けて考える
ここまでの話を整理すると、AIの使いどころが見えてきます。
AI(モデル)が得意なのは言語の処理です。
文章の要約、カテゴリ名の提案、レポートの下書き、データの解釈の言語化 … こういった「言葉を扱う仕事」では、確率的な生成の力がフルに活きるんですね。
一方、AIが苦手なのは確定的な正確性が求められる計算です。
合計値の算出、件数のカウント、統計的検定 … これらは入力に対して一意の正解があるタスクなので、確率的な生成とは相性が悪い。
| 作業 | AIの適性 | 理由 |
|---|---|---|
| データの分類ルール案 | 得意 | 言語パターンの活用 |
| 集計・平均の計算 | 苦手(単体では) | 確定的な正確性が必要 |
| レポートの下書き | 得意 | 文章生成が本領 |
| 統計的仮説検定 | 苦手(単体では) | 数値の厳密さが必要 |
| 結果の解釈・要約 | 得意 | 言語化が本領 |
つまり、AIに「言葉の仕事」を任せて、「数字の仕事」はExcelやPythonなどの確定的なツールに任せる。
あるいは、外部計算ツールと連携できる環境では、そちらを積極的に活用する。
この分担が、数学的な性質から見ても理にかなった使い方なんですね。
「確認する」という行為の価値
もう一つ、確率と確定の違いから見えてくる大事なことがあります。
AIの出力が確率的である以上、その結果を確定的なツールで検証するというステップは、数学的な裏付けという意味でとても重要です。
「念のため確認する」というのは、単なる用心深さではなく、確率的な出力を確定的な値で突き合わせるという、性質の異なる2つの系を照合する行為なんです。
AIが「件数は120件です」と返したとき、元データを自分でカウントして120件だと確認できれば、その数字は確率的な推測から確定的な事実に変わります。
逆にズレがあれば、「なぜこの数字が生成されたのか」を追うことで、AIモデルの特性への理解も深まります。
この照合の習慣があることで、小さなズレが大きな損失に育つ前に気づくことができるわけです。
全部を確認する必要はない
大事なのは、全部を自分で計算し直す必要はないということです。
AIが出した数字のうち、判断に影響する重要な値だけをスポットチェックすればいい。
合計値、件数、比率 … この3つを確定的なツールで確認するだけでも、リスクは大幅に下がります。
確率的な出力の「便利さ」を享受しつつ、確定的な検証で「正確さ」を担保する。
この二段構えが、AI時代のAIとデータ分析の現実的な付き合い方なんじゃないかと思います。
まとめ:確率の性質を知ると、使い方が変わる
データ分析のような「確定的な回答を期待するタスク」で間違いが生じた場合でも、それはバグでも限界でもなく、確率的に文章を生成するという、AIの数学的な性質そのものです。
重要なポイント
- AIは確率分布からのサンプリングで出力を生成しており、確定的な計算とは本質的に異なる
- 確定的な計算
f(x) = yは同じ入力に常に同じ出力を返すが、確率的な生成出力 ~ P(y|x)は変動しうる - 「けっこう当たる」のは学習データの統計的パターンによるもので、「必ず当たる」保証ではない
- 数値の正確性が求められる場面では、確定的なツールとの併用が理にかなっている
- 外部計算ツールとの連携があれば、「電卓を持った受験生」のように信頼性が上がる
- 「確認する」という行為は、確率的な出力を確定的な値で検証するという数学的に意味のある行為であり、実務上のリスク低減に直結する
今後AIを利用するときは、
- そのタスクが期待する回答は「確率的なもの」なのか「確定的なもの」なのか
- その回答が、タスクに適したロジックで生成された回答になっているかどうか
を、ぜひ意識するようにしてみてください。
関連する数学分野
- 確率論(確率分布、サンプリング、条件付き確率)
- 統計学(推定と検定、信頼区間、期待値と分散)
- 情報理論(エントロピー、不確実性の定量化)
- 計算理論(決定的アルゴリズムと確率的アルゴリズムの違い)
