ホワイトボードテスト:自分の学習にFAANG級の関門を適用する

Dev.to / 2026/4/19

💬 オピニオンIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • 著者は、動画の説明を口でなぞることは実際の数学的な導出ではなく「認識」にすぎず、前提が変わったり詳しい質問を受けたりすると崩れてしまうと主張している。
  • 彼らは自己評価のために「ホワイトボードテスト」を提案し、FAANGレベルの応用ML/AI面接の考え方を参考にして、圧力下で導出できない概念は理解したとはみなさない方針を示す。
  • テストは「空白の紙から開始」で、メモなし・動画なし・参照物なしの状態で、観察されながら記憶だけを頼りに導出を作らせる。
  • さらに、活性化関数、次元、損失、最適化手法の項などをランダムに変えることで、暗記した公式と、連鎖律のような内部化された原理を区別する。
  • 導出の途中に「なぜ?」のチェックポイントを複数設け、覚えた手順ではなく根本的な理由を説明できることを確認する。

YouTubeの説明を読み上げるのは導出ではありません。3Blue1Brownのバックプロパゲーションの動画を見て、その説明をそのまま口で言い返せるのは、認識のスキルです。何も突っ込まれなければ、理解に見えるようです。しかし、誰かが活性化関数を変えたり、「なぜこの項にマイナス符号があるの?」と聞いた瞬間、その認識は崩れ、導出は一度も起きていなかったことが露呈します——特定の動画に対するパターン照合をしていただけです。

ホワイトボードテストは、実務寄りのML/AI面接のトップ層が、両者の違いを見分けるために使っているものです。私はカリキュラムのすべての数学概念に対して、自分自身にも毎回このテストを行っています。ルールは6つ。例外はありません。ホワイトボードテストに通せない概念は、学生がどれほど自信を持っていても理解されていない、ということです。

このルールは、私のフレームワークの math-foundation.md ファイルにコード化されています:claude-code-agent-skills-framework の「Hard Verification Protocol (FAANG-level gate)」のところです。

Rule 1 — Blank-sheet start

テストは、学生がメモをすべて消すところから始まります。電話は伏せておくこと。動画は再生しないこと。カメラ、または共有画面には空のページを映します。視界内に参照資料は置きません。

その理由は、メモがある状態で起きる想起は、メモを読み上げたのと区別がつかないからです。数え上げられるのは、観察下にあり、かつ学生が自分で設定しなかった問題に対して、記憶から生成される導出だけです。

このルールがないと、「数学を理解した」というのは「私は一度、他人の数学の流れに従って、その時は正しそうに見えた」という意味になります。これは別の主張です。

Rule 2 — Randomized variation

面接官は、学生が見たことのない少なくとも1つの変種(variation)を導入します。異なる活性化(シグモイドの代わりにReLU)。異なる次元(1ではなく、3のバッチ)。異なる損失(交差エントロピーではなくヒンジ)。異なる最適化の項(Adamの第2モーメント)。

学生はその場で導出を適応させます。

これは「認識」と「理解」を分けるルールです。「シグモイドの導関数は sigmoid(x) * (1 - sigmoid(x)) だ」と暗記した学生は、それを読み上げられます。導出を理解している学生は、それをReLUに対して、tanhに対して、GeLUに対しても再導出できます——なぜなら基盤となるパターン(活性化に対する連鎖律)を内面化しているのは特定の式ではなく、それだからです。

変種(variation)は引っかけではありません。テストそのものです。

Rule 3 — Three "why" checkpoints

導出の最中に、3つのランダムなタイミングで、面接官が学生が暗記しているはずのない「なぜ(why)」の質問で割り込んできます:

  • 「なぜこの項にマイナス符号があるの?」
  • 「学習率が2倍になったら、この式はどうなる?」
  • 「なぜここでは元の行列ではなく転置(transpose)を使うの?」
  • 「このバイアス項を取り除いたら、何に簡約される?」
  • 「バッチサイズを無限大にした極限で、この項はどう見える?」

学生が第一原理(first principles)から答えられなければ、導出は失敗し、課題は完了しません。

これらの質問が重要な理由は、暗記できないからです。面接官は、敵対的なプール(adversarial pool)からその場でそれらを選びます。プリミティブから数学を導出した学生なら、30秒以内にどれでも答えられます。数学を暗記した学生は、どれも答えられません。

Rule 4 — Reverse-direction test

順方向の導出が着地した後、面接官は学生に途中の特定の行を説明するよう求めます:「なぜこの項が存在するの? それがないとモデルはどうなる?」

これは、通常の教え方の方向の逆です。通常は、学生が仮定から結論へ積み上げていきます。逆方向テストは、途中の一点を選び、それを学生に防衛させます——この項が何に寄与しているのか、取り除くと何が変わるのか、別の定式化ではどのように見えるのかを説明させるのです。

暗記された導出は、1つの方向に進むだけで、任意の地点で自己防衛できません。導出された導出はそれができます。なぜなら、すべての行が、その周辺文脈から学生が正当化できる帰結だからです。

Rule 5 — Numerical grounding

