【第3弾】「似ている」をどうやって測るのか? 圃場の状態マップで理解する「コサイン類似度」

🧠 AI基礎知識
初級

「似ている」をどうやって測るのか? 圃場の状態マップで理解する「コサイン類似度」

農業者のためのAI教養講座|書籍『ChatGPTはどのように動いているのか?』を農業の言葉で読み解く 第3回

第2回で、AIは言葉を「数字の並び(ベクトル)」に変換していることを学びました。

トマトの作物カルテが[8.5, 4.5, 92, 3.0, 7.8]のように表せるのと同じように、「りんご」も「トラクター」も数字の並びで表現されている。

でも、ここでまた疑問が浮かびます。

「数字にしたのはいいけど、2つのベクトルが”似ているかどうか”って、どうやって測るの?」

答えは、「角度」です。

「角度? 方向?」と思うかもしれませんが、安心してください。今回の主役は圃場の状態マップです。

📢
特集「農業者のためのAI教養講座」全13回のご案内

この記事は、書籍『ChatGPTはどのように動いているのか?』を農業の言葉で読み解く 全13回連載の第3回 です。

← 第2回:AIは言葉をどうやって「数字」にしているのか?

⚠️
この記事を読む前に

第1回と第2回を先に読むと、今回の内容がスムーズに理解できます。
第1回のポイント:ChatGPTは「次に来そうな言葉を予測する装置」
第2回のポイント:言葉を「数字の並び(ベクトル)」に変換してから処理している

🌱

🗺️ ベクトルを「地図」に並べてみよう ── 意味の空間

第2回で、言葉を数字の並びに変えました。
では、その数字を使って地図を作ってみたらどうなるでしょう?
まずは農業の例で考えます。たとえば5つの品種を「甘さ」と「酸味」の2項目だけで評価して、地図上に置いてみると──

🗺️

品種の「意味マップ」── 甘さ × 酸味で配置

甘さ →
↑ 酸味


🍎 りんご


🍊 みかん


🍓 いちご


🍅 トマト


🚜 トラクター
似たもの同士は近くに、違うものは遠くに配置される。
果物どうしは固まり、「トラクター」だけ離れた場所に。

見た瞬間に分かりますよね。果物は右上あたりに固まり、トラクターだけ左下にぽつん。
これが「ベクトル空間」の発想です。

ベクトル(数字の並び)を座標として使い、品種を「地図」に配置する。すると、似たもの同士は近くに、違うものは遠くに自然と並びます。
ChatGPTも同じことをしています。「りんご」「みかん」「いちご」の言葉ベクトルは地図上で近い位置にあり、「トラクター」のベクトルは遠い位置にある。

💡
「空間」を農業で言うと?

ベクトル空間 = 品種や圃場を「特徴の数値」で配置した地図。
今回は甘さ×酸味の2項目(=2次元)で作りましたが、第2回で学んだように ChatGPT は数百〜数千項目(数千次元)で作っています。人間には見えない地図ですが、仕組みはまったく同じです。

🌱

📐 「近い」「遠い」を数字で測りたい ── コサイン類似度

地図を見れば「似ている」は一目瞭然。でも、AIは目で見て判断できません。
だから「2つのベクトルがどれくらい似ているか」を数字で測る方法が必要です。
それがコサイン類似度。
名前は難しそうですが、考え方はシンプルです:

2つの矢印(ベクトル)の「向きがどれくらい揃っているか」を測る。
ぴったり同じ向きなら 1、まったく無関係なら 0、正反対なら -1。

第2回の品種データで実際に測ってみましょう:

🍎 りんご ↔ 🍓 いちご

0.97
ほぼ同じ

🍎 りんご ↔ 🍊 みかん

0.91
とても近い

🍎 りんご ↔ 🍅 トマト

0.72
やや近い

🍎 りんご ↔ 🚜 トラクター

0.12
まったく違う

地図で「近い」と感じたペアほど、コサイン類似度の数値も高い。

