サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
qiita.com/pocokhc
ED法の記事その3です。 その1:金子勇さんのED法を実装してMNISTを学習させてみた その2:ED法を高速化してその性能をMNISTで検証してみた もう記事を書く予定はなかったんですが、思ったより頭から離れなかったので記事に起こしました。 今回はED法をTorchとTFで実装し交差エントロピーとReLUを実装しました。 なので正規のMNISTを学習してみたいと思います。 最後にBitNet×ED法を試して考察しています。 本記事を含めたED法のコードをGithubに作成しました。 追加の実装 ED法+交差エントロピー まずは今までの平均二乗誤差(MSE;Mean Squared Error)のイメージです。 MSEのlossは(正解データ-出力)で表され、それをED法で学習します。 次に交差エントロピーのイメージです。 各出力に対してED法ニューラルネットを作成し、その出力達をsoft
追記:続きを書きました。 その2:ED法を高速化してその性能をMNISTで検証してみた その3:ED法+交差エントロピーをTF/Torchで実装してみた(おまけでBitNet×ED法を検証) はじめに 先日以下の記事が投稿され、その斬新な考え方に個人的ながら衝撃を受けました。 内容をざっくり言うと、ニューラルネットワークの学習を現在の主流であるBP法(誤差逆伝播法)ではなく、ED法(誤差拡散法)という新しい学習手法を提案しているものです。 もし記事の内容が本当ならニューラルネットワークの学習がO(1)でできてしまう事になり、まさしく革命が起きてしまいます。 (結論からいうと速度面はそこまででもなかったです(それでも早くなる可能性あり)) (ただこの新手法のポテンシャルは革命を起こす可能性は秘めているといっても過言ではありません) ED法に関してネットを探すとインターネットアーカイブに情報が
はじめに 最近の機械学習の発展はすごいですね。 特に大規模言語モデル(LLM;Large Language Model)の発展が目覚ましく、ChatGPTをはじめ目に見える形で成果が出始めています。1 この技術の進歩に置いて行かれないようにLLMを勉強しつつ強化学習に実装してみました。 記事としては前半はLLMの利用、後半は強化学習のDQNにLLMを組み込んだ実装となります。 PythonからLLMの利用 LLMの利用はBERTでもお世話になったHugging Faceを使います。 ドキュメントがかなり充実しており、チュートリアルをベースに進めてみました。 また今回実行している環境は以下です。 OS : Windows11 Python: 3.12.2 GPU : GeForce RTX3060(memory 12GB) CUDA : 12.1.1 (Torchに合わせています) # To
はじめに 2/27にMicrosoftから BitNet b1.58 に関する論文が発表されました。 これはモデルの推論を従来の小数でするのではなく、ビットで推論する事により速度・メモリを含めたエネルギーの省力化を実現した内容となります。 (ディープラーニングにおいて、こういったモデルを低ビット等に離散化して計算量を減らす技術のことを量子化といいます) (ちなみに私は量子化分野はほとんど分からないので間違っている内容があればすいません…) 論文では主にTransformerの利用に言及していますが、仕組み自体は単純でニューラルネット全般に適用できるので、そちらの視点をメインに書いています。 また、BitNetに関する解説記事はすでに分かりやすい記事があるので、この記事では技術メインに解説していきます。 ・【論文丁寧解説】BitNet b1.58とは一体何者なのか また実装に関してですが、多
この記事は自作している強化学習フレームワークの解説記事です。 はじめに 今までフレームワークを通じて様々な強化学習アルゴリズムを実装してきました。 今回その知識を生かしてオリジナルなアルゴリズムを考えてみたので記事にまとめてみます。 このアルゴリズムは以下の状況でかなりの精度を誇ります。 マルコフ決定過程なモデル 状態が離散で現実的な数 行動が離散で現実的な数 ※"現実的な数"というのは数に上限があり、その上限がそれほど大きくない場合を指します 基本アイデア 基本的なアイデアは探索(Exploration)と活用(Exploitation)の分離です。 強化学習では一般的に「探索と活用のトレードオフの問題」1があり、探索を優先すると報酬が少なくなり、活用を優先すると局所解に陥る可能性が高くなる問題があります。 私が過去に記事で取り上げた手法では、どれも探索と活用のバランスをとり学習を進めて
この記事は自作している強化学習フレームワーク SimpleDistributedRL の解説記事です。 前:AlphaZero 次:Stochastic MuZero 今回はAlphaZeroの後継であるMuZeroについて解説します。 MuZero AlphaZeroは木探索時にゲームのルールを使うという問題がありました。 (1手進めた後、盤面の状態を知る必要がある) これではルールを知っている環境にしかAlphaZeroが使えないので、強化学習で一般的に想定されるマルコフ決定過程(MDP)の環境にも使えるように拡張したアルゴリズムがMuZeroです。 (以降本記事で環境を区別する場合、マルコフ決定過程(MDP)の環境をAtari環境、囲碁や将棋などをボードゲーム環境と言って区別します) MuZeroではゲームのルール自体を学習する事で、ゲームのルールが不明なMDP環境下でも学習を可能に
この記事は自作している強化学習フレームワーク SimpleDistributedRL の解説記事です。 次:AlphaZero はじめに モンテカルロ木探索は強化学習のアルゴリズムというより木探索アルゴリズムの一種という位置付けです。 ただこれの発展系として、AlphaGo,AlphaZero,MuZeroといった有名なアルゴリズムがあるのでまずは説明していきたいと思います。 また以前に記事(第11回 今更だけど基礎から強化学習を勉強する モンテカルロ木探索編)を書いていますが、フレームワークに沿った内容として改めて書いています。 モンテカルロ法(Monte Carlo method; MC) モンテカルロ法をざっくり言うと、適当な回数ランダムに実行してみてその結果から結論を導くアルゴリズムです。 主に確率または期待値の近似値を求める手法として使われます。 (強化学習では予測値を求める手法
この記事は自作している強化学習フレームワーク SimpleDistributedRL の解説記事です。 DQNについては昔記事を書いていますが、知識も更新されているので改めて書いています。 前:Q学習 次:Rainbow DQN(Deep Q-Networks) 略称がネットスラングと重なったのは偶然らしいです。 また、時代背景的に初めて強化学習に深層学習(ニューラルネットワーク)の技術を採用して成果を出したことで有名になった手法となります。 Q学習の一番の問題点は、状態が離散かつ有限状態でしか表現できなかったことです。 例えば以下のマリオの位置を考えます。 マリオの座標が 1.1 と 1.11 はほぼ同じ状態とみて問題ありません。 しかし、Q学習ではこれが別の状態と認識されてしまいます。 こういう連続値は状態数が無限になるのでQ学習では学習ができません。 そこでQテーブルをニューラルネッ
初心者ながらKaggleに挑戦した時のコードを備忘録として残しておきます。 今回は自然言語編です。 また、BERT編を別記事にする予定です。 ・Kaggle関係の記事 Kaggleのタイタニックに挑戦してみた(その1) Kaggleのタイタニックに挑戦してみた(その2) Kaggleで書いたコードの備忘録~データ分析で使った手法一通り~ Kaggleで書いたコードの備忘録その2(ここ) KaggleタイタニックでNameだけで予測精度80%超えた話(BERT) 作成したコード Kaggle notebook 1.データ Kaggleチュートリアルのタイタニックを使います。 # import import numpy as np import pandas as pd from matplotlib import pyplot as plt import seaborn as sns imp
初心者ながらKaggleに挑戦した時のコードを備忘録として残しておきます。 ・Kaggle関係の記事 Kaggleのタイタニックに挑戦してみた(その1) Kaggleのタイタニックに挑戦してみた(その2) Kaggleで書いたコードの備忘録その1(ここ) Kaggleで書いたコードの備忘録その2~自然言語処理まとめ~ KaggleタイタニックでNameだけで予測精度80%超えた話(BERT) 1.データ import 全体的に使うライブラリです。 各項目で使うライブラリはそちら側でimportを記載しています。
今回はDDPGを実装してみました。 第6回 PPO編 第8回 SAC編 ※ネット上の情報をかき集めて自分なりに実装しているので正確ではない可能性がある点はご注意ください ※ライブラリはTensowflow2.0(+Keras)を使っています。 コード全体 本記事で作成したコードは以下です。 GoogleColaboratory 追記:自作フレームワークを作成しています。そちらにも実装があります。 DDPG(Deep Deterministic Policy Gradient) DPGは連続行動空間を制御するために考案されたアルゴリズムで、Actor-Criticなモデルを用いて行動価値と方策を学習しますが、方策勾配法を使わずに学習するというちょっと変わった手法になります。 DPGにディープラーニングを適用した手法がDDPGです。 参考 DDPGでPendulum-v0(強化学習, tens
強化学習の評価でよく使われるAtariのゲームですが、ついに57全てのゲームで人間を超えた手法が現れたようです。 早速実装してみました。 ※ネット上の情報をかき集めて自分なりに実装しているので正確ではない点はご了承ください ※解釈違いの内容がある可能性もご注意ください(理解が追いついていない部分があります) コード全体 本記事で作成したコードは以下です。 github GoogleColaboratory(実行結果付き) ※GoogleColaboratoryはmultiprocessingの相性が悪いらしく1Actorのみの学習となります) ※MountainCarの学習をのせています 追記:自作フレームワークを作成しています。そちらの実装の方が正確なコードとなります。 目次 構成としては前半が技術解説で後半が実装の説明になります。 Agent57とは NGU(Never Give Up
Keras のステートレスLSTMとステートフルLSTMの勉強です。 ネット上の情報をかき集めて自分なりに実装しているので正確ではないところがある点はご了承ください。 追記:ステートフルLSTMと hidden state に関して記事を書きました。 Keras のステートフルLSTMと hidden state の関係を調査してみた 目次 KerasのステートレスLSTMとステートフルLSTMについて 実験に使うモデルセットの説明(アルファベット予測) 実験1:「1 文字 => 1 文字」マッピング 実験2:「3 文字特徴ウィンドウ => 1 文字」マッピング 実験3:「3 文字タイムステップ・ウィンドウ => 1 文字」マッピング 実験4:バッチサイズ 実験5:hidden state の保存と設定 コード全体 本記事で作成したコードは以下です。 ※1ファイル完結です。 ※Google
このページを最初にブックマークしてみませんか?
『@pocokhcのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く