学生は実際の小さな数を代入します——入力として [0.5, -0.3] のようなもの、重みとして [[0.1, 0.2], [-0.1, 0.3]] のようなもの、ターゲットとして 1 を用意し、前向きと後向きのパス全体を手計算します。その結果は、解析的な導出と一致していなければなりません。

このルールは、特定の失敗パターンを捕まえます。つまり、記号的には正しく見える導出が、実際に実行すると崩れてしまうケースです。一つズレ(off-by-one)のエラー、転置の欠落、符号反転、次元の不一致——これらは記号の中に隠れていて、数値を代入したときにだけ表面化します。

数値による裏取り(numerical grounding)もまた、実装におけるユニットテストへと化けるテストケースです。手で数学を裏取りできた学生は、既知の答えテストを書いて、最初の実装バグを確実に捕まえられます。裏取りできていない学生は当て推量になります。

Rule 6 — Repeat with variation

中核となる概念(バックプロパゲーション、注意(attention)、勾配降下法(gradient descent)、特定の損失関数の数学)については、検証はカリキュラムの中で少なくとも3回行われ、毎回異なるアーキテクチャまたは問題になります。

一度通っただけでは習得ではありません。単一層のMLPでゲートを通過した学生は、その特定のケースに対する局所的な理解を示したにすぎません。習得は、同じ導出が、2層のReLUネットワークで発火し、次にトランスフォーマーのヘッドで発火し、次に畳み込み層で発火する——しかも毎回、根底にあるメカニズムを学び直すことなく——という形で示されます。

これは、Bransfordの転移テストを数学的導出に適用したマルチショット版です。足場(scaffolding)なしで新しい実例に対して発火したとき、概念は転移したと言えます。新しい実例のたびに、元の説明に戻って確認が必要になるなら、転移していません。

Why this resists Claude-Operator drift specifically

オペレーター作業における「vibe-coding」の失敗モードは、エージェントの出力を読まずに受け入れてしまうことです。学習の等価物は、導出せずに説明を受け入れてしまうことです。どちらも同じ症状を生みます——敵対的な問いかけで崩れてしまう見かけ上の能力です。

ホワイトボードテストは、まさにこのドリフトに耐えるよう設計されています。メモがないので、前のClaudeの会話へのスクロールバックができません。ランダム化された変種(variation)により、特定の出力の暗記ができません。「why」チェックポイントにより、標準的な説明へのパターン照合ができません。数値による裏取りにより、学生が実際に確認していない導出のビットを取り繕う(手を振る)ことができません。

ホワイトボードテストを通過した概念は、学生自身が、自分の手で、あらゆる欠落が露呈したであろう条件下で導出されたものです。概念を「理解された」と呼ぶための条件は、それです。

What failure looks like, and what to do

どのルールでも失敗は「判断」ではなく「データ」です。このテストは、キャリア上の結果という意味での合否ではありません——「降下(descent)が実際に着地したかどうか」という意味での合否です。ホワイトボードテストが失敗したと言うのは、学習がまだ着地していない、ということです。出典に戻りましょう——教科書の章、論文、カラパシー(Karpathy)の講義、3Blue1Brownの該当セクションです。そこを勉強して、48時間以内にテストを再実行してください。

失敗が許さないこと:面接官が学生に答えを教えることです。採点者が穴埋めしてくれた失敗した導出は、合格する導出になったのではありません。それは指示された資料の一部になっただけで、学生は来週また同じところで失敗します。

同じ概念で繰り返し失敗すること自体が、それが持つサインです。学生が勾配降下法の導出で3回失敗したなら、根本となる教材が吸収されていません——そして解決策は、同じ節をより強く読み直すことではなく、前提の連鎖をさらにさかのぼって修正することです。

重要なログ

すべてのホワイトボード検証は記録されます。日付、概念、初回で合格したのか、リトライが必要だったのか、どのバリエーションが提示されたのか、どの「なぜ?」質問が発火したのか。月日が経つにつれ、このログは、(一貫して合格する)どの概念が荷重を支えるのか(load-bearing)と、(複数回の試行が必要になる)どの概念が脆いのか(fragile)を示す地図になります。

脆い概念はより頻繁に再検証されます。荷重を支える概念は間隔をあけて扱います。このログこそが、次の再テストを偶然ではなく筋の通ったものにするのです。

1文で言うと「関門」

白紙の用紙でその概念を導出できないこと、準備していなかったバリエーションに適応できないこと、面接官が指し示すどの行も擁護できないこと、そして少量の入力群に対して数値的に裏付けられないこと——それらができなければ、YouTubeの説明がどれほど明確に刺さったとしても、あなたはその概念を理解していません。

それが関門です。自分自身に適用してください。通過する概念とは、フロンティアが変わり、頼りにしていた抽象化が漏れ始めても、なお適用し続けられる概念のことです。

Aman Bhandari。Claude Opusをコーチング・パートナーとして動かし、AIエンジニアリング研究ラボを運営。加えて、実際のスプリントの作業負荷に対して出荷するQAオートメーションの表面も担当。公開成果物:claude-code-agent-skills-framework および claude-code-mcp-qa-automationgithub.com/aman-bhandari