AIはこの数値を使って、「この2つの言葉は似ている」「この文脈にはこの言葉が合う」と判断しています。

💡
コサイン類似度の一言まとめ

コサイン類似度 = 2つのベクトルの「向きの揃い具合」を 0〜1 で測るものさし。
1に近いほど「似ている」、0に近いほど「関係ない」。ChatGPTが「文脈に合う言葉」を選ぶときの判定基準のひとつです。

🌱

🤔 なぜ「距離」ではなく「角度」なのか? ── 大農家と小農家のたとえ

「似ているかどうかを測るなら、単純に距離(2点間の長さ)でいいのでは?」

いい疑問です。でも、距離だと困るケースがあります。

📏

距離で測ると…

2つの点が地図上でどれくらい離れているか

問題が起きる例:
A農家(小規模):出荷量 2t / 売上 80万円
B農家(大規模):出荷量 200t / 売上 8,000万円規模が100倍違うだけで距離は大きくなる。
でも「売上単価」はまったく同じ。

規模に振り回される ❌

🧭

角度(コサイン)で測ると…

2つの矢印がどれくらい同じ方向を向いているか

うまくいく例:
A農家(小規模):出荷量 2t / 売上 80万円
B農家(大規模):出荷量 200t / 売上 8,000万円数値の規模は100倍違うが向きは同じ。
コサイン類似度 = 1.0(完全一致)

本質を見抜ける ✅

農業でたとえると──

小規模の有機農家Aさんと、大規模法人のBさん。
出荷量も売上も100倍違いますが、「1トンあたりの売上単価」という経営のバランスはまったく同じ。

距離で測ると「まったく違う農家」と出ますが、角度で測ると「経営方針は同じ」と正しく判定できます。

AIの世界でも同じです。文章が長かったり短かったりすると、ベクトルの大きさは変わります。でもコサイン類似度は向きだけを見るので、文章の長さに振り回されない。

だから、ChatGPTの類似度計算にはコサイン類似度が使われるのです。

🌱


⚖️ 比較の前に「スケール」を揃える ── 正規化

もうひとつ、ベクトルを比較する前に大切な準備があります。正規化です。

たとえば、トマトの作物カルテにはこんな項目がありました:

  • 糖度:0〜15 くらいの範囲
  • 水分:0〜100% の範囲

このまま比較すると、水分の数値が大きいだけで「水分が一番重要な特徴だ」と引っ張られてしまうのです。
だから、比較する前にすべての項目を「同じ目盛り」に揃える。これが正規化です。
やり方はシンプル── 各項目を、その項目が取りうる最大値で割るだけ。

⚖️ 正規化の考え方 ── 「最大値で割る」だけ
糖度
8.5 ÷ 15※
= 0.57
酸度
4.5 ÷ 10※
= 0.45
水分
92 ÷ 100※
= 0.92
硬さ
3.0 ÷ 10※
= 0.30
赤色度
7.8 ÷ 10※
= 0.78
💡 どの項目も 0〜1 の範囲 に収まるので、公平に比較できるようになります。※最大値は仮での設定です。

この計算を通すと、作物カルテがどう変わるか見てみましょう:

⚖️

正規化:スケールを揃えて公平に比較する

😵 正規化前(生データ)

  • 糖度(0〜15) 8.5
  • 酸度(0〜10) 4.5
  • 水分(0〜100%) 92
  • 硬さ(0〜10) 3.0
  • 赤色度(0〜10) 7.8

水分「92」が突出して大きい → 比較時に水分の影響が支配的になってしまう

✅ 正規化後(すべて 0〜1 に変換)

  • 糖度 0.57
  • 酸度 0.45
  • 水分 0.92
  • 硬さ 0.30
  • 赤色度 0.78

すべて 0〜1 の同じスケールに → 各特徴が公平に比較される

変換後の数値を見ると、水分が「92 → 0.92」になっても一番高いのは変わらない。つまり正規化は「水分の重要性を消す」のではなく、「どの項目も公平に見たうえで、本当に大きい特徴は大きいまま残る」ようにする処理です。

