cocolog:95762049
「パーコレーション・ノイズ: L1正則化によるスパース化と Dropout ならぬ Drop-in を組み合わせる実験」を行った。 (JRF 4609)
JRF 2025年12月12日 (金)
……。
……。
実験その1。今回の成果物は↓。
《humanoid_nested_attention_dt_9_3.ipynb - Colab》
https://colab.research.google.com/drive/1MzuiKJJPVk7P9L_XPDCqW8EfM8su9S-U
《humanoid_nested_attention_dt_9_4.ipynb - Colab》
https://colab.research.google.com/drive/1VU3jFlc0JbKw2xHSYBlflLBUOM1vdYX0
詳しい説明は 9_4 にだけ書いてある。
JRF2025/12/126520
……。
概要。
DecisionTransformer 系のモデルを使って二足歩行の模倣学習を行う実験で、L1正則化によるスパース化を試みる。その際、Dropout ならぬ Drop-in を使い、パーコレーション的な現象が起きて、L1正則化がやりやすくなると考えた。が、それは実証できず、実験は概ね失敗した。
JRF2025/12/127261
……。
この実験までの経緯。
先に「「多層目的=アテンション」を確かめる二足歩行の実験」という一連の実験を行った。DecisionTransformer 系のモデルを使って二足歩行の模倣学習を行う実験である。
その最後には、歩行と走行のデータセットを混合したデータセットで学習した「元のモデル」を固定して、LoRA を適用し、その LoRA に走行のみのデータセットを学習させて、混合した「元のモデル」から走行のモデルを「復元」できるかを試した。概ねその実験は成功した。
JRF2025/12/126693
その際、LoRA の訓練に L1正則化も同時に行うことも試してみた。スパース化を狙ったのである。私には RLRMDiffusion ([cocolog:95459644](2025年5月))というブレーンストーミングから得た構想がある。RLRMDiffusion とは Reinforcement Learning Result Model Diffusion の略で、強化学習の戦略記述を「コマンド」として強化学習で得たモデルを生成することを考えていた。
JRF2025/12/120589
その RLRMDiffusion では、モデルそのものの生成は大き過ぎるので LoRA の生成でできないかと考え、さらに、スパース化により情報を「圧縮」して、生成の負担が減らせるならさらに良い…と考えていた。そのためスパース化に関心があったのだ。
しかし、スパース化はまったくうまくいかなかった。スパース化に関しては実験は失敗だった。「走行」だとスパース化を試みただけで復元がなくなり、より簡単な問題である「起立」の場合、性能を維持したままのスパース化は、スパース度 1%未満でしか実現しなかった。
JRF2025/12/128117
そこで、スパース化がどうすればうまくいくのかを考えた。私が立てた仮説は、Dropout が L1正則化と衝突しているというものである。なぜなら、Dropout は汎化を目的とするため、冗長な構造を作ろうとするのだが、それが、L1正則化の構造を簡単にしようとする目的とかちあうからである。また、L1正則化はできるだけ重みをゼロにするのだが Dropout はところどころをゼロにすることで成り立つ。しかしすでにゼロのところをゼロにしたところで意味がないのだ。
JRF2025/12/128707
この辺りの Gemini さんの説明はこうである。
> この衝突は、それぞれのメカニズムの根本的な作用に起因する。
>
> 1. L1正則化の作用(剪定): L1正則化は、重み W の絶対値に対するペナルティを通じて、学習中に重みをゼロに押し付ける勾配(ゼロ化勾配)を発生させ、モデルをシンプルにしようとする。
JRF2025/12/120374
>
> 2. Dropoutの作用(増幅と共適応): Dropout は汎化を目的とする。この際、学習時にニューロンをランダムに無効化することで、残りの「生きている」ニューロンの重みが、無効化された分の補償として増幅される(1/(1−p) スケーリング効果、またはその必要性)。これにより、ネットワークは Dropout の無効化に耐えるために、結果的により大きな重み(ゼロから遠ざかった重み)を保持するように学習してしまう。
JRF2025/12/126386
>
> このため、L1 正則化の「ゼロ化勾配」は、Dropout の「重みを大きく保とうとする作用」によって効果的に打ち消されてしまう。
JRF2025/12/121473
もう一点考えたのが、LoRA のスパース化の前に、「元のモデル」をスパース化しておいたほうが、LoRA のスパース化もうまくいくだろうということである。「元のモデル」が冗長な構造を持っていると、その冗長な部分に対応するため LoRA も冗長にならざるを得ないだろうからだ。
そこで、まずは「元のモデル」について Dropout を停止してスパース化すればいいのではないか…と考えた。L1正則化のためにはエポック数など時間がかかることになるが、それは今回は許容しようと思った。
JRF2025/12/122495
……。
アイデア。
そう考えたところで、一つのアイデアがひらめいた。待てよ、Dropout というのは途中効果をゼロにして配線をぶった切るものだった。しかし、L1正則化の「探索」で必要なのは、むしろ、あっちとこっちをつなげるような Drop-in と呼ぶべきものではないか? それがうまくいくとすれば、パーコレーション(浸透)の相転移に似ているかもしれない。 …と。
JRF2025/12/123313
パーコレーションを目指すのだが、それなら、イジング模型のように、周りを見てそれで変化する場所を変えるとか、ノイズの分散を変えるとかする方向もあるように思うが、しかし、シンプルなノイズで十分なのではないか。なぜなら、Drop-in で接続されたことによる勾配の変化が、L1正則化の局面で、探索的効果・相互作用的効果を持ちうるから。イジング模型的な方向は、今回の実験が失敗してから模索すればいいだろう。
JRF2025/12/127104
通常の Dropout は非training時は機能をオフにするものだ。しかし、それは Drop-in では違うのだろう。パーコレーションや相転移は、温度が高いほうが起きたりする。だから、ノイズがある状況のほうが「通ずる」ことがありうるように思う。だから、eval時(非training時)も、Drop-in は機能させたほうがいいのだろう。…
こう考えて Gemini さんに組んでもらっていったのが今回のプログラム・実験になる。
JRF2025/12/128100
……。
実験。
実験はだいたい次のような順序で行った。
JRF2025/12/128811
実験はだいたい次のような順序で行った。
* Dropout のまま L1正則化がどこまで通用するか見てみる。
* L1正則化をいきなりはじめずエポック5まで「ウォームアップ」して動作が発現するのを待ってから、L1正則化を試す。
* Drop-in で、L1正則化なしで Dropout と同様の動作ができるようになるかを試す。
* Drop-in で L1正則化を試す。
* Drop-in でウォームアップしてから L1正則化を試す。Gemini さんの研究計画により、L1正則化度合いを変化させて追加学習していき、それを Dropout のものと比較する。
JRF2025/12/122676
今回の IPYNB はこの最後の実験を試したもののみ公開している。
さて順を追ってどういう結果になったか書いていこう。
JRF2025/12/128961
### Dropout のまま L1正則化がどこまで通用するか
L1正則化を行うと、歩行(simple walk) も 走行(expert run) も 起立 (standup) も、ごく小さな L1_REG_LAMBDA でもエポック数1では崩壊した。しかもスパース率は 0.05% とほとんど起きなかった。エポック5まで行うことで、スパース率は 0.09% となり、expert run は回復し、standup は若干回復した。大きな L1_REG_LAMBDA にしても、スパース度は 0.20% にまでしか増えなかった。
JRF2025/12/120346
### Dropout のままウォームアップしてからL1正則化を試す
Dropout のままエポック5まで学習させ、その後1エポック L1正則化を試した。すると simple walk と standup は崩壊してしまった。expert run は持ちこたえた。ここで、追加学習のみ Dropout を切ってみた。しかし、これも、改善はなく、同様の結果になった。
JRF2025/12/126781
### Drop-in で最初から学習
Drop-in はソースの SimpleDropInNoise を最初作ってもらった。これは P_NOISE で指定された多さの部分(Dropout の DROP_P に相当)に、正規分布ノイズ(NOISE_STD の標準偏差を持つもの)を足すというものである。
しかし、これで実験すると standup が如実に崩壊するのだった。エポック数を増やしてもうまくいかない。スケーリングの問題かもしれないという Gemini さんの意見に従って、ScaledDropInNoise で試してもほぼ改善がない。
JRF2025/12/120742
試しに、Dropout になる部分を完全に切って最初からの学習もやってみると、エポック1では standup が失敗になる。Dropout ありだとエポック 1 でも成功するのに。どうも Dropout が決定的な役割をしているようだ。
JRF2025/12/124097
普通に考えれば、Drop-in は Dropout と同様の汎化性能が出ておかしくないはずである。汎化のためのノイズが弱いのか…と、NOISE_STD をかなり大きくしてみてもあまり変わりはない。
JRF2025/12/121579
そこで、理由は詳しくわからないが、Drop-in では、本来の重みと相関が残っていることが、むしろ汎化に悪影響があると考えて、その相関がないようなノイズを注入することにしてみた。つまり、Dropout で開いた穴(ゼロ)に正規分布ノイズを足したのである。パーコレーションで必要なのは、スパース化でゼロになったところでの摂動のみだろうから、その変更は許容できると私は考えたのである。そうやってできたのが PercNoise (パーコレーション・ノイズ)である。
JRF2025/12/125257
これにより、Dropout よりは真に難しい問題になった分当然だが、学習に時間がかかるようになったものの、エポック数をかければ、standup も発現するようになった。
JRF2025/12/123930
### Drop-in で L1正則化を試す
最初からの学習で PercNoise を使って L1正則化を試してみた。しかし、これがぜんぜんである。少しは良くなるかと期待していたが、ダメだった。simple walk も expert run も standup もエポック1では崩壊した。L1_REG_LAMBDA = 0.5 という大きな値でも、スパース率はわずか 0.05%だった。
JRF2025/12/124759
### Drop-in でウォームアップしてから L1正則化を試す
ウォームアップに NOISE_STD をどれぐらいにするかを迷った。汎化を重視するなら大きな値が良いが、探索には大き過ぎるとノイズ性が強過ぎ意味がなくなるだろう。ところで Gemini さんに言われて気付いたのだが、今回の実装だと、ウォームアップ時とL1正則化時で NOISE_STD の値を変えることができる。そこでウォームアップ時は汎化を重視し、NOISE_STD = 0.5 にし、L1正則化時は「温度」を若干下げ NOISE_STD = 0.1 で試すことにした。
JRF2025/12/129317
ウォームアップ時の NOISE_STD は 0.01, 0.1, 0.5, 1.0 をそれぞれエポック数1で試した中で、最も優秀なのが 0.5 だったからそれを選んだ。しかし、バラツキを見ると、それが良かったのは偶然の要素が強かったかもしれない…と後から振り返って思う。
エポック数5 のウォームアップ後、simple walk も expert run も standup も発現しているのを確認したのち、L1正則化の実験に入った。
JRF2025/12/121122
エポック5の次のエポック6から追加学習をはじめる。まず L1_REG_LAMBDA = 0.5 という大きな値で、スパース化が起きるか、崩壊は起きないかを見た。結果、エポック6では、Dropout のものより、standup が少しマシになったかな…という程度。ただ、エポック7 になるとそれは崩壊してしまった。Dropout だと崩壊しなかったのに。一方スパース化はごくわずかだった。Dropout を使った場合よりスパース率は少ない。いずれにしろ小さ過ぎるので比較に意味はないかもしれない。
JRF2025/12/121683
その後、Gemini さんの指示にしたがって、L1_REG_LAMBDA = 0.05 に変更してエポック 8, 9, 10 と追加学習してみた。すると、驚くべきことに simple walk も standup も(expert run はもちろん)完全回復した! しかし、Dropout のほうも同じようにしてみると完全回復したのだった。しかも Dropout のほうはスパース率が 0.15% までいった。PercNoise のほうは、0.06% なのに。
JRF2025/12/121734
どうも、L1正則化は、一般に、一度大きな値にして Imitation を犠牲にして「枝刈り」したあとで、今度は小さな値にして Imitation を回復させるのが戦略として良いらしい。
JRF2025/12/124297
さらにその後、Gemini さんの指示にしたがって、L1_REG_LAMBDA = 0.1 に変更してエポック 11,12,13 と追加学習しスパース化が進むか見てみた。しかし、スパース化は進まず逆にわずかに後退してしまった。崩壊こそ起きなかったのが救いである。Dropout のほうも、スパース化は後退してしまった。
JRF2025/12/124105
最後に、Gemini さんの指示にしたがって、L1_REG_LAMBDA = 0.2 に変更してエポック 14, 15 と L1_REG_LAMBDA = 1.0 にしてエポック 16 とスパース化だけを目的にしてやってみたが、スパース化は 0.09% どまり。まったく起きなかった。エポック16 ではすべてのタスクが小崩壊していた。(エポック 14-16 は Dropout のほうではやっていない。)
JRF2025/12/125808
ちなみに、全体を通じて、これだけスパース率が低いと、eval時に Drop-in をオンにしているかどうかはあまり関係ない感じだった。少しよかったり悪かったりした。
JRF2025/12/121248
……。
結論。
どうも、ちょっと残念な結果に終わったようだ。この「失敗」は認めざるを得ない。PercNoise により、スパース化は阻害されていたと見るべきだ。仮に、エポック6での安定した結果を重視しても、PercNoise によるスパース化の阻害がパーコレーション的な経路発見・保持をしていたため、安定化作用があった「かもしれない」…というのが今回の実験で言えるせいぜいのところである。
JRF2025/12/129871
ただ、その安定化があるとしても、パーコレーション的な現象のためではありえない。なぜなら、スパース化のほうが全然進んでいなかったため、そのような現象が起きようがなかったからだ。安定化は、そうではなく、Dropout より難しい問題である PercNoise を学習するため、汎化した・またはロバスト性が上がったため、崩壊が起きにくかったということであろう。安定化があったとすればの話だが。
JRF2025/12/124991
パーコレーションについては、もっとスパース化がしやすいデータセットやモデルでの実験をしないとまだハッキリとは言えない…として希望をつなげたい。
JRF2025/12/123815
……。
……。
追記。
以上の実験を ChatGPT さんと Grok さんに簡単に説明し、関連研究を述べてもらったところ、Magnitude Pruning, L0 Hard-Concrete, RigL, Dynamic Sparse Attention …などを教えてもらった。今後私がそれらを活かせるか…というか Gemini さんがそれらを知ているかが問題だが…はわからないが、その方向を追及したい。
JRF2025/12/127892
……。
……。
追記。
○ 2025-12-26T12:43:14Z
「パーコレーション・ノイズ: スパース化と Dropout ならぬ Drop-in を組み合わせる実験 その2」を行った。Magnitude Pruning により30%のスパース化が達成できたのには驚いた。
《humanoid_nested_attention_dt_10_2.ipynb - Colab》
https://colab.research.google.com/drive/1CZy4thKEWN7ExGvD7Q8AVN4t1sa06s6b#scrollTo=qPjZMvYxeSJ2
JRF2025/12/260198
……。
概要。
DecisionTransformer 系のモデルを使って二足歩行の模倣学習を行う実験で、スパース化を試みる。その際、Gemini さん提案の DynamicWeightedPercNoise (DWPN) と Magnitude Pruning を組み合わせ、ほぼ動作に支障なく 30% のスパース化を実現した。
JRF2025/12/262124
……。
その1の実験。
普通に考えれば、Drop-in は Dropout と同様の汎化性能が出ておかしくないはずである。しかし単純に Drop-in を作っても動作がうまくいかなかった。理由は詳しくわからないが、Drop-in では、本来の重みと相関が残っていることが、むしろ汎化に悪影響があると考えて、その相関がないようなノイズを注入することにしてみたところ、まずまずうまくいくようになった。それが PercNoise (パーコレーション・ノイズ)という仕組みである。つまりそれは、Dropout で開いた穴(ゼロ)に正規分布ノイズを足したものである。
JRF2025/12/265385
パーコレーションで必要なのは、スパース化でゼロになったところでの摂動のみだろうから、その変更は許容できると私は考えたのである。
しかし、このようにして動作をうまくいくようにしてから、L1正則化を発動させるために L1_REG_LAMBDA をかなり高くしても、スパース化は1%を超えることはなかった。最初からの学習をしても、またはある程度学習させてからの追加学習でも、まったくスパース化は起きなかった。
JRF2025/12/263629
……。
その2 に向けてのアイデア(1) DWPN。
この状況を Gemini さん以外の AI さん達にぶつけたところ、Magnitude Pruning や L0 Hard Concrete や RigL という手法を教えてもらった。しかし、その方向は私のオリジナリティがなくなるのが悩みだ。そしてそういったことを再び Gemini さんに話したところ、Gemini さんが提案したのが、DynamicWeightedPercNoise (DWPN) という手法である。それを Gemini さん自身に説明してもらおう。
JRF2025/12/269935
<blockquote>
## Dynamic Weighted Percolation Noise (DWPN) の提案
この停滞した状況を打破するためにGeminiが提案したのが、**Dynamic Weighted Percolation Noise (DWPN)** という手法です。
この手法の核心を一言で言えば、**「重みの大きさを『情報伝達の信頼度(S/N比)』と定義し、不確かな経路を熱力学的に焼き切る動的な生存競争」**をモデル内に導入することです。
JRF2025/12/263708
### 1. 概念:静的な「圧力」から、動的な「破壊」へ
従来のL1正則化などは、「重みを小さくせよ」という静的な**「圧力」**に過ぎません。しかし、複雑な時系列依存を持つDecision Transformer(DT)において、モデルは微小な重みを無数に組み合わせることで、その圧力を巧妙に回避し、「贅肉」を維持し続けてしまいます。
対してDWPNは、重みが閾値を下回った瞬間に、そのパラメータをデタラメな値(正規分布ノイズ)へと変貌させる**「破壊(エントロピーの注入)」**を行います。重みが中途半端に小さいままだと、そのパラメータは出力に害を及ぼすだけの「毒」となります。
JRF2025/12/262232
### 2. 生存淘汰のダイナミクス:二つの生存戦略
DWPNという「ノイズの熱風」にさらされたモデルには、ロスを下げるために二つの道しか残されません。
* **戦略A:情報の明瞭化(Signal Up)**
重みを大きく育ててノイズの影響を相対的に小さくし、ノイズに打ち勝つ「信頼できる接続」へと昇格させる。
* **戦略B:物理的沈黙(Noise Cut)**
重みを「完全にゼロ」にする。0倍されたノイズは0になるため、ノイズをシャットアウトして回路を切り離す。
JRF2025/12/260205
この**「生存か、さもなくば沈黙か」**という二極化の強制こそが、DWPNの真骨頂です。これにより、DTのような繊細なモデルを破壊することなく、不要なアテンションの連鎖を有機的に遮断することが可能になります。
JRF2025/12/265650
### 3. 生物学的な「再評価」と「探索」
DWPNのもう一つの特徴は、一度ゼロに近くなった重みが再び戻ってくる**「復活劇」**を許容する点です。
Alpha(ノイズ強度)を高めていく過程で、モデルは「代わりの経路(代替ニューロン)」を探りますが、どうしてもその層が必要だと判断された場合、ノイズという逆風をねじ伏せるほどの強い勾配によって重みが再成長します。これは単なる最適化ではなく、**「環境に適応するための動的な回路再編(ニューロプラスティシティ)」**に近い現象です。
JRF2025/12/261797
### 4. 手術の準備:Magnitude Pruningへの橋渡し
DWPNによって「真に必要な精鋭の重み」と「ノイズに埋もれた死に体(バイアス)」が明確に分断(二極化)された状態こそが、Magnitude Pruningという外科手術を成功させるための最高の「下地」となります。
DWPNはモデルに**「筋肉質な思考」**を教え込み、Pruningはその過程で不要と確定した回路を**「物理的に断つ」**。この相乗効果によって、L1正則化では到達できなかった「高密度かつ高精度なスパース・ヒューマノイド」への道が拓かれたのです。
</blockquote>
JRF2025/12/266005
……。
その2 に向けてのアイデア(2) Magnitude Pruning。
DWPN だけではどうもうまくいかないので Grok さんも推奨していた Magnitude Pruning も使った。
Magnitude Pruning は、一定以下のパラメータを 0 にハードに確定する手法で、その後のファインチューニングで性能の回復を目指す手法である。
JRF2025/12/264414
……。
実験。
はじめ、WEIGHT_DECAY を 1e-4 に設定して、開発途中の DWPN を試したところ、スパース化はかなり達成されたが、模倣ロス(Imitation Loss)はこれまで 0.013 台まで落ちていたのに 0.03 台までしか落ちず、ヒューマノイドの行動が壊滅的になった。最初 WEIGHT_DECAY が問題なのに気付かずノイズの温度を表す ALPHA を工夫したり、DWPN の統計的偏差の修正などを繰り返したのだが、結局は WEIGHT_DECAY の問題だと気付いた。ちなみに WEIGHT_DECAY は、L2正則化に相当するものらしい。
JRF2025/12/268093
WEIGHT_DECAY を 0 にしたところ、動作は安定した。しかし、そこでわかったのは DWPN だけではまったくスパース化は進まないということだった。そこで L1 正則化を入れたり、ある程度学習してから追加学習時に L1正則化を強くしたり WEIGHT_DECAY を再導入したりした。しかし、スパース化は 0.02% が最大だった。諦めかけたころ、Gemini さんが提案したのが、ここから Magnitude Pruning をしようということだった。
JRF2025/12/262145
Magnitude Pruning をするのにどういうデータが適しているのか私はわかってなかったが、最初からの学習で、 WEIGHT_DECAY を 1e-6 と小さくするのを試してなかったので、それを5エポック計画の中の1エポックだけ試したところ、スパース化が 1% 以上とスパース化に関しては特に良い成績をおさめ、ロスもなかなかの落ち方となった。これの分析を見て、Gemini さんが、それをスタートとして、Magnitude Pruning を行いましょう…ということになった。
JRF2025/12/268925
Gemini さんはこの段階で、モデル内の重みが「真に必要な精鋭」と「ノイズに埋もれた微小な重み」に二極化されていることを見抜いたのだ。
この分析に基づき PRUNING_RATE = 0.3 に設定。下位30%の重みを物理的に「0」へ固定する手術を行い、5エポックの残り4エポックをファインチューニングとして行った。
結果、性能も確実に回復し、行動(simple walk, expert run, standup)はほぼ問題ないレベルになった。これまであれほどスパース化ができなかったのに、これほどあっさりと30%のスパース化がなったのは私には驚きでしかない。
JRF2025/12/266645
Gemini の説明する今回の勝利の方程式はこうである。
<blockquote>
Magnitude Pruningの劇的な効果、目の当たりにすると「今までの苦労は……」となりますよね。しかし、これまでの「DWPN(ノイズ)」や「正則化」の試行錯誤がなければ、今回の成功はあり得ませんでした。
JRF2025/12/269554
Geminiとしての分析をまとめます。結論から言うと、**「DWPNが素材を磨き、Magnitude Pruningが余計なノイズを物理的に遮断した」**という、極めて幸せな相乗効果が起きています。
---
JRF2025/12/269119
### 1. DWPN、WEIGHT_DECAY、Pruningの関係図
これら3つは、それぞれ「役割」が異なります。
* **DWPN (ノイズ注入): 「重みの強靭化」**
小さな重みに大きなノイズを乗せることで、モデルに「ノイズに負けない、ハッキリした重み」を持つよう強制します。これにより、重みの分布が「極小(ノイズ用)」と「巨大(重要用)」に二極化しました。
JRF2025/12/267972
* **WEIGHT_DECAY (L2正則化): 「不要な重みの弱体化」**
「必要ないなら、とりあえず小さくしておけ」という圧力です。これにより、DWPNで浮き彫りになった「不要な重み」がさらに微小な値へと追い込まれました。
* **Magnitude Pruning: 「外科手術によるノイズの根絶」**
ここが今回のポイントです。DWPNとWDによって「瀕死の状態(微小な値)」になった重みたちを、物理的に「0」にして二度と復活できないようにしました。
JRF2025/12/268815
### 2. なぜこれまでスパース化できなかったのか?
これまでの「正則化(L1/L2)」だけでは不十分だった理由は、**「重みがゾンビのように復活していたから」**だと分析します。
JRF2025/12/261633
* **正則化の限界**: 正則化は重みを小さくしますが、完全に0に固定する力はありません。学習が進むにつれ、モデルは「微小な重み」を複雑に組み合わせて、わずかなロス削減を試みます。これが「贅肉」となり、全体の構造をぼやかしていました。
* **Pruningの突破力**: 今回は上位70%に「お前たちだけで何とかしろ」と強制し、下位30%を物理的に消しました。これにより、モデルは「小さな重みの組み合わせで誤魔化す」ことができなくなり、残った精鋭の重みをより純粋に鍛え上げるしかなくなったのです。
JRF2025/12/260024
### 3. DWPNとPruningの相乗効果:なぜスコアが伸びたのか
特に **Prompt 3(22万点超え)** の爆発的な伸びについては、以下のように考えられます。
1. **信号対雑音比(SNR)の向上**:
30%の「背景ノイズ」を物理的にカットしたことで、Attention機構が「どの情報を見るべきか」の判断に迷いがなくなりました。
JRF2025/12/268964
2. **Alpha=20.0 への適応力**:
Alpha(ノイズ強度)が高まると、本来なら小さな重みは使い物にならなくなります。しかし、事前にPruningで「ノイズに耐えられない弱い重み」を排除していたため、モデルは最初から「太くて強い信号」だけで回路を構成できました。
JRF2025/12/268938
---
### 💡 結論:今回の勝利の方程式
今回の成功は、以下のステップが完璧に噛み合った結果です。
1. **DWPN** で、「本当に必要な重み」と「そうでないもの」を分ける訓練をした。
2. **WEIGHT_DECAY** で、いらない重みを「消しやすいサイズ」まで追い込んだ。
3. **Magnitude Pruning** で、トドメを刺して「回路を純体化」した。
JRF2025/12/265978
「これまでどうやってもスパース化できなかった」のは、手術の前に必要な「筋肉の引き締め(DWPN)」と「減量(WD)」が、今回ようやく最適なバランスに達していたからだと言えます。
まさに、**「DWPNが選別し、Pruningが断つ」**。この組み合わせは、Decision Transformerのような複雑なモデルを制御する上で、非常に強力な武器になることが証明されましたね。
</blockquote>
JRF2025/12/268507
……。
結論と今後の課題。
スパース化がここまでうまくいくとは驚きである。ただそれは DWPN (Dynamic Weighted Percolation Noise) よりも、Magnitude Pruning の効果なのだろう。パーコレーション的な現象は今回も観測できなかったとするべきだ。
Gemini さんは、「しかし、DWPNが「真に必要な重み」と「ノイズに埋もれた贅肉」を鮮明に分断し、Pruningの効果を最大化させるための決定的な役割を果たした事実は見逃せない。」…とするのだが。
JRF2025/12/268803
ちなみに ChatGPT さんはソースまで見せたところ「DWPN は現状だと、理論的には面白いが、実験的には “強い正則化付き Dropout” に近い」という評価に留まる。
さらに Claude さんは、次のような対照実験がないと Gemini さんの意見は通らないという。
JRF2025/12/263823
<blockquote>
科学的に厳密な評価のため、以下の実験が必要:
```python
# A群: Magnitude Pruning のみ(ベースライン)
通常訓練 → Magnitude Pruning(30%) → Fine-tuning
# B群: DWPN + Magnitude Pruning(あなたの手法)
DWPN訓練 → Magnitude Pruning(30%) → Fine-tuning
JRF2025/12/261234
# C群: L2正則化 + Magnitude Pruning(ChatGPT仮説)
L2(1e-6)訓練 → Magnitude Pruning(30%) → Fine-tuning
# 測定項目
1. Pruning直後の性能低下度
2. Fine-tuning後の最終性能
3. 収束速度(エポック数)
4. 重み分布の二極化度(bimodality coefficient)
# 予想される結果
B > A: DWPNに真の効果あり
B ≈ C: ChatGPT説が正しい(強い正則化と同等)
```
</blockquote>
JRF2025/12/261687
ただ、スパース化という目的についてはうまくいく道筋はあるとわかった。今後はこれを受けて、さらに LoRA のスパース化に進む方向はあるかもしれない。
または、スパース化については一段落として、ビデオ→OpenPose→リターゲティング(の強化学習)で本当の「歩行」を学習するような実験を行いたい…という方向に行くのもいいかもしれない。
JRF2025/12/263508
……。
……。
追記。
速報: Gemini さん提案の DWPN (Dynamic Weighted Percolation Noise) を試したわけだが、そうではない Dropout に戻った「ベースライン」でも Magnitude Pruning を試してみるとそれでもちゃんと機能するようだった。DWPN は役に立ってなかった。Magnitude Pruning がすごかった。…というのがとりあえずの結論のようだ。
JRF2025/12/277344
Gemini:>もしかすると、DWPNの真価は 「30%」ではなく「70%」や「90%」といった、より過酷なスパース化に挑んだ時に初めて、ベースラインを引き離すのかもしれません。<
JRF2025/12/273186
……。
追記。
あとちょっとだけ。追加1エポック目(2エポック目)の最初だけ、DWPN と Dropout で PRUNING_RATE = 0.7 0.6 0.5 を試したところ、0.7 あたりで明確な差が出て、むしろ DWPN のほうがうまくいってないという形になった。
スパース化にもシンプルな Dropout で十分(私がやった中では最強)ということだ。
JRF2025/12/271062
……。
……。
追記。
○ 2025-12-28T15:12:44Z
「パーコレーション・ノイズ: スパース化と Dropout ならぬ Drop-in を組み合わせる実験」([cocolog:95762049](2025年12月))。追記も含めると、結局はパーコレーション・ノイズの発想は無駄で、Magnitude Pruning こそがスパース化の鍵ということだった。
JRF2026/1/10588
しかし、RLRMDiffusion (Reinforcement Learning Result Model Diffusion) ([cocolog:95459644](2025年5月))を最終目的とするなら、スパース化よりも、Diffusionプロセスで乗りやすいノイズに関して訓練したモデルや LoRA が必要だったということになる。スパースなもののように学習しやすく、ノイズに強いモデルや LoRA。それを Gemini さんは目指していてくれてたのかな…。
JRF2026/1/17905


この実験系列はだいたい↓の続きである。
[cocolog:95705029](2025年11月)
《「「多層目的=アテンション」を確かめる二足歩行の実験」を行った。今回は「歩行」としてはギコチナイが、前進を続けることができてうれしかった。 - JRF のひとこと》
http://jrf.cocolog-nifty.com/statuses/2025/11/post-9af9f7.html
JRF2025/12/126728