なぜAIはリンゴを数え間違える?画像解析の裏側を解説(後編)


クラウドソリューション開発部の内間木です。
最近は、雪が解けてきて風も暖かく春を感じられる季節となりました。

今回の記事は、前回の続き!「なぜAIはリンゴを数え間違える?画像解析の裏側を解説(後編)」になります。

前回の記事を読んでいただければ「生成AIによる画像解析の仕組み」はある程度、仕組みを理解できたと思います。
その知識を元に、今回の本題「なぜ生成AIは物のカウントが苦手なのか?」を理解していただき、どのような手法を使用すれば改善されるのかを説明していきます!

この記事を読むことで、

「なぜ生成AIは物のカウントを間違えるのか」

という裏側の仕組みを整理し、生成AIとより上手く付き合うためのヒントを掴むことができます。

・前回の振り返り

そもそも「生成AIは画像解析で物を数え間違える」という部分が課題となっていました。
しかし、生成AIは「一個ずつ指をさして数えているわけではない」ということを、前回お話ししました。
忘れている人もいるかもしれないので、「前回のまとめ」を貼っておきます。

前回のまとめ:AIは「数えて」いない?

  • 画像は「パッチ」にバラバラにされる:小さなタイル状にして処理している。
  • 「画像」と「言葉」は同じ住所にある:ベクトル空間で共通化して認識している。
  • 「数」は密度からの推測である:精密な計測ではなく、確率に基づいた「連想」に近い。

早速、なぜ生成AIがモノを数え間違えるのかを説明していきます!

1. 境界線による「分断」

前回のまとめで触れた通り、AIは画像を「パッチ(小さなタイル)」に刻んで処理します。ここが最大の落とし穴になります。

例えば、リンゴがパッチの境界線上にあったらどうなるでしょうか?

パッチ境界の課題

AIの視点では、パッチAに「リンゴの左半分」、パッチBに「リンゴ右半分」がある状態になります。

  • パターンA:「右も左もリンゴっぽいな。よし、2個や!」と重複して数えてしまう。
  • パターンB:「どっちも断片すぎて、リンゴと確信がもてない…よし、0個や!」と、どちらともリンゴと認識しなくなってしまう。

このように、画像をバラバラにして理解しようとする性質上、「境界をまたぐ物体」の同一性を保つのが非常に難しいのです。

2. 進化した技術「ViT(Vision Transformer)」の登場

「でも、最新のAIならそんなの克服してるでしょ?」と思った方、鋭いです!

Geminiなどの最新モデルは、ViT(Vision Transformer)という技術を採用しています。

これは、バラバラにしたパッチをただ見るだけでなく、「自己注意機構」という技術を使って、「隣のパッチに俺の続きがいないか?」とパッチ同士で情報を補完し合う仕組みです。
これにより、境界線による分断問題はかなり解消されました。

3. それでも立ちはだかる「課題」

技術が進歩しても、なぜGeminiはまだ数え間違えるのでしょうか?そこには「生成AIならでは」の理由があります。

① パッチの「またぎ」と再構成のズレ

ViTは自己注意機構によってパッチ間のつながりを理解しますが、それはあくまで「推測」です。
例えば、1つのリンゴが4つのパッチにまたがったとき、AIはそれぞれの断片を見て「これはリンゴの一部だ」と認識し、パズルのようにつなぎ合わせます。しかし、物体が密集していると、「Aというリンゴの右側」と「Bというリンゴの左側」を、1つのリンゴだと勘違いして結合してしまうことがあります。

② 「トークン化」による情報の抽象化

AIが画像を処理するとき、パッチの中の情報をそのまま見ているわけではありません。計算しやすいように「トークン(数値の列)」にギュッと圧縮します。
この圧縮の過程で、「1つのパッチの中にリンゴが2つある」という細かいディテールが、「赤い果実がある」という大まかな意味情報に変換されてしまうことがあります。
人間で言えば、「細部まで描かれた写真を見ている」のではなく、「ざっくりとしたメモ書きを読んでいる」状態に近いため、正確な個数を拾い上げるのが難しくなるのです。

③ 「もっともらしさ」を優先する

これが最大の理由かもしれません。Geminiは、本質的に「次にくるもっともらしい言葉を予想する」機械です。
画像を数えるときも、「1、2、3…」と数えているのではなく、画像の特徴から「これくらいの密度なら、答えは『5個』という言葉が妥当だろう」と統計的に推測しています。
つまり、論理的な「カウント」ではなく、視覚的な「直感」で答えているため、人間から見れば「なんでそんな間違いを?」と思うようなミスが生まれるのです。

4. どうすれば改善できる?

では、私たちはAIのカウントミスとどう向き合えばよいのでしょうか。開発現場や実務で使える具体的なアプローチを紹介します。

対策:プロンプトで「数え方」を指定する。
単に「リンゴは何個?」と聞くのではなく、思考のプロセスを指示します。

Chain of Thought (思考の連鎖):
単に「何個?」と聞くのではなく、推論のプロセスをステップバイステップで指示します。

一般的な指示例 ✖:「この画像に写っている、リンゴの数の合計を出してください。」
↓↓
CoT式の指示例 ◎:「まず、画像の中のリンゴを一つずつ検出し、それぞれの位置を説明した上で、最終的な合計を出してください。」

■検証してみた。

実際に、リンゴがたくさん映っている画像に対して、リンゴの数を一般的な聞き方と「CoT(思考の連鎖)」を用いた場合のカウント結果(10回試行)を比較してみました。

↓読み込ませる画像(正解:36個)↓

検証用画像

■検証結果

指示方法 10回の試行結果(個数) 平均値
🔹一般的な指示 30, 28, 30, 28, 32, 29, 28, 30, 36, 28 29.9個
🔸CoT式の指示 36, 36, 38, 37, 33, 35, 37, 31, 39, 35 35.7個

一般的な指示では平均が30個を下回り、少なめに見積もる傾向がありましたが、CoT(思考の連鎖)を用いることで、正解の36個に極めて近い平均35.7個という結果になりました!

位置を一つずつ確認させることで、AIが「適当な連想」ではなく「詳細な探索」を行うようになり、精度が劇的に向上することがわかります。皆さんも画像解析を行う際は、ぜひこの「数え方のコツ」を試してみてくださいね。


最後までお読みいただき、誠にありがとうございました。

エコモットでは、ともに未来の常識を創る仲間を募集しています。AIやIoTの力で社会を豊かにしたい。そんな志を持つ方は、ぜひ下記の採用ページを覗いてみてください!

募集要項をチェックする

クラウドソリューション開発部:内間木