タグ

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

  • 関連タグはありません

タグの絞り込みを解除

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

  • 【論文解説+Tensorflowで実装】VQ-VAEを理解する

    今回は、VQ-VAE(Vector Quantised-Variational AutoEncoder)を解説したいと思います。 VQ-VAEもVAE(Variational AutoEncoder)と同じで潜在変数を使った画像などの生成モデルです。 通常のVAEと違うところは、VAEでは潜在変数\(z\)が連続的なベクトルを取りましたが、VQ-VAEでは潜在変数が離散的なベクトルを取る点です。 画像や自然言語は来離散的なもので、例えば「犬」から「」へ少しずつ変化していくものでありません。 ですので、潜在変数を離散的にすることは自然であると言えます。 では、以下の論文をもとに解説していきたいと思います。 『Neural Discrete Representation Learning』 最後にTensorflowで実装していますので、そちらも参考にしていただければと思います。 PyTo

    【論文解説+Tensorflowで実装】VQ-VAEを理解する
    sh19910711
    sh19910711 2025/07/26
    2021 / "通常のVAEと違うところは、VAEでは潜在変数𝑧が連続的なベクトルを取りましたが、VQ-VAEでは潜在変数が離散的なベクトルを取る / 潜在変数の事前分布、事後分布をカテゴリカル分布とする"
  • 角度を用いた深層距離学習(deep metric learning)を徹底解説 -PytorchによるAdaCos実践あり-|はやぶさの技術ノート

    こんにちは。 現役エンジニアの”はやぶさ”@Cpp_Learningです。最近、距離学習を楽しく勉強しています。 今回は、角度を用いた深層距離学習のSphereFace・CosFace・ArcFace・AdaCosについて勉強したので、備忘録も兼ねて記事を書きます。

    角度を用いた深層距離学習(deep metric learning)を徹底解説 -PytorchによるAdaCos実践あり-|はやぶさの技術ノート
    sh19910711
    sh19910711 2025/07/22
    2020 / "ArcFaceやCosFaceなどには、スケール:s, マージン:mといったハイパーパラメータ / AdaCosでは、それらのハイパーパラメータを自動で設定"
  • WGANの論文読んでTensorflowで実装する その1 - 時給600円

    前回、間違えてUnrolledGANの論文を読んでしまった。 このWGANというのが当は読もうと思った論文。正直UnrolledGANを先に読んでなかったらWGANの理解が深まらなかったと思う。読んでてよかった という訳で論文はここからどうぞ [1701.07875] Wasserstein GAN あとコードも先に置いておく github.com WGANという名前が付いてるから、このWが重要になってくる。WはWassersteinの略。わずさーなのかわっさーなのか英語がカスなので読み方がわからん・・・ Wassersteinというのは論文ではEarth Mover (EM) distanceとも呼ばれる。distanceだから距離を表すもの。この距離をGANに使ったらいい感じになったってことなのか?と読み始めに思った。 今まで自分が読んだGANはどれも GeneratorとDiscr

    WGANの論文読んでTensorflowで実装する その1 - 時給600円
    sh19910711
    sh19910711 2025/07/05
    2018 / "EM: 二つの分布をそれぞれ四角のブロックの集まりで表す + コンパクトじゃない集合においても使えるらしい。その時不思議な結果が出る / 志賀浩二先生の「位相への30講」"
  • Deep SVDDに基づく外れ値検知をPyTorchで実装した - 備忘録

    はじめに 外れ値検知の機械学習モデルの一つとして"Deep SVDD" が知られている。 今回はこれを、異常検知/外れ値検知のためのPythonパッケージPyODの仕様に沿った形で、PyTorchにより実装したということである。 外れ値検知は1クラス分類と捉えることができ、「通常」クラスか「それ以外(=外れ値、つまり異常)」という分類が行われる。 "Deep SVDD"は、外れ値検知の既存手法であるOne-Class SVM / Support Vector Data Description (SVDD) の非線形カーネルをニューラルネットワークで置き換えたものである。 準備 PyODはpipでインストール可能である。 pip3 install pyod ほか、torch, sklearn, numpy, tqdmのインストールを済ませておく。 Deep SVDDについて 概要は以下の記事

    Deep SVDDに基づく外れ値検知をPyTorchで実装した - 備忘録
    sh19910711
    sh19910711 2025/05/04
    2021 / "Deep SVDD: 外れ値検知の既存手法であるOne-Class SVM / Support Vector Data Description (SVDD) の非線形カーネルをニューラルネットワークで置き換え"
  • 検索タスクにおけるBM25のコサイン類似度とスコアの精度比較 - Qiita

    追記 比較する条件を整理した改良版を書きました。記事は記録として残しておきます。(2024/11/28) 概要 以下の記事の疑問に自分なりに答えを出すために、実際にBM25スコアとBM25ベクトルのコサイン類似度で検索精度にどう違いがあるのか検証しました。 【疑問】BM25でもTFIDF同様にコサイン類似度に基づいてランキングしてよいのか 背景 上記別記事で抱いた疑問の概略は以下です。 検索タスク等において、ランキングの指標として、TFIDFではTFIDF重みベクトルのコサイン類似度を用いるが、BM25ではBM25スコアを用いることが多い BM25スコアはクエリに含まれる単語を検索対象文書におけるその単語のBM25の重みに変換して足し合わせた値である。 BM25でもBM25の重みベクトルのコサイン類似度(BM25コサイン類似度)をランキングに用いたらだめなのか? 記事で書いていない内容も

    検索タスクにおけるBM25のコサイン類似度とスコアの精度比較 - Qiita
    sh19910711
    sh19910711 2024/10/13
    "どちらかというと、rank_bm25のほうがシンプルな実装をしており、scikit-learnのBM25Vectorizerは、低頻度語のフィルタリングなど、いろいろ気の利いた処理が入っていそう"
  • Kernel t-SNEを使ったデータの分類をフルスクラッチ実装でやってみた - Qiita

    $ $ 記事で取り扱う内容は下記の3点となります. SNE の理論と実装 $t$-SNE の理論と実装 Kernel $t$-SNE の理論と実装 $ $記事では Kernel $t$-SNE によりデータを分類することを目標としますが,その過程において,SNE,$t$-SNE の理論と Python による実装例もご紹介したいと思います. はじめに 機械学習手法の一つであるクラスタリング (Clustering) や分類 (Classification) は実社会の様々な場面で活用されています. 例えば次のような活用例が挙げられ,実は私達の身近なところで使われていることがわかります. 顧客タイプを分類しマーケティングやセールスへ活用 スパムメールのフィルタリング 株価予測 悪意のある金融取引の検知 なお,クラスタリング (Clustering) と分類 (Classification

    Kernel t-SNEを使ったデータの分類をフルスクラッチ実装でやってみた - Qiita
    sh19910711
    sh19910711 2024/10/12
    "クラスタリング (Clustering) と分類 (Classification) は異なり / この違いは t-SNE と Kernel t-SNE の違いにもなる / 類似度を計算する際に,SNEではガウス関数を使用しますが t-SNE ではスチューデントの t 分布を使用" '20
  • グラフ向け深層学習ライブラリDeep Graph Library (DGL)の初歩の初歩 - Qiita

    グラフ向けの深層学習ライブラリDeep Graph Library(DGL)の基的な使い方について紹介します。公式ドキュメントに事例やAPIの説明が詳細に載っていたりチュートリアルも豊富にありますが、DGLの一番基的な動作(だと個人的に思っている)ノードの特徴量のmessageとreduceという2つの処理について、丁寧に説明している記事がなかったので説明してみます。 Deep Graph Library (DGL)とは? New York UniversityとAWSが開発しているPytorch-basedの(?)グラフと対象としたDeep Learningのライブラリです。 画像や言語など従来よく研究されているデータ構造ではTensorFlow, Pytorch, Chainerなど有名なライブラリがあり、CNNやRNNなどが1つの関数(公式ではbuilding-blocksと言っ

    グラフ向け深層学習ライブラリDeep Graph Library (DGL)の初歩の初歩 - Qiita
    sh19910711
    sh19910711 2024/06/20
    "DGL: New York UniversityとAWSが開発しているPytorch-basedの(?)グラフと対象としたDeep Learningのライブラリ / ちなみにDGLのリポジトリに結構最新のモデルも実装されているので使えそう" 2019
  • CNNによる画像分類:背景の影響を低減させる正則化 - Qiita

    はじめに CNNを用いた画像分類モデルを構築するときに、認識したい物体をちゃんと認識したモデルを作るのは結構難しかったりします。特に学習に用いるデータが少なくて偏りがあると以下の例のように画像の背景に基づいた分類モデルになってしまうこともあり得ます。 画像引用:https://arxiv.org/abs/1602.04938 この記事では画像の背景の影響を少しでも減らして認識したい物体を認識したモデルを作るための手法として、Orthogonal Sphere Regularizationという正則化があったので試してみます。 今回の記事で参考にした論文はこちら↓ 使用したコードは以下のGitHubリポジトリに置いてあります。PyTorchCNNを構築し、学習はGoogle ColaboratoryのGPUを用いて行なっています。 Orthogonal Sphere Regularizat

    CNNによる画像分類:背景の影響を低減させる正則化 - Qiita
    sh19910711
    sh19910711 2024/06/14
    "CNN: 学習に用いるデータが少なくて偏りがあると以下の例のように画像の背景に基づいた分類モデルになってしまう / OS Regularization: 背景の空の部分の重要度が減少したことが良い効果をもたらした感じ / ord=fro" 2022
  • Poincaré Embeddings でJ1リーグのチーム・選手を可視化 - u++の備忘録

    ふと「Poincaré Embeddings」*1で遊んでみたいと思い立ち、サッカーJ1リーグのデータで試してみました。 Poincaré Embeddings gensimでの実装とデータセット Poincaré Embeddingsの学習 活用方法 おわりに Poincaré Embeddings Poincaré Embeddingsに関する説明は、ABEJA*2やscouty*3のブログに譲ります。 Poincaré Embeddings は端的に言うと word2vec の埋め込み先をユークリッド空間ではなく双曲空間にするという手法で、階層構造やべき分布をもつデータを埋め込むという問題設定において、低次元でもよい表現を与えられるという特徴があります。 Poincaré Embeddings による職種の類似度計算とその利用 - LAPRAS AI LAB gensimでの実装とデ

    Poincaré Embeddings でJ1リーグのチーム・選手を可視化 - u++の備忘録
    sh19910711
    sh19910711 2024/05/11
    "gensimの実装では正則化の影響で周囲にノードが集結しすぎないような工夫 / チーム名が中心 + 円周側に選手 / 「浦和レッズ」の近くに「サンフレッチェ広島」が配置 + 移籍した選手の影響ではないか" 2019
  • ランダムフォレストをスクラッチで実装したい - Qiita

    非Deepな機械学習手法としてランダムフォレスト (Random Forest) を選択する場面は多々ありますが、基的にライブラリ任せになってあまり中身を意識することがありません。ので、今回はランダムフォレストの内部的な仕組みを確認しつつ、それを踏まえてPythonでスクラッチ実装していこうと思います。 ランダムフォレストについて ランダムフォレストの仕組みに関する分かりやすい記事は探せばいくらでもあるので、ここでは以降が読みやすくなるよう実装の視点から少し解説をつけておきます。 ランダムフォレストはたくさんの決定木から構成され、決定木はノードから構成されます。イメージとしては以下のようになります。 なので、実装の手順としては、 ノード : Node 決定木 : DecisionTree ランダムフォレスト : RandomForest の3つのクラスを実装していきます。 1. ノード

    ランダムフォレストをスクラッチで実装したい - Qiita
    sh19910711
    sh19910711 2024/05/09
    "sklearn.tree は使わない縛り / RandomForest: 入力されたデータからランダム抽出したサブセットを各決定木への入力とすることで多様な木を構築 + 抽出の際、使用する特徴量についても選択" 2020
  • (Part 1) tensorflow2でhuggingfaceのtransformersを使ってBERTを文書分類モデルに転移学習する - メモ帳

    現在、NLPの分野でも転移学習やfine-tuningで高い精度がでる時代になっています。 おそらく最も名高いであろうBERTをはじめとして、競ってモデルが開発されています。 BERTは公式のtensorflow実装は公開されてありますが、画像分野の転移学習モデルに比べると不便さが際立ちます。 BERTに限らず、公式のtensorflow実装は難解で、tf.kerasの学習済みモデルに関してもほとんど画像のモデルしかないです。 ただし、pytorch用のライブラリにpytorch-transformersという有用なものがありまして、 BERT, GPT-2, RoBERTa, DistilBert, XLNetなどの多言語学習済みモデルが利用可能で、カスタマイズもしやすいということで有名でした。 このライブラリが名前をかえてtensorflow2に対応してくれました。 Transform

    (Part 1) tensorflow2でhuggingfaceのtransformersを使ってBERTを文書分類モデルに転移学習する - メモ帳
    sh19910711
    sh19910711 2024/04/11
    "公式のtensorflow実装: 難解 + tf.kerasの学習済みモデルに関してもほとんど画像のモデルしかない / pytorch-transformers: 名前をかえてtensorflow2に対応 + BERT, GPT-2, RoBERTa, DistilBert, XLNetなどの多言語学習済みモデルが利用可能" 2019
  • tensorflow2を用いたCNNの実装方法 - 八谷大岳の覚え書きブログ

    最近ようやくtensorflow2に移行しはじめたが、kerasの流れがあるからなのか実装方法が沢山あって、なんだかややこしい。 以下のサイトに詳しくまとまっているように、Sequential API、Functional APIおよびSubclassing APIの3つの実装方法がある。 qiita.com 以下は、tensorflow2.1を用いている。 Sequential API Functional API Subclassing API Sequential API 初心者向けで、ネットワークの定義から、学習方法の設定、学習および評価まで一貫してtf.keras.models.Sequentialのインスタンスを用いて行う。具体的には、以下のようにSequentialのインスタンスであるmodelにaddメソッドを用いてレイヤーのインスタンスをしていく。そして、compileメ

    tensorflow2を用いたCNNの実装方法 - 八谷大岳の覚え書きブログ
    sh19910711
    sh19910711 2024/04/10
    "tensorflow2に移行しはじめたが、kerasの流れがあるからなのか実装方法が沢山あって、なんだかややこしい / Subclassing API: SequentialとFunctionの利点であった一貫性の高い実装方法を完全に捨てたような実装" 2020
  • Neural Tangentsによる無限幅深層ニューラルネットワークの構築とベイズ推論

    要点¶Neural TangentsはGoogle AIが開発したJAXのラッパーライブラリです。無限幅 (中間層のユニット数$\to \infty$)のニューラルネットワーク (以後, NN: neural networks)を高速かつ簡単に構築及び学習させることを目的としています。 Neural Tangentsでは無限幅のNNを学習させる手法としてNNGP (Neural Network Gaussian Process)と NTK (Neural Tangent Kernel)の2つを実装しています。 この記事ではNNGPとNTKの要点を紹介し、Neural Tangentsを用いた実装について紹介していきます。 Neural-Tangentsに関連する文献¶ Paper : https://arxiv.org/abs/1912.02803 OpenReview : https:/

    sh19910711
    sh19910711 2024/04/07
    "Neural Tangents: JAXのラッパーライブラリ + NNGPとNTKの2つを実装 / 隠れ層が1層で無限幅 (各層のユニット数 →∞→∞)のニューラルネットワークがガウス過程と等価であることについては (Neal, 1994)で示され" arXiv:1912.02803 2020
  • じゃんけんグリコでDQN(deep Q-network)に挑む - Qiita

    じゃんけんグリコでDQN(deep Q-network)に挑む たかが、じゃんけん。されど、じゃんけん。東大入試に出題されたこともあれば、某スタンド系少年マンガでは空飛ぶ熱い勝負が繰り広げられました。 ここまで言ってのけた某ファイヤーシスターズの実戦担当もいました。 ジャンケン強ければ人生どんだけ得かって話だよ。ロシアンルーレットやってさあ?どっちが先に引き金を引くかで揉めた時、もしもジャンケン必勝法を知っていたら! 記事では、じゃんけんから派生した遊び、じゃんけんグリコ(以下グリコ)という遊びで、DQNに勝負を挑んでみたいと思います。 グリコとは 以下、Wikipediaよりの引用です。 概要 主に屋外の階段で行われる、じゃんけんから派生した遊びのひとつ。日の子供の遊びとして広く知られている。 ルール 環境 階段 ある程度の段数を有する階段が必要となる。階段の最上と最下で最低限の意思

    じゃんけんグリコでDQN(deep Q-network)に挑む - Qiita
    sh19910711
    sh19910711 2024/04/06
    "Keras-RL: Kerasと同レベルに抽象化 + シンプルに書けます / もし相手がランダムに手を出し続けるなら、自分はチョキを出し続けることで、期待値を最大化できる / 数学的に導き出される性質を機械学習が再発見" 2018
  • 確率的DeepLearningライブラリEdwardのサンプルコードとその理論 - Qiita

    from __future__ import absolute_import from __future__ import division from __future__ import print_function import edward as ed import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from edward.models import Normal def build_toy_dataset(N=100, noise_std=0.05): D = 1 X = np.linspace(-np.pi, np.pi, num=N) y = np.cos(X) + np.random.normal(0, noise_std, size=N) X = X / np.pi X =

    確率的DeepLearningライブラリEdwardのサンプルコードとその理論 - Qiita
    sh19910711
    sh19910711 2024/04/04
    "Edward: DeepLearningを確率的に扱えるモジュール + 学習するのはネットワークの重みではなく、重みを生成する分布のパラメータ / 分散がわかるということは推論に対する信頼度を測ることができる" 2017
  • 今更ながら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