2 ポイント 投稿者 GN⁺ 2023-08-27 | 1件のコメント | WhatsAppで共有
  • 1989年のYann LeCunらによる手書き郵便番号認識論文は、バックプロパゲーションでエンドツーエンド学習したニューラルネットワークの初期の実応用例であり、データセット、アーキテクチャ、損失関数、最適化、誤り率の報告方法が現代のディープラーニング論文にも似ている
  • PyTorchでの再実装は、7,291枚の16x16グレースケール数字画像と約1,000個のニューロン規模の小さなネットワークを対象とし、元論文で3日かかった学習はM1 MacBook AirのCPU上で約90秒に短縮された
  • 元論文は学習誤り0.14%、テスト誤り5.00%を報告しており、再現ではMNISTを16x16に縮小した代替データのため完全には同じではないが、学習誤り0.62%、テスト誤り4.09%まで合わせた
  • 2022年式の手法であるクロスエントロピー、AdamW、データ拡張、Dropout、ReLUを適用すると、テスト誤りは4.09%から1.59%に下がり、学習時間は約4倍に増えたが推論レイテンシは変わらなかった
  • 33年の間にマクロな構造は大きく保たれてきたが、データ、モデル、計算量の規模は圧倒的に大きくなり、foundation modelとfine-tuningの流れは、特定タスク用のニューラルネットワークをゼロから学習する方式を急速に時代遅れにしつつある

1989年の論文を2022年に再実装した理由

  • Yann LeCunらの1989年の論文 Backpropagation Applied to Handwritten Zip Code Recognition は、バックプロパゲーションに基づく実応用の歴史的に重要な初期事例である
    • バックプロパゲーションでエンドツーエンド学習したニューラルネットワークを実問題に適用した初期論文と評価されている
    • 当時のデータセットは7,291枚の16x16グレースケール数字画像で、ネットワークは約1,000個のニューロン規模だった
  • 論文の構成は現代のディープラーニング論文と非常によく似ている
    • データセットを定義する
    • ニューラルネットワークのアーキテクチャを説明する
    • 損失関数と最適化を扱う
    • 学習セットとテストセットの分類誤り率を報告する
  • 再実装コードはPyTorchで書かれ、karpathy/lecun1989-reproで公開されている
  • 元のネットワークはLispで実装され、BottouとLeCunによる1988年のbackpropagation simulator SNを使用していた
  • 現代のディープラーニングライブラリ設計は、おおむね3つの部分に分かれる
    • C/CUDAベースの高速なTensorライブラリ
    • 順伝播の計算グラフを追跡し、逆伝播演算を生成するautogradエンジン
    • Pythonでスクリプト可能な高水準API、レイヤー、アーキテクチャ、オプティマイザ、損失関数

学習速度と再現の限界

  • 元の学習では、7,291個の学習例を23回通過し、合計167,693個の入力・ラベルのペアをネットワークに提示した
  • 1989年のネットワークはSUN-4/260ワークステーションで3日間学習された
  • PyTorchでの再実装はMacBook Air M1のCPUで約90秒かかり、単純比較で約3,000倍速かった
    • condaはRosettaエミュレーションではなくnative arm64ビルドを使用した
    • PyTorchがM1のGPUとNPUまで完全に活用していれば、速度向上はさらに大きかった可能性がある
  • A100 GPUで単純に実行した場合は、むしろ遅かった
    • ネットワークが4層のconvnet、最大12チャネル、合計9,760個のパラメータ、64K MACs、1K activationsと非常に小さい
    • SGDが一度に1つの例だけを使う構造だった
    • A100とCUDA、PyTorchを適切に活用するには、per-example SGDの代わりにfull-batch学習でGPU利用率を高める必要がある
  • 元論文の報告性能は次のとおり
    • 学習:loss 2.5e-3、誤り 0.14%、miss 10
    • テスト:loss 1.8e-2、誤り 5.00%、miss 102
  • 再現スクリプトの23回目のpass結果は次のとおり
    • 学習:loss 4.073383e-03、誤り 0.62%、miss 45
    • テスト:loss 2.838382e-02、誤り 4.09%、miss 82
  • 正確な再現は複数の理由で難しい
    • 元のデータセットは時間の経過とともに失われたように見える
    • 代わりにMNISTの28x28数字をbilinear interpolationで16x16に縮小し、必要数だけランダムに非復元抽出した
    • 重み初期化の説明が抽象的で、PDFフォーマットの問題により点や平方根記号が消えている可能性がある
    • H1とH2の間の疎な接続構造は論文で具体的に扱われておらず、合理的な推定が必要だった
    • 論文のtanhが当時流行していたnormalized tanhだった可能性を懸念した
    • 元論文はHessianの正の対角近似を使う特殊なNewtonアルゴリズムを使用していたが、再実装ではより単純なSGDを使用した

