ニューロン1個ぶんの重みベクトル1本だけで日本語の文を組み立てます。学習データもプリセット選択肢もなし。温度スライダ(0=決定論, 既定0.7)でランダム性を調整でき、同じ入力でも実行のたびに違う文になります。初めての人は下の「説明」からどうぞ。
ニューロン1個ぶんの重み(1,674個の数値が並んだベクトル w 1本)だけで、日本語の文章を組み立てる実験ページです。ChatGPTのように大量のテキストから学習するのではなく、重みをあらかじめ設計(構成)しています。
「ニューロン1個を自己回帰的に呼び出すだけで複雑な処理ができる」——これが元論文(arXiv:2610.17283, Theorem 2)の主張で、このページはその精神を文章生成に移したものです。
文は 6つのスロット(背景 → 気分 → 行動 → 詳細 → 転回 → 締め)を順に埋めて作ります。各スロットに候補フレーズが10個あり、合計62個のフレーズが語彙です。
各候補にはエネルギー E = w・x を計算します。x は「基本スコア用の1 + 検出された話題の1hot」で、w は「フレーズごとの基本スコア領域」と「フレーズ×26話題のアフィニティ領域」を連結した1本のベクトルです。全スロットで同じ w を再利用します(スロットが役割を決める——論文の Sidon スケジューリングと同じ発想の簡易版)。
入力から辞書で話題(雨・晴・夜・星・月・音楽・珈琲・茶・本・散歩・道・街・風・朝・窓・手紙・仕事・笑い・嬉しい・疲れ・冬・夏・花・海・山、計26種)を検出します。見つかった話題と関連するフレーズはエネルギー +3.2 されるため、「雨」と書けば雨のフレーズが選ばれやすくなります。
話題が1つも見つからない場合は、全候補を基本スコアだけで比較します(このとき候補間の差は小さいので、ゆらぎが効いて多様な文になります)。
ChatGPTなどのLLMと同じ温度つきソフトマックス標本抽出を、ニューロンのエネルギーに対して行います。候補 c が選ばれる確率は exp(E[c]/T) / Σ exp(E/T) で、温度 T(スライダ)を上げるほど幅広い候補が選ばれます。乱数種に実行ごとのノンス(連番+時刻)を混ぜるので、同じ入力でも毎回別の文になります。
T=0 で完全な決定論(最もエネルギーの高い候補だけを毎回選ぶ)に戻ります。同一フレーズの再使用は −2.5 減点し、1回の出力内での重複を防いでいます。
ゆらぎをOFFにすると完全な決定論(同じ入力 → 必ず同じ文)で、学習なしの再現実験として使えます。
スロットごとに、採用されたフレーズと上位3候補のエネルギーを見られます。
注目ポイント: 話題の語を含む入力にすると、その話題の候補のスコアが (base + 3.2) に跳ね上がります。逆にスコア差が0.2〜0.5程度しかない箇所は、ゆらぎで入れ替わる「迷い」の部分です。
これは大規模言語モデルではありません。語彙は組み込み62フレーズ、文構造は6スロット固定なので、長文や複雑な文脈は作れません。それでも「1本の重みベクトル + 入力特徴量だけで、入力に反応して変わる文章」が作れる、というのがこのデモの主張です。
重みを回路から数学的に構成して任意計算を再現する本編(加算器・パリティなど)は プレイグラウンド で、学習による非対称性のデモは python3 run.py distill で見られます。