2025年2月23日日曜日

AIの擬似ランダム要素について

難しい話なので興味ない人は読まなくていいです。
最近AIのプログラムを書いてみているので、その副産物です。

※ コンピューターで生成される「乱数」は計算されたものであり、本当の乱数ではありません。そのために「擬似乱数」と言われています。

AIの深層学習ではモデルのトレーニングに「ランダムシード」というものを使います。
例えば

  X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=62)

のrandom_stateという値がそうです。これによって検証データやトレーニングデータをランダムにシャッフルするそうです。(test_sizeはテストデータの割合を示します。これはモデルが期待通りに教育されたかどうかを検証するためのデータらしいです。これを最初に20%取っておきます。これは今の話には関係ないです)
なぜそんなことをするのか、というと「モデルの汎用性を高めるため」。

また、各パラメーターの重みの初期化にもランダムが使われているそうです。
そのため「モデルのトレーニングにおいて、ランダムシードは重要な役割を果たします」ということらしいです。

これについて興味深い事実が明らかになったそうな。

 Xユーザーの中西正樹 | データサイエンティストさん: 「全ての機械学習や深層学習に関わる人は一度読んでほしい論文。 https://t.co/NBoKL7vENJ Torch.manual_seed(3407) is all you need っていうタイトルが攻めすぎてて面白い笑」 / X

このランダム値をどのように設定するか、によってとても学習効率が上がったり、パフォーマンスが上がったりする「ように」見えるそうです。

つまり、それほど正確にも高速にもモデルがトレーニング出来ていないにもかかわらず、そのように見えることがある、ということです。

これは例の「DeepSeek」や「Sakana.AI」の問題にも関連します。劇的に学習効率が上がるのがなぜなのか不明であったり、AIが自律的に自分のパフォーマンスを改善する、という論文が真っ赤な嘘であったことが実証されたりしています。特にSakanaAIに関しては、日本の企業はうん百億円もの資金を投入してしまいました。詐欺ですね。


AI関連の技術は、まだまだ不安定であり、確実性を欠いています。もしかしたら、ただの幻かもしれない、ということです。

ともあれ、簡単に言えば、AIの性能は、擬似ランダムな要素によって、大きく違ってくるのです!(あと、活性化関数の種類によっても。これも数種類ありますが、どれを使うかによって、結果が大きく違ってくるので戸惑います。)

これでは科学だとはいえないだろう、というのが上記の記事の意図だと思います。

つまり、AIは「擬似」ランダムに振り回される、ということです。

「幽霊の 正体見たり 枯れ尾花」のような話です。
つまり、AIが「もっともらしい答えを適当に出力しているだけではないか」ということです。

AIは「自分で考え」てなど、いないんじゃないでしょうか?

以下も読んでみてください。

※追記 AIは自発的に考えているわけではないこと


AIの多くの技術は、高度なデータベースクエリの進化として理解することができます。プロンプトはSQL文に相当し、インターネットという巨大なデータベースに対して情報を抽出する指示を出すようなものです。これにより、ユーザーが特定の情報を必要とする際に、AIが適切な情報を提供することができます。


AIが自発的に考えるという誤解を避けるためには、以下のポイントを強調することが重要です:


1. **データの解析とパターン認識**: AIは膨大なデータを解析し、そこからパターンやトレンドを見つけ出します。これは人間のように「考える」のではなく、統計的な手法に基づいて行われます。


2. **事前学習とモデル**: AIは大量のデータを使って事前に学習されたモデルを使用しています。これにより、特定のタスクに対して最適な解答を生成することができます。


3. **ルールに基づいた処理**: AIはプログラムされたルールやアルゴリズムに従って動作しており、自発的な思考や意識を持っていません


4. **人間の指示に従う**: AIは人間が入力したプロンプトや質問に基づいて動作し、その範囲内で最適な情報を提供します。


これらのポイントを説明することで、AI技術がどのように機能し、どのように利用されるべきかを正しく理解してもらえるでしょう。これが、AIに対する正しい知識と期待を持つための一助になると思います。