タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

*algorithmと*programとpythonに関するsh19910711のブックマーク (236)

  • 簡単な迷路問題を例に強化学習を実装 〜テーブルのQ学習とDQN〜 - Qiita

    S: スタート G: ゴール W: 壁 このような複数経路ある迷路を、スタートからゴールまで最短で到達することを目指します。 ちなみにこの迷路は迷路自動作成ツールを使って作りました。 エージェントはマップ全体を見ることができず、上、下、左、右の4つのどれかの行動をした結果、移動できれば移動し、移動できなければ(壁なら)その場に留まります。 暗闇で移動しているイメージです。 移動した結果、ゴールならゴールであると認識できます。 テーブルのQ学習 実装部分 呼び出し側 Qテーブル テーブルのQ学習では、「状態$s$ $\times$ 行動$a$」の価値を表すテーブル$Q(s, a)$を持ち、これを更新していくことで学習を進めます。 迷路の例では、状態$s$は位置情報、行動$a$は上下左右の4つです。 学習(更新式) 状態$s$で行動$a$を選択して、状態$s'$になったときに、価値テーブル$Q

    簡単な迷路問題を例に強化学習を実装 〜テーブルのQ学習とDQN〜 - Qiita
    sh19910711
    sh19910711 2024/03/12
    "古典的なテーブルのQ学習とそれをニューラルネットで表したDQNの実装 / Deep Q Network(DQN): 行動した履歴を蓄えておく + 学習に使うデータは蓄えられたメモリからランダムにサンプリング / 一定確率でランダムな行動" 2021
  • PyTorch Tabular による表形式データの深層学習 - プログラムを自動生成したい

    sh19910711
    sh19910711 2024/03/10
    "PyTorch Tabular: PyTorch や PyTorch Lightning の上に実装 + 手軽に表形式データ(pandas のデータフレーム)に対する深層学習を実現することを狙い / TabNetの実装が提供されている" 2021
  • Seq2seqモデルのBeam Search Decoding (Pytorch) - The jonki

    この記事では,Pytorchで作ったseq2seq型の翻訳モデルを使って,ビームサーチによるデコーディングをします. OpenNMTやfairseqを使えば簡単に利用できるのですが,ビームサーチのためだけにこのようなフレームワークを使うのはちょっとなぁ,ということと,ビームサーチ自体はDNNに限らず様々な場面で役に立つ手法なので,この際ピュアに実装してみた,というのがこの記事です. ちなみに一般的なseq2seqのデコードは,各タイムステップで予測したtop-1の単語を,次ステップのデコーダーの入力に使います. ビームサーチでは,このようなgreedyな条件を緩め,上位K個の予測を使って,デコードしていきます.ビームサーチをよく知らんという方は,Andrew Ngの神説明が参考になると思います. C5W3L08 Attention Model, Andrew Ng. できたもの seq2s

    Seq2seqモデルのBeam Search Decoding (Pytorch) - The jonki
    sh19910711
    sh19910711 2024/03/09
    "ビームサーチをよく知らんという方は,Andrew Ngの神説明が参考になる (C5W3L08) / 上位K個の結果の取得は,pytorchであればtorch.topk関数で簡単に値とその引数を取得できる" 2020
  • Chainerでマルチタスクニューラルネットワークを実装した - 人間だったら考えて

    注:この記事の実装は非効率的かもしれません. この記事は何? マルチタスク学習をニューラルネットワークに適用した研究がいくつか報告されています. 適用例として,Georgeら(2014)の研究では,タンパク質に対する化合物の活性予測にニューラルネットワークを用いたマルチタスク学習を適用しています. また,Xiaodongら(2015)の研究では,自然言語処理のタスクとしてクエリ分類と情報検索の2つのタスクを同時に解くマルチタスク学習を提案しています. 私はDNNを実装する時はChainerを使っているのですが,Chainerでマルチタスク学習を実装した例が見当たらなかったため自分で実装してみました. ネットワーク構造 解くタスクは2つとします.2つのタスクに対応するネットワークが存在し,それぞれのネットワーク間で一部の層を共有するようなネットワーク構造を考えます(下図参照). 学習の進め方

    Chainerでマルチタスクニューラルネットワークを実装した - 人間だったら考えて
    sh19910711
    sh19910711 2024/03/08
    "Xiaodongら(2015)の研究: クエリ分類と情報検索の2つのタスクを同時に解くマルチタスク学習を提案 / 2つのタスクに対応するネットワークが存在し,それぞれのネットワーク間で一部の層を共有" doi:10.3115/v1/N15-1092 2017
  • 実務で使えるニューラルネットワークの最適化手法 - Taste of Tech Topics

    メリークリスマス。 @tereka114です。 記事はDeep Learning論文紹介 Advent Calendar 2019の25日です。 qiita.com 私はKaggleの画像コンペに頻繁に参加しています。 そのときに、毎度選定にこまるのがニューラルネットワークの最適化手法(Optimizer)です。 学習率やWeight Decayなどハイパーパラメータが多く、選択パタンが無数にあると感じています。 そのため、Kaggleでよく利用される(されうる)最適化手法を振り返ります。 もちろん、実務でも十分使えるので、皆さんの学習に活かしてくれると幸いです。 最適化手法 SGD(Momentun) Adam AdamW AdaBound RAdam 実験 Optimizer間の比較 RAdamとAdamの学習率 AdamWのWeight Decayの値 最後に 最適化手法 今回紹介

    実務で使えるニューラルネットワークの最適化手法 - Taste of Tech Topics
    sh19910711
    sh19910711 2024/03/06
    "Adam: SGDと比較して収束が安定しない / RAdam: Warmupと呼ばれる最初に小さい学習率で学習し、通常の学習率で学習させていく手法 + このWarmupを人手で行うのではなく、分散を考慮した学習率を推定" 2019
  • 「TensorFlowはじめました2」を読んだ - すぎゃーんメモ

    sh19910711
    sh19910711 2024/03/06
    "第3章: 「予想に反し上手くいかない」「原因を推察する」「改善し試してみる」という過程がとても丁寧に書かれていて、とても面白い / 第4章ではさらに踏み込んで質を向上させるための実験、評価について" 2017
  • PFRLでスーパーマリオ1-1をクリアするまで - Qiita

    以前はStableBaselinesを使っていましたが、ニューラルネットワークの構造をいじりにくいことやアルゴリズムに手を加えにくいと思っていました。ネットワークにAttentionを加えるだけでも一苦労でした。 そもそもTensorFlow向けであった点も使いづらかったので、PyTorch向けの深層強化学習ライブラリを探していたところPFRLというライブラリを見つけました。 Hello World代わりにスーパーマリオブラザーズ1-1をクリアしてみようと思います。 まずネットワークを定義します。 class Network(nn.Module): def __init__(self, hidden_dim, space_shape, n_actions): super(Network, self).__init__() h, w, c = space_shape self.hidden_

    PFRLでスーパーマリオ1-1をクリアするまで - Qiita
    sh19910711
    sh19910711 2024/03/05
    "StableBaselines: TensorFlow向け + ニューラルネットワークの構造をいじりにくい / PyTorch向けの深層強化学習ライブラリを探していたところPFRLというライブラリを見つけました" 2021
  • dlshogiのPyTorch Lightning対応 - TadaoYamaokaの開発日記

    dlshogiの学習は、PyTorchを使用して、モデルの訓練処理を独自に実装していた。 マルチGPUによる分散学習に対応させようと考えているが、独自に実装するより、PyTorch lightningに対応させた方が実装が楽になるため、dlshogiをPyTorch Lightningに対応させたいと考えている。 まずは、訓練の基部分の実装を行った。 PyTorch Lightning CLI ボイラープレートをできるだけ削除するため、PyTorch Lightning CLIを使用して実装する。 PyTorch Lightning CLIを使用すると、コマンド引数のパース処理など含めて自動で行ってくれる。 起動部分の処理は以下のように記述するだけでよい。 def main(): LightningCLI(Model, DataModule) if __name__ == "__main

    dlshogiのPyTorch Lightning対応 - TadaoYamaokaの開発日記
    sh19910711
    sh19910711 2024/03/04
    "PyTorch Lightning CLI: コマンド引数のパース処理など含めて自動で行ってくれる / データセットとデータローダをデータモジュールというクラスで管理 / データモジュールのコンストラクタの引数をconfigファイルに記述できる"
  • RでKerasを使う(短歌手習い編) - Qiita

    概要 『新しき 年の始めの うれしきは 古き人どち あへるなりけり』 以前に{tensorflow}のPythonライブラリをimportする関数を用いることで、gensimを活用できるという記事を書きました。 これにより、R/RStudio上ですべてを管理したい/されたいRおじさん(重度なRユーザーを指す。女性でも「おじさん」と呼称するので、淑女の方々はご配慮いただきたい)のできる幅が広がったと言えます。 今回はさらにTensorflowとTheanoのラッパーであるKerasというライブラリを用いてモデルを構築し、新年の挨拶によさそうな短歌の生成を試みました。具体的には「上の句を入力することで下の句を生成する」というタスクを設定しています。 なお、{tensorflow}自体の設定や使い方などは{tensorflow}でデータ分析のHello Worldであるirisデータの分類を行っ

    RでKerasを使う(短歌手習い編) - Qiita
    sh19910711
    sh19910711 2024/03/04
    "R上からKerasを用いたモデルを構築し、短歌のデータを適用して下の句を生成することに挑戦 / 上の句と下の句で対応づけるようにしているので、画像でよく採用されているCNNによるアプローチも使えるかも" 2017
  • PyTorch 2.0の新しいコンパイラで機械学習を速くする – Rest Term

    12/02にPyTorch 2.0のアナウンスがありました。まだnightly版(α版)で正式リリースされるのは2023年3月頃のようですが、機能自体は試すことができるので早速使ってみました。 12/05現在、絶賛検証中なので結論のようなものは書けませんが、全体の傾向としては概ね公称通りに高速化の効果が認められました。 精度が低下することはない 小さなモデルに対して、学習は速くならず、コンパイルオーバヘッドのためepochsが少ない場合は全体として遅くなる、GPU使用率はAMPだと僅かに低くなる傾向 大きなモデルに対して、学習は速くなり(約5 ~ 30%高速化)、デフォルト設定ではVRAM使用率は少し低くなる(5 ~ 10%弱程度) GPUだけでなくCPUも効率良く使えるケースだと特に高い効果が期待できる コンパイルオプションはいくつかあるけどデフォルトで使うのが一番良さそう あくまで後述

    PyTorch 2.0の新しいコンパイラで機械学習を速くする – Rest Term
    sh19910711
    sh19910711 2024/03/02
    "torch.compile: 公式ドキュメントはものすごく重厚長大で同じ事を何度も書いていましたが使い方はシンプル + GPUだけでなくCPUも効率良く使えるケースだと特に高い効果が期待できる" 2022
  • PyTorch を使って Transformer による翻訳モデルを実践する - 見習いデータサイエンティストの隠れ家

    DeepLGoogle 翻訳などの翻訳サービスは、既に人間以上の性能になっており、多くの人々が日常的に使用しています。このような翻訳サービスに使われている予測モデルは、BERT や GPT-3 によって近年精度が格段に上がりました。そして、これらのモデルのベースになっているのが、今回実践する Transformer です。 今回は、その Transformer を使って翻訳モデルを作ります。Transformer のアルゴリズムの詳細に関しては触れないので、気になる方は以下の記事をご覧ください。私も参考にさせていただきました。 qiita.com 今回のコードはこちらにあります。大部分は PyTorch の公式HPのトライアルを参考にしているので、原文が気になる方はこちらをご覧ください。 準備 必要なモジュールのインポートとディレクトリの設定 学習に使うデータの取得 データを学習用の

    PyTorch を使って Transformer による翻訳モデルを実践する - 見習いデータサイエンティストの隠れ家
    sh19910711
    sh19910711 2024/03/01
    "出力データも使って学習させるため、何も処理をしなければ答えを知った上で答えを導き出すというチート状態 / ◯文字目以降の出力データがモデルに入力されないようにマスクする" 2021
  • DenseNetの論文を読んで自分で実装してみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? DenseNetの論文を読んでみたのでまとめと、モデルを簡略化してCIFAR-10で実験してみた例を書きます。DenseNetはよくResNetとの比較で書かれますが、かなりわかりやすいアイディアなのが面白いです。 元の論文 G.Huang, Z.Liu, L.van der Maaten, K.Q.Weinberger. Densely Connected Convolutional Networks. IEEE Conference on Pattern Recognition and Computer Vision (CVPR),

    DenseNetの論文を読んで自分で実装してみる - Qiita
    sh19910711
    sh19910711 2024/02/29
    "論文では1x1畳み込みをボトルネック層と呼んでいます / ボトルネック層: フィルター数を一定に統一 + パラメーター数が爆発的に増加しにくくなるメリット" / 2018
  • llama.cpp で LLM を AWS Lambda で動かしてみる

    こんにちは、初めましての方は初めまして。株式会社 Fusic で機械学習エンジニアをしている瓦です。「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった一ヶ月前の日記を眺めながら、日記を付けることの難しさに絶望しています。 この記事では llama.cpp を使って、AWS Lambda で LLM を動かしてみます。LLM を使おうとすると、大きなメモリの載っている GPU を用意して、という流れに大体なりますが、もちろん誰でも強い GPU が使える環境を得られるとは限りません。また GPU を使おうとするとそれなりの金額を覚悟しないといけないことも多いです。そこで CPU でも動く環境を作って、サーバレスな環境で動くかを試してみようと思います。 準備 モデルの量子化 今回は Stablity.ai が公開している Japanese StableLM-3B-4

    llama.cpp で LLM を AWS Lambda で動かしてみる
    sh19910711
    sh19910711 2024/02/28
    "Lambda で LLM / 「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった / モデルの量子化 (llama.cpp): README の Prepare and Quantize に基本的に従えばよい / llama-cpp-python を使って量子化したモデルを読み込み"
  • PyTorchを使ってCNNで文章分類を実装してみた - Qiita

    はじめに そういえば自然言語を畳み込んだことなかったなぁと思い、いつ必要になるかわからんので、どんなもんなのか雰囲気を確かめるために実装のお勉強をしてみました。 自分みたいに普段は自然言語処理ばかりしていて、CNNに不慣れな人向けに実装重視で解説してみます。 検証するタスクは、livedoorニュースコーパスの文をカテゴリに分類する問題とします。 実装環境はGoogle Colabを使っています。 以下の文献を参考にしました! https://arxiv.org/pdf/1510.03820.pdf CNNで文章分類をしている論文で、今回の実装もこの論文で紹介されているアーキテクチャーを参考にしています。 https://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural-networks-for-nlp

    PyTorchを使ってCNNで文章分類を実装してみた - Qiita
    sh19910711
    sh19910711 2024/02/28
    arXiv:1510.03820 / "ベクトル方向(行方向)全体に対して、隣接する単語ベクトルをひとまとまりにして畳み込む / 異なる単語分散表現(word2vecとfasttextみたいな)などを使って、複数チャネルとみなす方法もある" / 2021
  • サウンド系の深層学習に使うtorchaudio - deoxy’s diary

    この投稿はrioyokotalab Advent Calendar 2020 21日目の投稿です。 adventar.org サウンド系の機械学習 PyTorchを使ってなにかするとなると、なぜか多くの人は画像をどうにかしようとしがちな気がします。特にブログとかでやってみた的な記事だとその傾向が強いと思います。確かにインパクトはありますし...。 画像処理はやり尽くされている感はありますが、音声系って意外とやられていない要素が多いように思います。もし、PyTorchで音声に関する機械学習を行いたいのであれば、この記事が参考になればと思います。 サウンド系機械学習のスタンダードな実装 音声というのは波情報です。それをそのまま1次元CNNにかけるというのでもいいのですが、波情報のままだと、情報が冗長すぎます。なので、基的にはスペクトログラム1と呼ばれる、二次元情報に変換し、それを画像処理ベー

    サウンド系の深層学習に使うtorchaudio - deoxy’s diary
    sh19910711
    sh19910711 2024/02/26
    "PyTorchを使ってなにかするとなると、なぜか多くの人は画像をどうにかしようとしがち / 音声というのは波 + 情報が冗長すぎ / 二次元情報に変換し、それを画像処理ベースのCNNにかけて特徴量抽出を行う" / 2020
  • PyTorchでより深いMatrix Factorization

    10年前のNetflix Prizeで確立された(?)、Matrix Factrizationは多くの場合、SVDというアルゴリズムで解くことができるが、ロジックと数式をぼんやりと見ていたら、Deep Learningでもできるっぽいなと思った。 ググると、Pytorchでの実装をここなっている人[1], Kerasでの実装を行っている人[2]を見つけることができた。[2]によると、内積を計算することを最終目標とするのであるが、どうやらその内部は非線形であってもいいらしく、表現力を高めるような深いネットワークの構成でも性能がでるようである。 Pytorchで実装を行い、簡単に性能をそれなりに出せたので忘備録として残しておく。 Matrix Factorization気持ちはこうで、実際にはすべてを同一に最適化できないので、ミニバッチを切り出して順次学習していく 一つのデータセットの粒度は、

    PyTorchでより深いMatrix Factorization
    sh19910711
    sh19910711 2024/02/18
    "Matrix Factrization: SVDというアルゴリズムで解くことができる / 内積を計算することを最終目標とするのであるが、どうやらその内部は非線形であってもいいらしく / 深いネットワークの構成でも性能がでる" / 2019
  • 『Pythonではじめるオープンエンドな進化的アルゴリズム』の査読を担当しました - 何かを書き留める何か

    果て無きゴールへ 2023年10月18日にオライリージャパンから『Pythonではじめるオープンエンドな進化的アルゴリズム』が発売される。 www.oreilly.co.jp この度、邦訳の査読者として、主にPython面で少しお手伝いさせていただいた。 『作って動かすALife』と主著者は同じであり、精神的続編である。 『ALIFE | 人工生命 ―より生命的なAIへ』の実践編かもしれない。 従来のアルゴリズムとは違うオープンエンドなアルゴリズム、つまり何らかのハッキリとした目標があるわけではなく、進化発展することを目的としたアルゴリズムが主題である。 実際にロボットを歩かせる、迷路を解かせるというテーマでアルゴリズムをPython製のライブラリを使って実装をする。 実際に歩いている様子(静止画だが)を見るだけでも、人によってはワクワクすると思う。 新しいテーマであり、変化が激しい可能性

    『Pythonではじめるオープンエンドな進化的アルゴリズム』の査読を担当しました - 何かを書き留める何か
    sh19910711
    sh19910711 2024/02/09
    "オライリージャパンから『Pythonではじめるオープンエンドな進化的アルゴリズム』が発売 / 実際にロボットを歩かせる、迷路を解かせるというテーマでアルゴリズムをPython製のライブラリを使って実装" / 2023
  • Entity Embeddings を使ってタイタニック号生存者を予測する深層学習モデルを作る - Qiita

    Entity Embeddingsという深層学習の手法があります。深層学習がよく使われる画像分析や音声分析などのデータとは違う、カテゴリ変数や順序変数の特徴量を学習する時に使います。 Entity Embeddingsが広く知られるようになったきっかけは、KaggleのRossmann Store Salesコンペでした。1位と2位のチームがドメイン知識をフル活用したアプローチをしたのに対し、この手法を活用したチームはドメイン知識の無い中なんと3位に入賞しました。コンペの説明と、使われた手法については、3位のNeokami Incのインタビュー記事、使われたソースコード、コンペ後に発表した手法に関する論文などで学ぶことができます。 タイタニック号生存者予測コンペのサンプルデータに対し、このEntity Embeddingsを実装するにはどうすれば良いのでしょうか。 0. 環境構築 環境構築

    Entity Embeddings を使ってタイタニック号生存者を予測する深層学習モデルを作る - Qiita
    sh19910711
    sh19910711 2024/01/25
    "カテゴリ変数がメインのSQLテーブルやエクセルなどのデータから学習する深層学習モデルを作る / Entity Embeddingsが広く知られるようになったきっかけは、KaggleのRossmann Store Salesコンペ" / 2019
  • 1つの Two-Tower モデルで4種類の推薦を実現する - Qiita

    import os import tempfile %matplotlib inline import matplotlib.pyplot as plt import numpy as np import tensorflow as tf import tensorflow_datasets as tfds import tensorflow_recommenders as tfrs plt.style.use("seaborn-whitegrid") ratings = tfds.load("movielens/100k-ratings", split="train") movies = tfds.load("movielens/100k-movies", split="train") ratings = ratings.map( lambda x: { "movie_title": x

    1つの Two-Tower モデルで4種類の推薦を実現する - Qiita
    sh19910711
    sh19910711 2024/01/25
    "user2item 推薦モデルを構築した際に得られる embeddings を活用し、簡単に item2item, user2user, item2user 推薦を実現する / TensorFlow Recommenders チュートリアル > Building deep retrieval models に基づいて Two-Tower モデルの実装" / 2023
  • Bluesky のフォロー推薦モデルを書いた - HackMD

    Social Network を活用するには自分の興味にあったアカウントをフォローすることが大事です.そのために重要な役割を果たすのが「おすすめユーザ推薦 (friend recommendation)」です.

    Bluesky のフォロー推薦モデルを書いた - HackMD
    sh19910711
    sh19910711 2024/01/21
    "次数が期待的に閾値以下になるようにサンプリング / GraphSage のサンプリングをデータセット生成時点で行っている / 与えられたグラフの (source_id, target_id) を正例,target_id をシャッフルしたものを負例 + TripletMarginLoss"