農業の現場や日常生活の事例に置き換えると──

収穫量(トン単位)と糖度(Brix単位)をそのまま比べたら、収穫量の数値が大きいだけで「似ている」と出てしまう。
だから比較する前に、すべての項目を同じ目盛りに揃える(正規化する)。

やっていることは、テストの点数を「100点満点に換算し直す」のと同じ。
英語が200点満点で、数学が50点満点だったら、そのまま足したら英語の点数が支配してしまう。
全教科を100点満点に揃えてから比べる── それが正規化です。

ChatGPTの中でも、ベクトルの各数値がバラバラなスケールだと比較が偏るため、正規化して「どの特徴も公平に扱える状態」にしてからコサイン類似度を計算しています。

💡
「正規化」を農業で言うと?

正規化 = 異なる単位の測定値を、同じ目盛り(0〜1)に揃えること。
糖度(0〜15)と水分(0〜100%)のように範囲が違う項目を、それぞれの最大値で割って同じスケールにする。そうすれば、数値が大きい項目だけに引っ張られず、すべての特徴を公平に比較できる。AIもまったく同じ前処理をしています。

🌱

🔧 ChatGPTの中で何が起きているか ── 3ステップで理解する

ここまでの話を整理すると、ChatGPTが「似た言葉」を見つけるまでの流れはこうなります:

STEP 1
ベクトル化
言葉→数字の並び

→

STEP 2
正規化
スケールを揃える

→

STEP 3
コサイン類似度
向きで「似ている」を判定

農業の言葉で流れを追うと:

1

作物カルテを作る(ベクトル化)

言葉を「糖度・酸味・水分…」のような数値の並びに変換

2

目盛りを揃える(正規化)

単位がバラバラだと比較が偏るので、同じスケールに変換

3

カルテの「向き」を比べる(コサイン類似度)

数値パターンが同じ方向を向いていれば「似ている」

この3ステップで、ChatGPTは「この質問に一番近い情報はどれか」「次に来そうな言葉はどれか」を判断しています。

第1回で「次の言葉を予測する装置」と学びました。その予測の裏では──

第2回
ベクトル化
言葉→数字の並び

→

第3回(今回)
類似度を測る
ベクトルの近さを比較

→

第1回
次の言葉を出す
一番近い候補を予測

第1〜3回で、ChatGPTの土台がひととおり見えました。

🌱

💡 「似ている」の測り方を知ると、AI検索の仕組みが見える

📌
第3回の結論

AIは言葉をベクトルにした後、「向きの揃い具合(コサイン類似度)」で似ているかどうかを測っています。
これは、圃場の土壌データを地図に置いて「パターンが近い圃場同士」を見つけるのとまったく同じ発想です。
「距離」ではなく「角度(向き)」で測ることで、規模の違いに惑わされず、本質的な類似性を判定できます。

この知識があると、AIの使い方が変わります:

  1. 「AI検索」の仕組みが分かる

    Google検索は「キーワードが含まれるか」で探す。AI検索は「質問と答えのベクトルが近いか(コサイン類似度が高いか)」で探す。だからキーワードが一致しなくても関連情報が見つかる

  2. 「言い換え」に強い理由が分かる

    「葉が黄色くなった」と「葉が変色した」はキーワードが違うが、ベクトルが近い。だからAIは同じ意味だと判断できる

  3. 質問の書き方が変わる

    AIはベクトルの「向き」を見ている。だから文脈や状況を詳しく書くほど、ベクトルの向きが正確になり、的確な回答が返る

🌱

まとめ

  • ベクトルを座標として地図に置くと、似たもの同士が近くに配置される。これが「ベクトル空間」
  • 「似ている」を数字で測る方法がコサイン類似度。ベクトルの「向きの揃い具合」で判定する
  • 「距離」ではなく「角度(向き)」で測ることで、規模の違いに惑わされず本質的な類似性が分かる
  • 比較の前に正規化(スケール揃え)をすることで、大きな数値に引っ張られない公平な比較ができる
  • ChatGPTは「ベクトル化 → 正規化 → コサイン類似度」の流れで、言葉の「似ている度合い」を判定している
