Up 「教師あり」とは? 作成: 2025-06-03
更新: 2025-06-03


    Transformer は,コンピュータが学習で言語をもつようになる仕組みである。
    最初は真っ白な大脳皮質に言語野が形成される,というイメージである。

    「真っ白な大脳皮質」は,学習前にランダムに初期設定されたトークンベクトル。
    それが,学習材テクストの入力から始まる自動処理の中で,更新される。
    厖大な数の学習材テクストを取っ替え引っ替え入力して,更新を繰り返す。
    そうすると,「言語脳」が出来上がる。


    コンピュータに言語を獲得させるこの「養育」は,注入主義ではない。
    しかしまったくの放任主義でもない。
    トークンベクトルの更新に,「教師」を用いる。
    ここに関しては,Transformer は「教師あり学習」ということになる。

    「言語モデル」をつくるときの「教師あり」は,つぎのように説明される:
      教師あり学習:「次の単語を当てなさい」
      たとえば、文:
        私は昨日、映画を見た。
      を学習に使うとき、モデルはこういう学習をします:
        入力 正解ラベル(教師信号)
        「私は」 「昨日」
        「私は 昨日」 「、」
        「私は 昨日 、」 「映画」
        「私は 昨日 、 映画」 「を」
          ‥‥‥

    わたしのような門外漢は,ここで躓いてしまう。
    学習材のテクスト入力は,こんな細切れをしているふうではないけど」,と。

    ここには,「野生の思考」の中で述べた「ことばの過剰」がある。
    門外漢は「ことばの過剰」を素直に受け取る。
    そして,わけがわからなくなる。


    入力テクストは,自動処理される。
    この自動処理の中に,「次の単語を当てなさい」ゲームは存在しない。
    「次の単語を当てなさい」は,自動処理アルゴリズム設計者の<つもり・思い入れ>である。

    自動処理では,「正解表」として,
     「トークンT(m) に トークンT(n) がつながる確率 true_mn」
    の行列が登場するだけである。

    この表は,学習前に作成され,固定値である。
    自動処理では,この行列はつぎのように出てくる:
       logits_i = ( W o_i^T )^T
       p_i = softmax( logits_i ) 
       loss_i = cross_entropy ( p_i, true_(ID_i) )
    これを,「次の単語を当てなさい」と称している。

    しかしわたしのような門外漢は,「次の単語を当てなさい」のことばからは,つぎのようなやりとりがあることを思ってしまうのである:
     「おめでとう,当たりです!」
     「間違いです,正解はこれですよ。」


    そもそも論として,o_i は,何かを表現しようとしていない。
    「教師あり」とは,つぎの立場を (確信犯的に) とることである:
      「o_i は表現しようとしている,
       そして間違って表現する」
    そして,o_i の出力が正しい表現に近づくように,「体の矯正」をする。

    この「体の矯正」は,つぎの自動処理である:
       間違い ( loss_i ) が小さくなる方向に,
       トークンベクトルと重み行列を更新する。


    用語:
    • 学習/成長」として更新される値の器 (「変数 place-holder」) は,「パラメータ」と総称される。
    • 所与 o_i からパラメータ更新までのプロセスを「(誤差)逆伝播」といい,これから転じて,テクストの入力から o_i の出力までのプロセスを「順伝播」という。