33年後の手法で下げた誤り率

  • 最初の変更は、MSE回帰方式から現代的な多クラス分類方式へ変えることだった
    • 元々は10クラス分類を、-1または+1のターゲットに対するMSELoss回帰としてモデル化していた
    • 出力層のtanhを取り除いてclass logitsを作り、CrossEntropyLossを適用した
    • 学習セットに完全に過学習し、学習誤り0.00%、テスト誤り4.38%となった
  • 次にSGDの代わりにAdam系を適用した
    • AdamWをlearning rate 3e-4から開始し、学習中に1e-4へ下げた
    • 結果は学習誤り0.00%、テスト誤り3.59%だった
    • デフォルトパラメータのweight decayも同時に入り、過学習の緩和に役立った
  • データ拡張は、入力画像を横または縦に最大1ピクセル移動させる方式だった
    • データセットサイズの増加を模倣するため、pass数を23から60に増やした
    • 単に元の設定でpassだけを増やしても、結果は大きく改善しなかった
    • 結果は学習誤り1.70%、テスト誤り2.19%だった
  • DropoutとReLUの組み合わせは追加の改善をもたらした
    • 最もパラメータの多いH3レイヤーの直前に、0.25の弱いDropoutを追加した
    • Dropoutはactivationを0にするため、活性範囲が[-1, 1]のtanhよりもReLUと相性が良いと考えた
    • すべての非線形性をtanhからReLUに変え、pass数を80に増やした
    • 結果は学習誤り1.47%、テスト誤り1.59%、テストmiss 32だった
  • 単にtanhをReLUへ変えるだけでは大きな改善はなく、改善の大半はDropoutの追加によるものだった
  • この手法を1989年に持ち込めたなら、誤り数は約80個から約30個へ、テスト誤り率は約1.5%まで下げられた可能性がある
    • その代わり学習時間はほぼ4倍になり、1989年基準で3日からほぼ12日になる
    • 推論レイテンシには影響しない

より大きなモデルより先にデータ拡張がもたらした効果

  • その後の容易な改善余地は次第に小さくなった
    • weight normalizationのような追加手法は大きな改善を生まなかった
    • パラメータ数と演算量を同程度に合わせた「micro-ViT」もconvnetの性能に及ばなかった
  • 過去33年間に多くの革新があったが、一部ははるかに大きなモデルで主に意味を持つ
    • residual connection、layer normalization、batch normalizationは、大規模な最適化を安定させることにより関係が深い
  • 追加の大きな性能向上はネットワークサイズの拡大から生じる可能性が高いが、これはテスト時の推論レイテンシを増やす
  • データを増やす方法も性能を改善する
    • MNIST全体を活用し、学習セットを7,291個から50,000個へ約7倍に増やした
    • 既存のbaseline学習を100 passで実行すると、テスト誤りは2.74%、miss 54に改善した
  • データ拡張に現代的手法を組み合わせた結果が最も良かった
    • 学習誤り1.07%、テスト誤り1.25%、テストmiss 24
    • 1989年にデータセットを大きくするだけでも、推論レイテンシなしにシステム性能を引き上げられた