🌱

✅ 5分アクション ── 「類似度」を自分の手で体感しよう

✅ 今日の5分アクション:コサイン類似度を体感してみよう

  1. ChatGPT(無料版でOK)を開く
  2. 以下のプロンプトをコピーして貼り付ける
  3. AIが返す「類似度スコア」を見て、「似ている=ベクトルの向きが近い」を実感する

📋 圃場の類似度マップ体験 ── コピーしてそのまま使えます

以下の4つの圃場の土壌データがあります。

圃場A:pH 6.2 / EC 0.8 / 窒素 12 / リン酸 15 / カリウム 18
圃場B:pH 6.0 / EC 0.9 / 窒素 14 / リン酸 16 / カリウム 20
圃場C:pH 4.5 / EC 2.1 / 窒素 35 / リン酸 8 / カリウム 10
圃場D:pH 7.8 / EC 0.3 / 窒素 5 / リン酸 30 / カリウム 25

それぞれのペア(A-B、A-C、A-D、B-C、B-D、C-D)について、
コサイン類似度を計算してください。
その後、「最も管理方針が似ている圃場ペア」と
「最も異なる圃場ペア」を教えてください。

📋 言葉の類似度マップ体験 ── コピーしてそのまま使えます

あなたはAIの仕組みを教える先生です。

以下の6つの言葉について、
「食べ物」「農作業」「機械」「甘さ」「季節感」の5軸で
-1.0〜1.0のスコアを付けてください。

①トマト ②いちご ③田植え ④コンバイン ⑤ぶどう ⑥稲刈り

表形式で出してください。
そのあと、全ペアのコサイン類似度を計算して、
「最も意味が近いペア」と「最も遠いペア」を発表してください。

最後に、この6つの言葉を2次元の散布図に配置するなら
どういう配置になるか、テキストで図を描いてください。

🤔
やってみて気づくこと

圃場A-Bは数値パターンが似ているので類似度が高く出るはず。「数値が近い=コサインが近い=管理方針が似ている」という感覚が掴めるはずです。AIもこれを言葉の世界でやっています。

🌱

📖 次回予告

第4回:複数のデータを一気に扱う仕組み ── 観測データの一括変換で理解する「行列」

ここまでは「1つの品種」「1つの言葉」のベクトルを比較してきました。でも ChatGPT は一度に何千もの言葉を同時に処理しています。その「大量一括処理」を可能にしているのが行列。気温・湿度・日射・土壌水分の4項目を「高温ストレス」「乾燥リスク」の2指標に一気に変換する──そんな農業の例で理解します。

🌱

📚 参考文献

🌱

💬読者の声をお聞かせください

この記事に関するご質問・ご感想をお待ちしています。




最後までお読みいただきありがとうございます。
農業AI通信では、農家さんの「困った」を解決するAI活用情報を発信しています。

※ この記事はAIツール(ChatGPT・Claude等)を活用して作成し、編集部が内容を確認・編集しています。正確性には十分配慮していますが、最新情報は公式サイト等でご確認ください。

この記事は農家の皆さんのAI活用を応援するために作成しました。
ご質問やご感想があれば、ぜひお寄せください。

© 2026 農業AI通信 / Metagri研究所

日報を書く時間、AIに返しませんか。
農業関係者100人に「AIの使い道」を聞いたら、1位は栽培でも収穫でもなく「記録・文書・事務作業」(48人)でした。栽培管理・現場判断は12人。そこで作ったのが『AI日報スターターキット』です。しゃべるだけで日報が終わるコピペ用プロンプト3本+記録がたまるスプレッドシート雛形+100人調査ダイジェスト(全7ページ)を、メール登録で無料でお届けします。
📩 登録後すぐに届きます/新しいAIが出るたび農家目線の検証を週3〜5回配信・解除はいつでも1クリック
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人