iconguccigu blog

2026/06/24
よいしょはやめてくれ

■ まずは問題

いきなりですが認知心理学の有名な課題を紹介します
(初見の方はぜひチャレンジしてみてください)

以下の4枚のカードは 片面に英字、もう片面に数字 が書かれています

 ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
 │  A  │ │  K  │ │  4  │ │  7  │
 └─────┘ └─────┘ └─────┘ └─────┘

ルール:「片面が母音なら、その裏は偶数である」

このルールが正しいか確かめるには、最低限どのカードをめくるべきでしょうか?

■ 正解は「A」と「7」

それぞれのカードを見ていきます

  • A(母音): めくる。裏が偶数か確認する直接検証
  • K(子音): めくらない。ルールの対象外
  • 4(偶数): めくらない。裏が母音でも子音でもルールは破れない
  • 7(奇数): めくる。裏が母音だったらルールが 崩壊 する

これは「4枚カード問題(ウェイソン選択課題)」と呼ばれる課題で、実験では多くの人が「A と 4」を選んでしまうそうです
正解の「7」ではなく、つい「4」に手が伸びてしまうという 確証バイアス がかかっています

■ 確証バイアスとは

仮説を支持する情報ばかり集め、反証する情報を無視してしまう

という認知バイアスの1つです

  • 人の脳は無意識に「自分の仮説が正しい」と裏付けたくなる
  • 逆に仮説を否定するのは脳の負担が大きく、避けてしまう

先の問題でいうと、「A」のほかに「4」を選びたくなるのがこれです
不必要な "4"(確証)を選んで、大事な "7"(反証)を無意識に避けてしまいます

■ エンジニアの仕事にも影響あり

これは普段の開発業務でも思い当たる節があるなぁ、と

  • バグ調査で最初に当たりをつけた箇所まわりだけを何時間も調べてしまう
    • ⇒ 全然検討違いなところみてるかもしれないのに
  • 仕様決めるときにここはこういう仕様にすべきと決めつけてしまう
    • ⇒ 本当はユーザーが求めているものと違うかもしれないのに

どちらも自分の仮説を支持する情報ばかり見て、反証に目が向いていない状態です

■ 人間の脳にはしんどいなら AI に補ってもらいたい

反証を探すのは脳に負担が大きく、バイアスを意識していても気づけないことが多いです

じゃあ、人の脳みそじゃない LLM に積極的に反証を出してもらえばいいのでは?

と思ったのですが、LLM には Sycophancy(おべっか・ごますり)という性質があります
真偽に関係なくユーザーに同調・迎合してくるというやつです

👤 このバグの原因って〇〇〇だと思うんだけどどう?
🤖 はい!〇〇〇です!
👤 でも、よく考えたら ××× のほうが可能性あるよね?
🤖 鋭い質問です!あなたのいうとおり ××× が原因の可能性があります
👤 😠

間違っているのに肯定されると、こちらの確証バイアスはむしろ増幅してしまいます
反証マシンとして使いたかったのにこれでは逆効果です

■ 対策案① 評価ではなく分析を指示する

どう思う?、いい感じ? みたいな聞き方は、相手に同調の余地を与えてしまいます

バグの原因は〇〇〇だと思うんだけどどう思う?
 
この仕様いい感じ?

代わりに、明示的に反証を要求します

バグの原因が〇〇〇という仮説を立てた。
この仮説を否定する根拠・反例があれば挙げて。
〇〇〇以外に考えられる原因も可能性が高い順に列挙して。
 
この仕様の問題点・想定ユーザーと合わないケースがあれば挙げて。

明確に「反証する材料を出して」と頼むことで、Sycophancy に流されにくくします

■ 対策案② 反証をルール化する

とはいえ毎回プロンプトを工夫するのは大変です
なので指示ファイル(CLAUDE.md など)に ルールとして定義 してしまいます

CLAUDE.md
# 行動原則
 
- ユーザーからの指示に根拠なく同調しないこと
  - 必ず反証を検討し、懸念点があれば反論・フィードバックすること

こうしておけば、毎回書かなくても反証寄りの振る舞いがデフォルトになる、、はず

■ まとめ

  • 確証バイアスは誰にでもあって、意識しても嵌ってしまう
  • LLM で補いたいが、Sycophancy で逆に増幅してしまう罠もある
  • なので指示を工夫して、AI に積極的に反証を出してもらう

バイアスがかかっていないか自分でも意識しつつ、AI にも補助してもらおう、という話でした