1989年から2022年、そして2055年へ続く観察

  • 33年の間、マクロな構造は大きく変わらなかった
    • 依然としてレイヤーで構成された微分可能なニューラルネットワークアーキテクチャを作り、バックプロパゲーションと確率的勾配降下でエンドツーエンドに最適化する
    • 違いは、当時の規模がはるかに小さかった点である
  • 1989年のデータセットとモデルは現代基準では非常に小さい
    • 学習セットは7,291枚の16x16グレースケール画像だけである
    • 現代のビジョンデータセットは、Webから集めた数億枚の高解像度カラー画像まで使用する
    • Google JFT-300M、4億枚の画像で学習したOpenAI CLIPのような例がある
    • 入力ピクセルデータ基準で、およそ100,000,000倍多いと計算している
  • 1989年のネットワークは約9,760個のパラメータ、64K MACs、1K activationsだった
    • 現代のビジョンニューラルネットワークは数十億パラメータと約1e12 MACs規模に達している
    • 自然言語モデルは兆単位のパラメータまで行き得る
  • 2022年を2055年から振り返るなら、似たパターンが繰り返される可能性があると仮定している
    • 2055年のニューラルネットワークは、マクロには2022年のニューラルネットワークとほぼ同じだが、より大きい
    • 今日のデータセットとモデルは約10,000,000倍小さいものに見えるかもしれない
    • 2022年の最先端モデルも、個人用コンピューティングデバイス上で週末プロジェクトのように約1分で学習できると想像している
    • モデル、損失関数、拡張、オプティマイザの細部を変えるだけで誤りを半分程度減らせると想定している
  • 特定タスクについてニューラルネットワークをゼロから学習する方式は、急速に時代遅れになりつつある
    • GPTのようなfoundation modelは、大規模な計算資源を持つ少数の機関が学習する
    • ほとんどのアプリケーションは、ネットワークの一部の軽いfine-tuning、prompt engineering、または小さな特殊目的推論ネットワークへのデータ・モデル蒸留によって実装できる
    • 極端には、2055年にユーザーが10,000,000倍大きなneural net「megabrain」に英語で話しかけたり考えたりして作業を依頼し、自分でニューラルネットワークを学習する必要が減るという図もあり得る

