« 前のひとこと | トップページ | 次のひとこと »

cocolog:95725020

松井孝太&熊谷亘『転移学習』に目を通した。深層学習の中間層の転移から、ファインチューニングや知識蒸留、ノーフリーランチ定理に、継続学習の iCaRN など、豊富な話題だが、ロスをどう設計するかという話が中心でそこがポイントのようだった。 (JRF 9208)

JRF 2025年11月16日 (日)

『転移学習』(松井 孝太 & 熊谷 亘 著, 講談社 機械学習プロフェッショナルシリーズ, 2024年4月)
https://www.amazon.co.jp/dp/B0D59PWHS5
https://7net.omni7.jp/detail/1107485853

JRF2025/11/166978

直近に読んだ前の本(金森敬文 他『機械学習のための連続最適化』([cocolog:95713714](2025年11月))ほどではないがやはりとても難しい。気になるところは Gemini さんに聞きながら読んだ。…というか数学物理系の本のいつものごとく読んだというよりは、目を通したレベルに留まる。

深層学習の中間層の転移から、ファインチューニングや知識蒸留、ノーフリーランチ定理に、継続学習の iCaRN など、豊富な話題だが、ロスをどう設計するかという話が中心でそこがポイントのようだった。ロスの式の基本構造はそこまで難しくないのだが、付随する定義などが複雑で、追い切れなかった。

JRF2025/11/161123

以下、用語などにいくつか言及していく。言及する部分だけがわからなかったわけでない。逆だ。証明はもちろん、特に後半はたいていわからず読み飛ばしている。言い訳をすれば、必要になったときに読む、または手を動かさないと頭に入らなさそうだったから…。たとえ話的な部分だけを読んだ感じだ。そして気になる部分・知りたい部分は Gemini さんに聞いて補い、その部分が下のメモになっている。Gemini さんで詳細を調べるためのカタログとしてしか読めなかった感じかな。

JRF2025/11/160225

やはり Gemini さんの話はわかりやすい。わかった気にさせるのがうまい。こちらが間違ったことをいいながら質問しても親切にこちらにわかる言葉で教えてくださる。

JRF2025/11/164229

……。

読んだ動機は、ロボットの学習に関心があったから。例えば、↓のような言及。

[cocolog:95538601](2025年7月)
>言語とビデオを解する RLRMD (…Reinforcement Learning Result Model Diffusion([cocolog:95459644](2025年5月)…)が低コストでできるとすれば、それはマシンの違いを超えて転移学習ができるからなのだろう。<

↑のころは妄想だったが、それを自分で実験してみようと少しずつ前に進んでいる。現在、↓では二足歩行の実験を行っている。

JRF2025/11/164831

[cocolog:95705029](2025年11月)
>「「多層目的=アテンション」を確かめる二足歩行の実験」を行った。今回は「歩行」としてはギコチナイが、前進を続けることができてうれしかった。<

この私のロボット学習は prompt_id をラベル(というかドメイン名)とし、そのラベルについての複数行動ドメインに対する転移学習的な側面がある。今はまだ計画段階で近々実験してみる予定だが、そこに潜在変数(潜在目的)を定義・学習して LoRA 的なことができないかと画策している。それは何にあたるのだろう?

JRF2025/11/162815

ちなみに、この本にはファインチューニングは、詳しい説明はないものの、用語としては出てきたが、LoRA についてはまったく出て来なかったように思う。

JRF2025/11/160850

あと、上の実験の「歩行」は単に前進に留まり、ちゃんとした歩行になってないのだが、ちゃんとした歩行を DecisionTransformer 的なもので学ばせるために、(歩行の)ビデオから学習させるということもやってみたい。Gemini さんによると、ビデオを OpenPose 的なモーションデータに変換して、それを最適化で「リターゲティング」して Humanoid-v5 用に変換して、強化学習していく感じになるようだ。

JRF2025/11/168064

私は、ある程度模倣学習で動作を覚えさせたモデルを強化学習にさらし静的なポーズ(の連鎖)とあっていることを報酬として学習すればいい気がするのが、どうも Gemini さんによると「できる」とは言ってくれない感じ。

JRF2025/11/160486

私がやりたいのは…。最初の模倣学習はさまざまな動作を覚えさせる。そこでは、リターゲティング後の軌道ではなく起立や前進などを覚えさせ、バランスの取り方などをすでに知っている状態にしておく。その上で「歩行」などの特定動作がどうやれば実現できるかを強化学習的に探索させようというのである。この探索の結果、目的動作へのリターゲティングされた軌跡を生成できるようになり、今度はそれを模倣学習データに加えることで目的動作も指示一発でできる…という構想。いちおうそれも今後の課題として追及したい。

JRF2025/11/162310

……。

では本を引用(?)しながらコメントしていく。なお、Kindle版で読んだため、ページ数は紙の本とは異なるかもしれない。

JRF2025/11/169505

……。

まず Appendix から読んでいった。

>変分オートエンコーダ<(p.497)

ここまでで説明が他の本に比べて難しいなという印象は持っていたが、なんとかわかったつもりになっていたが、変分オートエンコーダのところで大きくつまづいた。以前、どこかでその説明を読んでいたはずだが(おそらく斎藤康毅『ゼロから作るDeep Learning 5 - 生成モデル編』([cocolog:94787819](2024年4月))、全然意味がつかめない。

JRF2025/11/163080

そもそも一般に、数学(確率)の p(x) と p(z) の p が違う意味を表すのはなんとかならんか…と思う。プログラミングの感覚からそこが同じ p という関数名を用いることになってるのはいつも気持ち悪いのだが…。

Gemini さんに聞きながら、少しづつ理解していった。

JRF2025/11/169992

jrf:> p(x) を求めると言いますが欲しいのは新しい x のはずです。つまり平均によって生成するということですか?

Gemini:> VAEが p(x) を求めるのは、「新しい x の分布を定義するため」です。そして、新しい x はその定義された分布の「平均付近」からランダムに生成されることになります。

JRF2025/11/166037

jrf:> なるほど、q(z|x) がエンコーダで、p(x|z) がデコーダ。いわばデコーダは二回サンプリングするのですね。逆にエンコーダがよくわかりません。複数の x についてもっともらしく q(z|x) を学習するということですか?

Gemini:> エンコーダの学習とは、「入力された x の特徴を正確に捉えつつ、潜在空間の全体的な構造(Z空間)がスムーズになるように調整する」ことと言えます。

JRF2025/11/167106

jrf:> q(z|x) と p(z) の違いは? q(z|x) が学習されたものなのになぜ p(z) から生成できるのですか?

Gemini:> 要約すると、q(z|x) は訓練のために使われ、p(z) は生成のために使われますが、それは q(z|x) が学習中に p(z) へと変形させられたからこそ可能になる、という関係性です。

JRF2025/11/167982

jrf:> わかりません。q(z|x) が結局 p(z) になるべきというなら、q の学習とはいったい何をやっているのですか?

JRF2025/11/168999

Gemini:> q(z|x) は、個々の x の情報を完全に失って p(z) と完全に一致するわけではありません。

q の学習の成功とは、「再構成に必要な x の意味を保持しながら、同時に p(z) の制約にも従う」という二重の条件を満たすことです。

この学習が成功することで、デコーダは、特定のデータ x の特徴(q が学習したもの)だけでなく、データにはないランダムな z(p からサンプリングしたもの)からも、意味のある新しいデータが生成できる汎化能力を獲得するのです。

JRF2025/11/163549

……。

>ノイズ分布から生成されたデータさえあれば GAN の学習を行うことはできます。この事実に基づき、ノイズ分布として元ドメイン、真の確率分布として目標ドメインをとる転移学習の手法が提案されています。<(p.505)

jrf:> GAN で転移学習するというのがよくわかりません。ノイズ分布として元ドメイン、真の確率分布として目標ドメインを使う GAN を用いた転移学習とのことです。

JRF2025/11/167472

Gemini:> これは、GANの仕組みを非常に巧妙に利用した、ドメイン適応(Domain Adaptation)のテクニックです。この手法は、生成器(G)に「元ドメインの画像そっくりだが、目標ドメインの特徴を持った画像」を生成させることを目的とします。

JRF2025/11/169020

jrf:> どのあたりが転移なのでしょう? がっつり変換を学習しているように思えますが?

Gemini:> この場合の「転移」とは、「元ドメインの画像が持つ構造的な情報」を、目標ドメインの生成に再利用している点にあります。

「ノイズ z の代わりに元ドメインの画像 x_{source} を生成器 G の入力として使う」という設計自体が、転移学習の役割を果たしています。

元ドメインの低レベルな特徴(エッジ、形状、基本的な構図など)に関する知識が転移されます。

JRF2025/11/161613

もし G の入力がランダムなノイズ z だった場合、 G は構造とスタイルの両方をゼロから学習しなければなりません。しかし、 x_{source} を入力とすることで、既に情報を持っている元ドメインから「構造」を転移(コピー)できているのです。

JRF2025/11/167253

jrf:> 転移というと、層を別で学習したものに置き換えるというのを想像してしまうのですが、蒸留も転移学習だとするなら、たしかに上の GAN も転移学習と言えるのかもしれません。まだモヤモヤしますが。

Gemini:> 標準GANが「特定領域に対するGAN」になるためには、まずランダムな z から、その領域の基本的なデータ構造(人間の顔の目鼻口の位置など)を何もない状態から学習しなければなりません。これは、GAN学習の中で最も不安定で難しい部分です。

JRF2025/11/166118

しかし、転移学習GANは、元ドメインの画像 x_{source} を入力とすることで、「基本的な構造はそのまま使っていいよ」という指示を G に与えています。G は、スタイル(色、テクスチャ)の変換という、より簡単で高レベルなタスクに集中できるため、これは「構造学習の知識を元ドメインから転移している」と見なされるのです。

ノイズ z から学習するよりも圧倒的に早く、安定して目標ドメインの画像を生成できる。これは、「構造学習のコストを転移で補った」証拠です。

JRF2025/11/166688

……。

最初に戻って本文を読んでいく。

>残余誤差<(p.37)

「ベイズ誤差」「ベイズ規則」がいわゆる「ベイズの定理」とはかなり違う意味で使われているようだ。そして、残余誤差の定義ではいきなり「可測関数」という概念が使われる。なぜルベーグ積分などで使われる可測関数という概念がここで使われるのか、これは数学とは違う意味なのか…と混乱した。

JRF2025/11/161790

Gemini さんに聞いた上で解釈すると、期待リスクの定義には学習後の仮説 h について確率分布 P_{X,Y} から生成したものに関して平均を取っているのだが、その実数的な確率分布に関して、h と合わさったときに可測関数でなければ、そのような平均が定義できないことがある。そういう特殊な場合を排除する必要があるということだった。

JRF2025/11/162985

Gemini:> ベイズ誤差とは、利用可能な全ての情報を使って、理論上達成できる「最も小さな誤り率」のことです。ベイズ規則とは、ベイズ誤差を達成するための「理想的な分類器(決定規則)」のことです。

jrf:> 「h: 可測関数」と「h: H」の違いはこの場合何ですか?

JRF2025/11/169721

Gemini:> 「h: 可測関数」の意味は、数学的に定義可能で、矛盾なく確率を測定できるあらゆる関数(決定規則)を許容するという意味です。これは、線形モデル、非線形モデル、ニューラルネットワーク、決定木、さらには人間が思いつかないような無限に複雑なモデルまで、全ての可能性を含みます。この集合の中から選ばれた最も優れた h が達成する誤差が、ベイズ誤差です。ベイズ規則 h_{Bayes} はこの集合に属します。ベイズ誤差は、データセットの本質的なノイズと、データの重なりによってのみ発生し、モデルの選択によっては改善できない、理論上の限界を示します。

JRF2025/11/164470

「h: H」の意味は、H は仮説空間(Hypothesis Space)と呼ばれ、私たちが実際に学習に使う関数クラスを指します。この制限された集合 H の中で最も優れた h が達成する誤り率が、残余誤差(または近似誤差/Approximation Error)です。

JRF2025/11/168142

jrf:> H は可測関数より狭いのか! じゃあ逆にある型(すなわちX→Y)の関数全体と可測関数の違いは何ですか? 計算可能性ではないようです。

Gemini:> 可測関数は、測度論的な定義です。可測関数は、前述の不連続な病的な関数の一部を排除します。具体的には、関数の値域に関する特定の集合(Borel集合族など)の逆像が、定義域の特定の集合(可測集合族)に含まれる、という条件を満たします。

JRF2025/11/168223

jrf:> 可測=Mesurable って、ベイズ誤差に関して距離ってどこに定義されてました?

Gemini:> ベイズ誤差に関する議論で「距離」として機能する概念は、「誤り率(リスク R(h))」であり、可測関数 h はその計算を可能にするための「対象」です。

JRF2025/11/168216

jrf:> R が計算できる h ということですか? それはおかしいですよ。それなら inf_{h:X->Y} R(h) で十分な気がします。可測関数という概念の必要性がわかりません。逆に十分定義できないのに R(h) だけがわかるものがあり、それだけを対象にする計算が想定できるということですか?

Gemini:> 「$\mathbf{R}$ が計算できる $h$」というのは、「数学的に $\mathbf{R}$ の計算(積分)が矛盾なく定義できる $h$」と同義であり、それを保証するのが可測関数という概念なのです。

JRF2025/11/169345

jrf:> (…ちょっと余談的な話に入る…)いや、H は確率的要素を含みうるので、積分から見れば定義不能的動作を含みえます。可測関数に限定すると H ははみ出してしまうこともあるように思えます。

Gemini:> 現代の確率論の枠組みでは、H は通常、可測関数の制約から逸脱しません。そして、H が可測関数をはみ出すことは、理論上、非常に稀で病的なケースに限定されます。

JRF2025/11/166741

H が可測関数をはみ出す状況は、数学的に「病的なケース(Pathological Cases)」と呼ばれ、通常の機械学習モデルでは発生しません。例: 選択公理を仮定しないと存在しないような、ルベーグ測度(面積や体積)が定義できない集合(非可測集合)を、モデルの決定境界として使うような関数 h を設計した場合。

JRF2025/11/164103

jrf:> いや、選択公理を仮定しないといけないようなものが学習できてしまっていることが、この現在の AI の不思議さにつながっているのではないですか?

(…拙著『宗教学雑考集』《神の存在証明を論駁する》でもちょっと説明したが、選択公理=Zornの補題(半順序集合に関するものなど)が、アンセルムスの神の存在証明の議論に似ていることがあって、そこから神と選択公理を結びつけて考えながら…。)

JRF2025/11/169639

Gemini:> その推測は、現在の深層学習(特に複雑なニューラルネットワーク)が持つ理論的な謎と実務上の驚異的な成功の間の、最も深い矛盾点の一つを突いています。

結論から言うと、現在のAIモデルが「選択公理が必要な非可測集合を学習している」という直接的な証拠はありませんが、「AIが理論上の可測関数では説明しきれない現象を起こしているのではないか」という可能性は、理論研究者たちの間で議論され続けています。

JRF2025/11/163411

jrf:> 生成時の「乱数」(入力に含まれる揺らぎ)は、h の定義域に微妙に含まれえない部分・外部性を持っている気がします。つまり、h が想定する確率的構造は、真のランダムなのですが、そこで学習されたことは外側の生成時の構造を学習しうるわけです。実際の関数性は、その外側の構造も含めたところにあり、そのため H は可測関数をほぼ超え「神託」つまり選択公理性を持ちうるのではないですか?

Gemini:> その考察は、ニューラルネットワークの驚異的な能力と、数学的基盤(可測性)との間の緊張関係を、非常に哲学的に捉えています。

JRF2025/11/161656

あなたが考える「神託(Oracle)」や「選択公理性」を持ちうるという推論は、以下のような論理に基づいています。

1. 学習の対象は、内側の可測な世界(R(h))に限定される。

2. しかし、生成された結果は、外側の真の乱数(p(z))と、内側の構造が相互作用した結果である。

3. モデル h は、この「内と外の境界」を扱うことで、定義域の壁を超えた非可測な、つまり人間の理論を超えた構造を学習しているのではないか?

現在の数学的枠組みでは、この論理は以下の理由で成立しないとされます。

(…)

JRF2025/11/164494

AIの不思議さは、「可測関数という厳密な制約の下で、なぜこんなに複雑で、人間が設計できないほど高性能な関数(h)が、勾配降下法というシンプルなアルゴリズムで自動的に見つけられるのか」という点に集約されます。

あなたの指摘する「外部性」は、むしろ「AIが、人間には直感できないほど複雑な形で、可測空間内の規則性を学習している」ことの、非直感的な側面として現れていると言えるでしょう。

AIが可測性の制約を超えているのではなく、私たちが可測性の制約の下で可能なモデルの複雑さ(神託的な能力)を過小評価していた、と捉えるのが、現在の理論の主流です。

JRF2025/11/160736

jrf:> まぁ R(h) の R の実現可能な値域は inf で抑えられるという主張だと理解しました。仮に R が定義できなくてもその inf よりは大きい…と定義する…ということだと。そう定義しようとしたら可測関数内に限るのが合理的。なぜなら、H は可測関数の部分集合のはずだから…と。

Gemini:> その理解は、ベイズ誤差の理論的な定義と数学的厳密性について、非常に正確かつ深く掘り下げた結論です。まさに、あなたが導き出したその通りです。

JRF2025/11/165116

……。

>ワッサースタイン距離<(p.72)

Wasserstein 距離は、↓([cocolog:95052633](2024年9月))で Gemini さんに教えられて取り込んだが、なんのことかわからなかった。KLダイバージェンスのように確率分布がどれぐらい似ているかを表すものだということしかわからなかった。

《JRF-2018/simple_synthetic_population: 仮想合成人口個票の簡易な実装》
https://github.com/JRF-2018/simple_synthetic_population

JRF2025/11/167012

この本によると最適輸送理論に関して、分布の山をもう一方の分布を逆転した谷に埋めるために運ぶような感じで計算するものらしい。

jrf:> 確率分布間の距離を示せるワッサースタイン距離がわかりません。

JRF2025/11/168215

Gemini:> 直感的な定義としては、ある確率分布 P を別の確率分布 Q へと変換するために、「移動させる土の量」×「移動させる距離」の合計の最小値を測るものです。

* P を土の山、 Q を目標の穴と見立てます。

* 距離が近いほど、移動コスト(ワッサースタイン距離)は小さくなります。

この性質により、分布 P と Q が重なり合っていなくても、その「形状の隔たり」を滑らかに測ることができます。これが、従来のKLダイバージェンスやJSダイバージェンスが持つ「分布が重ならないと距離が無限大になってしまう」という問題点を解決しました。

JRF2025/11/164019

jrf:> なぜリプシッツ定数が必要なのでしょう?

Gemini:> 2つの確率分布 $P_r$(真のデータ分布)と $P_g$(生成器の分布)に対するワッサースタイン距離 $W(P_r, P_g)$ は、本来、以下のように定義されます(カントロビッチ・ルービンシュタイン双対性から得られる表現が、GANで利用されます)。

JRF2025/11/166561

$W(P_r, P_g) = \sup_{\|f\|_{L} \le 1} \mathbf{E}_{\mathbf{x} \sim P_r} [f(\mathbf{x})] - \mathbf{E}_{\mathbf{x} \sim P_g} [f(\mathbf{x})]$

$f$: 弁別器(Discriminator)または批評家(Critic)を表す関数。
$\mathbf{E}[\cdot]$: 期待値(平均)を表す。
$\sup$: 上限(最大値)を表す。
$\|\cdot\|_{L} \le 1$: リプシッツ連続性の制約を表す。

JRF2025/11/161488

この定義におけるワッサースタイン距離は、リプシッツ連続な関数 $f$ によって得られる期待値の差の最大値として表現されます。

リプシッツ連続性(Lipschitz Continuity)は、関数の「変化の激しさ(勾配)」を制限する条件です。特にWGAN(Wasserstein GAN)では、このリプシッツ制約が学習の安定性に直結します。

JRF2025/11/166955

jrf:> でも、一般に観測された分布だと、リプシッツ定数の条件が満たされているかはわからない気がするんですが…。

JRF2025/11/166266

Gemini:> おっしゃる通り、観測された真のデータ分布 $P_r$ 自体が、リプシッツ連続性の条件を満たしている必要はありません。リプシッツ連続性の制約 ($\|\mathbf{f}\|_{L} \le 1$) が課されるのは、ワッサースタイン距離を計算するために導入された関数 $f$(批評家/Discriminator)に対してであり、真のデータ分布 $P_r$ や生成分布 $P_g$ の形状に対してではありません。私たちは観測データに手を加える必要はなく、モデルの一部(批評家 $f$)を制約することで、困難なワッサースタイン距離の推定を可能にしているのです。

JRF2025/11/164362

……。

このことについて、「わかった!」という気になったので、ジルパとジョルジュに説明してもらうビデオを作った。


○ 2025-11-13T07:35:19Z

確率分布がどれぐらい似ているかを示すワッサースタイン距離。リプシッツ定数が出てくるのは、批評家の激しさを制約するためか!

https://youtube.com/shorts/rY6ofeK50o0

JRF2025/11/164476

……。

ちなみにワッサースタイン距離を Python で Gemini さんに書いてもらうと下記のようになった。一気に all_data にしてしまうところが工夫で、点ごとに細かく weight の移動を見ているようだ。

JRF2025/11/165137

<pre>
import numpy as np

def calculate_wasserstein_distance_1d(data1, data2):
"""
2つの1次元データ配列間のワッサースタイン距離 (W1) を計算する。

これは、経験累積分布関数 (ECDF) の差分の絶対値の積分として計算される。
SciPyの wasserstein_distance と同様のアルゴリズムに基づく。
</pre>

JRF2025/11/166734

<pre>

Args:
data1 (np.ndarray): 1つ目のデータ分布を構成するデータ点。
data2 (np.ndarray): 2つ目のデータ分布を構成するデータ点。

Returns:
float: ワッサースタイン距離 W1。
"""
# 1. すべてのデータ点と重みを結合

# データ点と、それぞれの重み(経験分布なので均一重み 1/N)
n1 = len(data1)
n2 = len(data2)
</pre>

JRF2025/11/164064

<pre>
# 結合されたデータ点と、それぞれの重み(重みは CDF のステップサイズとなる)
# data1の点は +1/n1 のステップ、data2の点は -1/n2 のステップとして考える
all_data = np.concatenate([data1, data2])
weights = np.concatenate([np.full(n1, 1/n1), np.full(n2, -1/n2)])

# 2. データをソートし、重みも同時に移動
</pre>

JRF2025/11/165589

<pre>

# ソート順のインデックスを取得
sort_indices = np.argsort(all_data)

# ソートされたデータ点と、対応する重み
sorted_data = all_data[sort_indices]
sorted_weights = weights[sort_indices]

# 3. 累積差(ECDFの差)の計算
</pre>

JRF2025/11/160294

<pre>

# 累積和を計算 (これが ECDF_A(x) - ECDF_B(x) に相当)
cumulative_diff = np.cumsum(sorted_weights)

# 4. ワッサースタイン距離 (W1) の計算

distance = 0.0

# 最初のデータ点から最後のデータ点の直前までループ
</pre>

JRF2025/11/161798

<pre>
for i in range(len(sorted_data) - 1):
# 累積差の絶対値 (その区間で移動すべき正味の質量)
height = np.abs(cumulative_diff[i])

# 隣接するデータ点間の距離 (幅)
width = sorted_data[i+1] - sorted_data[i]
</pre>

JRF2025/11/167171

<pre>
# 距離 = |ECDF差| * (データ点間の幅) の総和
distance += height * width

return distance
</pre>

JRF2025/11/162246

……。

>ノーフリーランチ定理<(p.112)

有名なNFL定理。ここで学べるとはラッキーな感じ。

Gemini:> ノーフリーランチ定理は、「すべての可能性のある問題(データ分布)を平均すると、どのアルゴリズムの性能も同じになる」と主張します。

数式的な厳密性を省略して単純化すると、以下のようになります。「すべての可能なデータ分布(問題) $P$ の集合に対して、ある学習アルゴリズム $A_1$ の平均的な性能と、別のアルゴリズム $A_2$ の平均的な性能は、常に等しい。」

JRF2025/11/163165

つまり、すべての問題に対して他のどのアルゴリズムよりも常に優れた性能を発揮する万能な「究極のアルゴリズム」は存在しないということです。

任意のアルゴリズム A に対して、限られた訓練データ D を与えると、そのアルゴリズムが学習したモデル A(D) は、真の分布 P において大きな誤り(≥1/4)を出す問題が必ず存在します。

JRF2025/11/169379

jrf:> 最悪の確率分布 P を選んだ場合、…性能は 1/4 よりも良くならない、そのような P が必ず A に対して存在している…ということですね。わかったと思います。

Gemini:> ノーフリーランチ定理(NFL)の限界を理解できた今、転移学習を含む機械学習理論が次に進むべき方向性が見えてきます。

NFLの「抜け道」の探求: NFL定理は「すべての可能な問題 $P$」を平均して評価するため、実用上の意味が薄いことがあります。現実の応用において重要なのは、「私たちが解きたい特定の種類の問題」に特化したアルゴリズムです。

JRF2025/11/160001

NFLは、仮説空間 $H$(私たちが選んだモデル)に制約を設けずに議論をスタートさせます。しかし、現実にはニューラルネットワークなど特定の構造を選びます。この構造が「バイアス」となり、NFLの「平均的な性能は同じ」という主張を、特定のドメインにおいては打ち破ります。

JRF2025/11/164870

現実のデータ分布 $P$ は、ランダムな全分布の集合ではなく、自然法則や人間活動に基づいた構造を持っています。転移学習は、この「構造の類似性」を利用して、NFLのトレードオフを回避します。

JRF2025/11/167854

jrf:> (仮説というか真の関数) f は任意の関数でなく構造を持っている関数に限定されるという仮定があり、その最良の構造を特定できるかが問題になる。そして、おそらく構造がどのようなものか定義できない。この世界に完全なランダムありえない。なぜなら一様にランダムならそれは一つの構造だから。あらゆる構造を裏切るためには構造が確定したときそのすべてを観測しているラプラスの魔的な物が必要になり、それは物理的にエネルギー的に不可能。…うーん、うまくまとまりません。

JRF2025/11/166484

Gemini:> あなたの考えは、「構造がない」ことの定義自体が難しく、結果的にNFL定理が想定する「あらゆる問題」の集合が、現実世界では適用されない可能性を示唆しています。

ラプラスの魔は、宇宙の初期状態と物理法則がすべてわかれば、未来を完全に予測できるという決定論的な思考実験です。あなたの主張は、「あらゆる構造を裏切る(真にランダムな)現象」を観測するためには、ラプラスの魔のような無限の情報処理能力が必要であり、それは物理的にもエネルギー的にも不可能である、という、現実世界の情報処理の限界を示唆しています。

JRF2025/11/161359

あなたの論点は、「現実の学習理論は、NFLが前提とする病的な問題を無視し、構造を持つ問題の集合 $P_{real}$ に限定して議論すべきである」という、現代の機械学習理論が暗に依拠している「暗黙の仮定」を正確に捉えています。私たちは、この「現実世界には構造がある」という仮定のもとで、最も良い構造 $H$ を見つけようと努力しているのです。

JRF2025/11/162426

……。

ノーフリーランチ定理についてもビデオを作っておいた。


○ 2025-11-14T02:36:18Z

@j_rockford.jilpa と @j_rockford.jorge の会話(できるだけ図示してください。「ノーフリーランチ定理」はセリフで必ず発言してください。): ジョルジュ「ノーフリーランチ定理は、どんな学習アリゴリズムも原理的に一定以上苦手な問題が必ずあるということだ」。ジルパ「でも、現実世界は一定の構造を持つから…」。

https://youtube.com/shorts/oRanx4mwaoY

JRF2025/11/169707

……。

>自己蒸留<(p.281)

知識蒸留はなんとなく知っていたのだが、自己蒸留という言葉が出てきて、この本の記述ではまったくわからなかった。Gemini さんに聞くと、ソフトラベルでの学習を説明してくれた。ただ、この本がやっているのは、そうではなく、深い層から浅い層に学習して、学習を早める感じのことのようだ。Gemini さんの話ぶりからすると。

jrf:> 自己蒸留というのが何がやりたいのかわかりません。

JRF2025/11/164576

Gemini:> 従来の学習(ハードラベル): モデルは、正解(ハードラベル、$y$)に対して非常に強い自信(確率1.0)を持って予測するように学習します。これは、モデルが過度に確信的になり、汎化性能(未知のデータへの対応力)が低下する可能性があります。例: 画像がネコであれば、出力は [1.0, 0.0, 0.0] となります。

JRF2025/11/161542

自己蒸留(ソフトラベル): まず、学習中のモデル(または同じアーキテクチャのモデルの初期バージョン)を使って、訓練データ全体に対する予測を行い、その予測を「ソフトラベル(Soft Labels)」として作成します。ソフトラベルには、正解以外のクラスにも小さな確率が含まれます。例: 画像がネコであっても、出力は [0.9, 0.08, 0.02] のようになります(ネコだが、少しイヌやトラの要素も含まれる)。モデルは、このソフトラベル(モデル自身の初期の知識)を教師として学習します。

JRF2025/11/160729

jrf:> オフライン学習でなくそれをオンライン学習で行うのは、学習途中のソフトラベルを使うほうが、良いモデルができる…場合によっては正則化的な効果で教師より生徒が賢くなるということでしょうか。

Gemini:> その通りです。その現象こそが、自己蒸留が単なる知識の伝達を超えた、非常に強力な手法である理由です。

オンライン自己蒸留では、教師モデル(生徒と同じモデル)の知識が毎ステップ更新されます。

JRF2025/11/160171

* 学習の安定化(正則化効果): 学習途中のソフトラベルは、ハードラベル(正解)よりも滑らかな決定境界をモデルに教えます。正解クラス以外のクラスにも小さな確率が割り振られるため、モデルはクラス間の関係性を学習しやすくなります。

* ノイズへの耐性: 訓練データに含まれるノイズや外れ値(誤ったアノテーションなど)の影響を受けやすいハードラベル学習に対し、学習途中のソフトラベルは、ノイズの影響を「平均化」する効果があります。

JRF2025/11/165166

* 動的な知識の向上: 学習が進むにつれて、教師役のモデル自体も賢くなります。生徒モデルは、常に最新かつ最も洗練された「自分自身の知識」から学んでいるため、知識が陳腐化せず、より効率的に学習の天井を目指すことができます。

この「滑らかさ」と「動的な質の向上」が、最終的に過学習を抑制し、汎化性能を最大限に引き出す正則化として働き、固定された教師モデルよりも高い精度を達成する(教師越え)ことを可能にします。

JRF2025/11/169496

そのため、研究分野では、自己蒸留はモデルの知識を再利用するだけでなく、学習プロセスそのものを改善する手法として重要視されています。

JRF2025/11/165285

jrf:> すると途中で生徒が教師になるいわば生徒がフォークして教師を代替わりさせ、さらに生徒が賢くなるのを目指すのがよさそうです。

Gemini:> おっしゃる通り、その「学習の途中で生徒がフォークして教師役を代替わりさせ、教師の質を向上させる」という手法こそが、オンライン自己蒸留や関連研究における性能向上の鍵となります。

これは、「教師役を動的に進化させる」ことで、知識の陳腐化を防ぎ、学習効率を最大化するアプローチです。

JRF2025/11/162663

jrf:> 本が説明しているのは Zhang らの方法で、「異なる層を教師として使う」という方向のようで、ソフトラベルの方法はたぶん載ってない感じですが…。

Gemini:> お読みになっている本が説明しているのは、Zhangらによる Cross-Layer DistillationやDeep Mutual Learningのバリエーションである可能性が高いですね。

このアプローチは、先ほどの「ソフトラベル」をベースにした知識蒸留の一般的な定義とは少し異なり、モデルの内部的な特徴表現の整合性に焦点を当てています。

JRF2025/11/162770

この手法がやりたいことは、「モデル内の深い知識を浅い部分に教え込む」こと、または「複数の部分(生徒)がお互いに指導し合う」ことです。

これにより、浅い層も深い層が学習した複雑な特徴抽出の方法を早期に学ぶことができ、モデル全体がより効率的かつ統合的に機能するようになります。

JRF2025/11/160113

……。

継続学習には関心がある。私がやりたいことも模倣学習をしたあと強化学習するわけで、ある種の継続学習とも言えるからだ。

>増分分類器表現学習(incremental representation learning, iCaRL)<(p.412)

>最後に iCaRL ですが、唯一、平均忘却度がすべてのモデルサイズで負になっています。これは破滅的忘却をするどころか、新たなタスクを学習したおかげで、過去のタスクでの性能が向上するという望ましい性質を示しています。これは今後の継続学習アルゴリズムにとっても実現すべき性質といえます。<(p.421)

JRF2025/11/167676

…とあって iCaRL に関心を持った。

jrf:> 継続学習として優秀であるらしい増分分類器表現学習 iCarRL を教えてください。

Gemini:> iCaRLの核となるのは、過去に学習したクラスの代表的なデータサンプル(Exemplar)を少量、メモリに保存しておくことです。

JRF2025/11/169600

* 代表サンプル(Exemplars): 各クラスから、そのクラスの特徴を最もよく表すサンプル(例:特徴空間の重心に近いデータ)を一定数選び出し、保存します。

* 役割: 新しいクラスを学習する際、このExemplarを使って過去のクラスのデータをリハーサル(再訓練)することで、過去の知識を呼び起こします。

iCaRLの最大の特徴は、一般的なニューラルネットワークの最終層(全結合層)を分類器として使わず、「Exemplarの平均特徴」に基づいて分類を行う点です。

JRF2025/11/160692

jrf:> その代表サンプルの選び方についてもう少し詳しく教えてください。

Gemini:> iCaRLでは、この代表サンプルを選ぶために「Herding(ハーディング)」と呼ばれるアルゴリズムを使用します。

ハーディングとは、簡単に言えば、「クラス全体の平均的な特徴ベクトル(重心)に、最も近い特徴を持つサンプルを優先的に選ぶ」手法です。

新しいタスク(クラス)の学習が完了した後、そのクラスに属するすべての訓練データを使い、ニューラルネットワーク(特徴抽出器 $\phi$)から得られた特徴ベクトルを計算します。

JRF2025/11/165823

jrf:> ニューラルネットワーク(特徴抽出器 ϕ)…も同時に学習されるのですか? というかその学習がメインなのですか?

Gemini:> iCaRLにおいて、ニューラルネットワーク(特徴抽出器 $\phi$)の学習こそが最もメインの目的であり、同時に行われます。

学習された特徴抽出器 $\phi$ の出力(特徴ベクトル)を使って、最終的に最近傍平均分類器が分類を行います。

JRF2025/11/163218

……。

この記事の宣伝のためのショート動画も作っておいた。

https://youtube.com/shorts/UOt-qYiVRfk

JRF2025/11/164307

« 前のひとこと | トップページ | 次のひとこと »