タグ

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

  • 関連タグはありません

タグの絞り込みを解除

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

  • 今更ながらchainerでSeq2Seq(2)〜Attention Model編〜 - Qiita

    少し複雑になりますが、図中の[At]と書いてあるところがAttention Modelとなります。 Encoder側では、毎回出力される中間ベクトルをAttention Modelの中に記憶させていきます。 Decoder側では、1つ前の中間ベクトルをAttention Modelに入力します。 入力されたベクトルを元にAttention ModelがEncoder側で入力された中間ベクトルの加重平均をとってリターンします。 Encoderの中間ベクトルの加重平均をDecoderに入力することで、前にある単語、後ろにある単語、どこでも注目できるようにするのがAttention Modelとなります。 Attention Modelには大きく分けて2種類存在し、Global AttentionとLocal Attentionと呼ばれます。 以降では、Global Attention、Loca

    今更ながらchainerでSeq2Seq(2)〜Attention Model編〜 - Qiita
    sh19910711
    sh19910711 2024/04/04
    "RNN系: 初期に入力したデータは最終的に出力される特徴ベクトルに反映されにくく / Attention Model: Encoderの中間ベクトルの加重平均をDecoderに入力 + 大きく分けて2種類存在し、Global AttentionとLocal Attention" arXiv:1508.04025 2017
  • spaCyを用いて日本語の固有表現抽出(NER)モデルを学習する - Sansan Tech Blog

    はじめに 最近、固有表現抽出(Named Entity Recognition: NER)の学習をspaCyを用いて行う機会があったため、そのやり方について簡単にまとめたいと思います。 Ref spacy.io Version python: 3.11.3 spaCy: 3.6.0 使用したNotebook github.com 全体の流れ 学習データの用意 spaCyのconfigファイルの用意 学習 評価 推論 学習データの用意 今回は、ストックマーク株式会社が公開しているWikipediaを用いた日語の固有表現抽出データセットを利用します。 まずはデータセットを読み込みます。 with open("../ner-wikipedia-dataset/ner.json") as f: stockmark_data = json.load(f) 次にデータセットを、train, dev,

    spaCyを用いて日本語の固有表現抽出(NER)モデルを学習する - Sansan Tech Blog
    sh19910711
    sh19910711 2024/04/04
    "spaCy: configファイルに全ての設定を記載し、spacy trainコマンドにて学習 / 基本的な設定を行ったconfigファイルを、spaCyのサイトから取得 / 出力されたモデルはmodel-lastとmodel-bestがあり / spacy.displacy.render(..., jupyter=True)" 2023
  • Tensorflow Eager vs PyTorch (強化学習編) - Qiita

    Introduction 強化学習におけるTensorflowの実装たるや、その多くは可読性が低いです。それに比べて、PyTorchやchainerといったDefine-by-Run型のフレームワークの実装は読みやすく作りやすい。しかし、その時代もEager Modeの出現により終わりました。 稿では、Eager Modeの実践的な記述方法と、強化学習における有用性を示すことを目指します。 主な内容として PyTorchからTensorflow Eagerへの1対1の移植方法 Eager Modeにおけるsummary Eager Modeにおける学習結果のsave&load PyTorchよりEagerを高速に動作させる を含みます。 今回、題材として用いるのは、ICML2018に採択されたFujimotoらの「Addressing Function Approximation Err

    Tensorflow Eager vs PyTorch (強化学習編) - Qiita
    sh19910711
    sh19910711 2024/03/28
    "強化学習におけるTensorflowの実装たるや、その多くは可読性が低い / しかし、その時代もEager Modeの出現により終わりました / Eager Modeを用いることで、すべてのTensorflow部分がPython上で動作する" 2018
  • 名詞・形容詞ペアの抽出によるレビュー分析 - Qiita

    概要 冒頭の例のように、レビューテキストから名詞と形容詞のペアを抽出 してみます。 これを複数のレビューで集計することで、レビュー文を1つずつ読まずとも、傾向としてどんな部分がどういった評価を受けているのか が見えてきそうですよね。 (例えば、ラーメン店であれば、スープ、麺、値段それぞれがどんな評価が多いのか、とか) 基的には、以下のような流れで実装しています。 GiNZAで形態素解析+係り受け解析 名詞・形容詞のペアを抽出 特定の係り受け関係であれば採用 やや苦慮した部分は、以下の2点です。 複数の形態素からなる形容詞 の扱い(例:高価な=高価+な) GiNZAの係り受け解析結果(UD: Universal Dependency) の扱い 両者とも、私の知識が十分でなく、今回の扱いが適切でない可能性も多分にあります。その点はご了承ください(お気づきの点はコメントいただけるととても嬉しい

    名詞・形容詞ペアの抽出によるレビュー分析 - Qiita
    sh19910711
    sh19910711 2024/03/26
    "Universal Dependencies: 多言語で一貫した構文構造とタグセットを定義 + 従来は言語毎で異なる構文表現を用いていたが、それを統一的に扱っていこうという取り組み / 「静かな」は形態素解析の結果「静か」「な」に分解" 2023
  • Neural Factorization Machines for Sparse Predictive Analytics (SIGIR 2017) 読んだ & Chainer で実装した - 糞糞糞ネット弁慶

    [1708.05027] Neural Factorization Machines for Sparse Predictive Analytics みんなが好きな Factorization Machines (FM) とニューラルネットワークを組み合わせて Neural Factorization Machines (NFM) を提案する. FM とその派生手法がいくら変数間の交互作用を表現するモデルであったとしても,しかしそれは線形モデルのままであり,表現力に乏しい,というのがモチベーション. FM FM は という形で予測を行う.三項目で各特徴量をで低次元表現しつつその積で交互作用を扱う,というのが FM の特徴. NFM NFM では として, をニューラルネットワークにすることで交互作用を考慮しつつ非線形性を表現する. ネットワークは Embedding Layer Bi-In

    Neural Factorization Machines for Sparse Predictive Analytics (SIGIR 2017) 読んだ & Chainer で実装した - 糞糞糞ネット弁慶
    sh19910711
    sh19910711 2024/03/20
    "FM や NFM が扱うのはたいていスパースなので,値がある次元をそれぞれ低次元に Embedding / 値を埋め込んだベクトルに掛ける + 陽に交互作用を考える / 「埋め込みを行いつつ元の値を掛ける」という操作" 2018
  • 簡単な迷路問題を例に強化学習を実装 〜テーブルの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