1件のコメント

 
GN⁺ 2023-08-27
Hacker Newsのコメント
  • もう一つ興味深い点がある。元の学習は Sun 4/260ワークステーションで3日かかっており、正確な仕様は見つけられなかったが、初期のSPARCワークステーション時代ならシステム全体の消費電力はおおよそ200Wだったと思われる
    CPU自体はそれほど高消費電力ではなかったが、ディスクやモニターまで含めたシステム全体ではその程度だった可能性が高い。すると200W × 72時間 = 14,400Wh
    Karpathyは同じ水準の学習をMacBook上で、しかもフル活用していない状態で90秒で回した。ざっくり20W × 0.025時間 = 0.5Whだとすると、エネルギー効率はほぼ30,000倍改善したことになる

    • これはかなり興味深い。ニューラルネットワークの性能は常に、エネルギーを分母に置いた単位で測るべきだと思ってきた
    • ムーアの法則を考えると、30,000倍でもそれほど大きくは聞こえない。1989年以降ならもっと大きな改善を期待していた気がするし、スーパーコンピュータの性能は当時から100万倍以上伸びている
    • Whなら定数倍が違うだけで、**ジュール(J)**のことではないのか?
  • 本当に良い記事だった。ただ、2055年の予測がメタ線形的である点は惜しい。現在の技術をそのままにして33年後まで数値を線形回帰するというありがちな誤りは避けているが、それでも現在を原点にした一種の世界線対称性を前提にしているように見える
    時間幅が十分に長いので、予想外のブレークスルーや障害のせいで、これらの予測は一つも当たらないかもしれない。誰かが「パーセプトロン++」よりはるかに単純な基盤構造を見つけるかもしれないし、みんなが3Dガウス雲を学習しているかもしれない。量子コンピュータがついに本格化して、私たちが使う構成要素を呼ぶ名詞すらまだ存在しないかもしれない
    逆に、ハードウェアや学習でこれまで見えていなかったスケーリング限界にぶつかったり、文明的な後退が起きたりする可能性もある。それでも自分が賭ける立場なら、この記事の結論にあえて逆張りはしない。過去と現在だけを知って外挿するなら、おそらく最善に近い結論だと思う

    • その通りだと思う。今後33年は、現在とはかなり違ったものになる可能性が高い
      私は変化がより劇的になる側に傾いている。リソースだけでなく、アルゴリズム改善の余地が大きいからだ
      より分かりやすいところでは、多くのライブラリは、すでに知られているさまざまな勾配最適化手法をまだ十分に活用できていない。データと処理量をただ増やすほうがあまりに簡単だったため、まだ適用できる道具が積み上がっている
      そして成功した大規模モデルは重要な手がかりを与えている。例えば言語モデルは、私たちが思考を処理する方法に似た一種の言語的論理を学んでおり、非常に異質な情報同士をもっともらしく結び付けられることは明らかだ
      いつかその処理の本質をつかめば、言語処理は急激に単純化できるかもしれない。これは急進的な構造・アルゴリズム発展の機会の一つにすぎず、実際に革命的なものになるだろう
  • では、今後33年間は同じことをしつつ、データと計算力だけをさらに増やせばよいのだろうか? LLMが初めて登場したときの「自分の生きている間に、ついにこんなことが起きるとは」という熱狂と、「モデルとデータを大きくしさえすればよい」という雰囲気を論理的に押し進めると、そうなる。しかし本当にブルートフォースだけでAGIまで到達できるのだろうか?
    33年前には「コネクショニストAI」が支配的なパラダイムだったわけではなく、「シンボリックAI」だけが別のアプローチだったわけでもない。物理世界と相互作用しなければ真の知能は持てないという「ロボット機能主義」のようなアプローチもあった
    33年後には、こうした別のアプローチがコネクショニズムと結び付いて復活するかもしれないし、まったく新しいアプローチが出てくるかもしれない

  • 素晴らしい記事だ。人工ニューラルネットワークの初期を直接経験している。1980年代半ばにはDARPAのニューラルネットワークツール諮問パネルに参加し、SAIC ANSim商用製品の最初のバージョンを書き、会社がFAA契約で作った爆弾探知機に配備された単純なバックプロパゲーションモデルも作った
    5〜6年前にはCapital Oneで「伝統的な」ディープラーニングチームも管理していた。この18か月は本当に刺激的な時間だった。できるだけ多くの時間を、セルフホストLLMやHugging Face、OpenAIなどのAPIを探索することに費やしている
    今から33年後の技術を考えるだけで、頭が爆発しそうになる

  • 最も根本的な変化は、モデルが何によって学習されるかの違いだ
    小さな文字画像はクイズのような問題に近く、人類全体の言語的・視覚的コミュニケーションを実質的に学習することとはまったく違う
    今後33年でコンピューティング資源がさらに拡大しても、人類の行動と知識を模倣するモデルを学習する段階にとどまることはないだろう。その問題、つまり私たち自身は、ずっと前におもちゃ問題へと縮小されているはずだ

    • AIモデルは合成データを生成し、フィルタリング・改善したうえで再び学習する形で進化していくと思う。コード実行、検索、人間、シミュレーション、ロボットのような外部システムがループに入ることもあるだろう
      品質は低下しないはずだ。データのフィルタリングと多様性確保に多くの労力が注がれるからだ。モデルにより多くの時間を与えることで、いつでも改善できる
      モデル構造はデータセットに比べれば重要ではない。同系統のどんなモデルでも同じデータから同じ能力を学べるが、データを変えればすべての能力が変わる。知能はデータの中にある
      未来はモデル構造の設計ではなく、データエンジニアリングだ。たとえるなら、人間の文化は人間の生物学よりも速く進化する。データはモデルより速く進化している
      最近のAIでは、新しい構造は急速に減り、さまざまなデータセットが同じTransformerモデルに適用される流れが見える。Transformerの中でも広く使われる変種はごく少なく、何千もの変種は捨てられた
      知能の真のエンジンは、ミームを通じた言語進化だと考えたい。私たちとAIはともに、言語の指数関数的成長に乗っている
    • まずは自動運転というおもちゃ問題だけでも、ほぼ解決してほしい。まだ待っているところだ
  • 計算能力が今後33年間、以前と同じように拡大し続けるかは明らかではない。だが、必ずしもそうである必要もない。
    読みながら、「なんてことだ、あの週末の趣味の機械学習プロジェクトで MSE を使ってうまくいかなかったのを覚えている。損失関数の選び方を間違えていたんだ」と思った。
    現在の LLM、あるいは来年の LLM は、私のコードやグラフをどう改善できるかを十分に教えてくれるはずだ。そうなれば、本来なら5万時間の熟練の蓄積が必要なために私には閉ざされていた、専門家級の手法を適用できるようになる。
    私の一部は、人間は終わっていて、33年後には人間が無意味な世界を作っているだろうと言う。だが別の一部は、そうした運命やあらゆる破滅を避けられるなら、未来はかなり明るいかもしれないと言う。

    • 「来年の LLM」のような話はすでにたくさん聞いてきたし、これからも聞き続けるだろう。最後の5ヤードが最も難しく、それなしではその前の5マイルも効用は限られる。
    • いつか、悪い結果を避けるために AI を非常に、非常に大きく減速させなければならない時点が来るように思う。Zvi Mowshowitz の見方に同意する。絶滅リスクのある領域を除くすべての分野では、進歩とリスクテイクを奨励すべきだ。
      今日の LLM をあらゆる問題に適用したからといって、私たちが終わるわけではない。だが、意識を持ち、計画できる AGI が数年以内に登場するかもしれず、彼らをどれほど賢くできるのか、その上限も分からない。
      私たちは、世界に招き入れるあらゆる知的存在に対して責任があると思う。親になるための試験がないことを嘆く人もいるが、まったく新しい仮想の脳を100万個コピーして作るとなるとどうだろうか。しかも、事実上の終身労働に就く存在として生まれさせるのだ。
  • 本当に良かった。明示的には扱われていなかったが、33年後の違いはモデルが扱う入力にあると思う。1989年の最先端モデルは 16×16 のグレースケール画像を使っていたが、今では1桁メガピクセルのカラー画像がある。
    30年後にはデスクトップが CLIP を90秒以内に学習できるかもしれないが、そのときの最先端モデルは何で学習されるのだろうか。

    • 次にどのトークンを打つかよりも、はるかに一般的な形での人間の行動だろう。基本的なディープラーニング手法で人間をできるだけ忠実に模倣するには、人間行動全般を予測できる何かを学習する必要がある。
      そのためには、さまざまな人々があらゆる人間活動をしている、数十億から数千兆時間分の映像と音声、おそらくそれ以外の多くの入力が必要になるだろう。
    • 携帯電話のカメラで簡単に得られるメガピクセル画像はあるが、実際に広く使われているほぼすべてのビジョンモデルは、入力として224×224解像度、または 384×384 程度を受け取る。それより高い解像度は結局ダウンサンプリングされる。
      今は計算予算を、より良い「目」よりも、より大きな「脳」に使うほうがよさそうだ。
    • Vision Pro のようなヘッドセットで取得した数百万時間のデータかもしれない。
      正確に何をキャプチャするのかは分からないが、音声・映像・空間情報・虹彩など、複数の入力の組み合わせでモデルを学習できるだろう。
  • その期間中、ニューラルネットワークへの関心がほぼ完全に失われ、その後戻ってきたという点が興味深い。

    • 大学で AI の授業を何度も履修し直さなければならなかった。「AI は記号的探索である」という見方に同意できなかったからだ。
      今はきっと、人々が LLM をつなぎ合わせて順方向・逆方向の推論をさせているはずだ。
    • この場合には復活するだけのよい理由があるが、実のところソフトウェアに関わるほぼすべてのものでも同じように繰り返される。ただし、より主流の技術ほど流行のサイクルは短い傾向がある。
    • それは Hinton に感謝すべきだ。ソフトウェアにノーベル賞がないのは残念だ。
      それでも Turing Award もかなり素晴らしい。
  • どれほど変わっていないかと、どれほど大きく変わったかが同時に驚きだ。「RNN の不合理な有効性」を読んだとき、どれほど啓示のように感じたかを覚えているし、今はまったく別の世界に住んでいるように感じる。

    • 2015年のあの仕事を一種のベースラインとして置けば、私たちはもっと建設的で落ち着いた対話ができると思う。
      新しい技術ははるかに優れており、今後の含意も大きい。だが、その頃から関心を持っていた人たちには、「めちゃくちゃ良くなった」がただちに「制御不能だ」へとつながるわけではない参照点があった。
      はるかに良くなったのは確かだ。
  • Andrej Karpathy の文章はいつも新鮮だ。知れば知るほど、機械学習科学の基礎をより直接的かつ単純に探究している。
    この分野には、再現すら難しい小さな改善のために複雑な新構造を提案し、最新結果を上回ることを期待して役に立たない50ページを埋め、自分の仕事を「真剣」に見せようとする論文があふれている。