タグ

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

  • 論文読み&Keras実装 ArcFace: Additive Angular Margin Loss for Deep Face Recognition - Sleep like a pillow

    metric learningやfeature learningと呼ばれる学習手法は、クラス内のサンプル間の距離を近く、クラス間のサンプル間の距離を遠くするような特徴量を学習によって獲得するものです。 代表的なmetric learning手法のSiamese NetworkやTriplet lossはもう古くて、ArcFaceの方が色々と優れているらしいので読んでみました。 arxiv.org Pytorch実装 github.com Keras実装 github.com Abstract feature learningで主に重要なのは、特徴量の持つ弁別性を向上させるのに適したloss関数を設計すること。 Centre lossは、各サンプルの特徴量とクラスを代表する特徴量との距離に制約を設けることで、クラス内分散を小さくする。 SphereFaceでは、全結合層の重み行列を用いて角度

    論文読み&Keras実装 ArcFace: Additive Angular Margin Loss for Deep Face Recognition - Sleep like a pillow
    sh19910711
    sh19910711 2025/11/19
    2019 / "数値解析的にはSphereFace, CosFace, ArcFaceはあまり違いが無い / 幾何学的な観点から見ると、ArcFaceのマージンは測地線距離と正確に対応"
  • Label Studioによる固有表現抽出のデータアノテーション ~ spacy のファインチューニング

    ほかにもHomebrewやDockerなどでインストールすることもできます。詳細は公式ドキュメントをご参照ください。 インストールできた場合は、次のコマンドでLabel Studioを立ち上げられます。 localhost:8080 に接続して以下のような画面が表示されたら成功です。 HumanSignal. Label Studioのログイン画面のスクショ アノテーション ユーザー作成 「SIGN UP」を選択し、適当なメールアドレス、パスワードを入力してアカウントを作成してください。(メールアドレスは実際に使用しているものでも、user@example.com のようなものでもよいと思います。) 無事にユーザー作成ができた場合は以下のような画面に移ります。 HumanSignal. Label Studioのプロジェクト一覧画面のスクショ プロジェクト作成 「Create Projec

    Label Studioによる固有表現抽出のデータアノテーション ~ spacy のファインチューニング
    sh19910711
    sh19910711 2025/10/18
    2024 / "Label Studio: LLMのfine-tuningや訓練に用いるデータを作成できるツール / 物体検出やNER、話者分離など、多様なタスクに対応 / モデルを用いたpre-annotationやactive-learning"
  • timmのModelEmaについて(ISIC2024コンペ振り返り①)

    先日のKaggleのISICコンペは結構時間をかけて参加しましたが、惨敗でした…。(1088位/2739チーム) 上位解法で気になったものをいくつかまとめようと思います。まずは4thが画像モデルに使っていたtimmのModelEMAについてです。 timmのModelEmaとは? ModelEMA(Exponential Moving Average)は、モデルの重みの移動平均を保持するテクニックで、モデルの安定性や汎化性能を向上させるために用いられます。先日の関東kaggler会でもちょろっと紹介されていたようです。 1. EMAの基的な考え方 EMAは、現在のモデルの重みと過去の重みの指数関数的な移動平均を計算します。これにより、学習中に過度に更新された重みを平均化し、より滑らかな更新結果を得ることができます。一般的には、次の式で表されます。 ​EMAの重み更新は次の式で表されます:

    timmのModelEmaについて(ISIC2024コンペ振り返り①)
    sh19910711
    sh19910711 2025/09/28
    2024 / "EMA: 現在のモデルの重みと過去の重みの指数関数的な移動平均を計算 + 過度に更新された重みを平均化 / EMA適用後は学習曲線の推移が滑らか + 学習の進みは遅くなる"
  • LightFMから始める推薦システム入門

    アドベントカレンダー 株式会社GENDAでデータサイエンティストをしているtoma2です。 この記事は、GENDAアドベントカレンダー2023の9日目の記事になります。 GENDAアドベントカレンダーでは、プロダクト開発や組織開発に関わるメンバーを中心に多様なテーマの記事を投稿しています。ぜひ、購読登録をしていただき12月25日までお楽しみください。 はじめに 最近、推薦モデルを調べる中でLightFMについて勉強したので、その内容をまとめとデータセットMovieLensでの実行例を示します。また、私が推薦モデルから推薦システムを作ろうとした際に躓いた、新規データへの対応やモデル更新といった実用的な内容も記載しています。 参考文献 こうもとさんのブログ「宇宙 日 世田谷 機械学習」は、lightFMの理論から実用上の細かい点まで詳しく記載されており、大変参考にさせていただきました。 Li

    LightFMから始める推薦システム入門
    sh19910711
    sh19910711 2025/09/20
    2023 / "LightFM: 名前の通り動作が軽くCPUで動き + 環境構築が比較的容易で入門に最適 / Pythonライブラリであるlightfmの完成度が非常に高い + データ形式の変換関数やloss functionなどが充実"
  • 特徴量エンジニアリングの道標

    門脇大輔 阪田隆司 保坂桂佑 平松雄司 著 Kaggleで勝つデータ分析技術 2019-10-09 技術評論社 https://gihyo.jp/book/2019/978-4-297-10843-4 polarsの練習も兼ねて、データの前処理と特徴量エンジニアリングについて網羅的にメモを残します。 ダミーのデータセットを基に相関のあるデータを作成し、このデータを使って遊んでいきます。 TL;DR 欠損値は平均で埋めるだけにせず、欠損かどうかのカテゴリ変数へ掃き出して、よりよい補完値で埋める。または埋めなくても良い手法で分析する。 スケーリングは標準化だけではなく、順位や分布の裾野を見ながら最適なもの(モデルが扱いやすいもの)を選ぶ。 カテゴリ変数のエンコーディングは、one-hot化やLabel Encodingだけでなく、精度重視ならTarget Encodingなども試す。 列同士

    特徴量エンジニアリングの道標
    sh19910711
    sh19910711 2025/08/20
    2024 / "入力からは読み取れないデータを作ることが特徴量作成の肝 / スケーリングは標準化だけではなく、順位や分布の裾野を見ながら最適なもの(モデルが扱いやすいもの)を選ぶ"
  • 【論文解説+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
  • XGBoost と LightGBM に実装されているポジションバイアス除去を試してみた

    はじめに 以前も記事にしたが、ウェブ上のユーザーの行動ログを使って推薦システムを開発している自分のようなMLエンジニアにとって、ランキング学習におけるポジションバイアスの除去は重要なテーマである。サービスのログは通常様々なバイアスに塗れており、特にリストの上位に表示されたアイテムほどクリックが集まりやすくなってしまうポジションバイアスは非常に厄介だ。アカデミアではこの手のテーマはだいぶ研究が進んでいるものの、これまでは論文や書籍で手法が紹介されるだけで、手軽にパッと使えるライブラリは存在しなかった。 しかしどうやら最近になって XGBoost や LightGBM という多くの人が使う強力なGBDTライブラリにポジションバイアスを除去する機能が実装されたらしく、これが使い物になるのであれば実務で利用するハードルがグッと下がると思い、実験して性能を検証してみた。 検証に使うデータセット ここ

    sh19910711
    sh19910711 2024/09/15
    "ポジションバイアス: リストの上位に表示されたアイテムほどクリックが集まりやすくなってしまう / 最近になって XGBoost や LightGBM という多くの人が使う強力なGBDTライブラリにポジションバイアスを除去する機能が実装"
  • 遺伝的アルゴリズム(DEAP)を使ったルート最適化 - Qiita

    1. はじめに 遺伝的アルゴリズム(GA)は、進化の過程を模倣して複雑な問題の最適解を見つける手法です。今回は、PythonのライブラリDEAPを使って、東京都内で複数の配達先を巡る最短ルートを見つける方法を学びます。また、folium ライブラリを使って、地図上で最適なルートを可視化します。 2. 遺伝的アルゴリズムとは? 遺伝的アルゴリズムは以下のステップで解を見つけます。 個体生成: ランダムな解候補(個体)を作成します。 評価: 各個体がどれだけ良い解か(適応度)を評価します。 選択: より良い個体を選び、次世代に残します。 交叉: 2つの個体を組み合わせて新しい個体を生成します。 変異: 個体にランダムな変更を加え、新しい可能性を探ります。 繰り返し: この手順を繰り返して最適な解を見つけます。 3. 今回の問題設定 東京都内で10箇所の配達先があると仮定し、それらの地点を最短ル

    遺伝的アルゴリズム(DEAP)を使ったルート最適化 - Qiita
    sh19910711
    sh19910711 2024/09/14
    "DEAPを使って、東京都内で複数の配達先を巡る最短ルートを見つける + folium ライブラリを使って、地図上で最適なルートを可視化"
  • グラフ向け深層学習ライブラリ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
  • 再帰型強化学習 - Pythonと機械学習

    目次 目次 はじめに 再帰型強化学習のアルゴリズム Pythonで実装してみる 検証結果 シャープレシオの推移 過去の期間Tでの学習結果 未来の期間Tでの取引シミュレーション結果 はじめに こちらのブログで紹介されている、再帰型強化学習を使ってFXトレードをしてみるという記事が面白そうだったので試してみることにしました。 再帰型強化学習について知識はゼロですが、取り敢えずやってみるというのが大事じゃないかと思います。 強化学習とは機械学習の一種で、エージェントがアクションを起こして、そのアクションによって報酬をもらえるというような仕組みみたいで、各アクションでもらえる報酬を最大化するように学習を実施するという物らしいです。 更に再帰型なので、なんかよくわからなくてすごそうです。英語(Recurrent Reinforcement Learning)の頭文字をとってRRLと呼ばれてるみたいで

    sh19910711
    sh19910711 2024/06/10
    "𝐹𝑡は𝑡より前の𝑀個の各時刻の価格変動𝑟𝑡と一つ前の時刻のアクション𝐹𝑡−1に適当な重み𝑤をかけて足し合わせた後ハイパブリックタンジェントの出力 / 𝐹𝑡−1が必要なところが再帰型" 2017
  • 深層生成モデルのtensorflowによる実装(Importance Weighted Autoencoders) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Importance Weighted Autoencoders 最近、深層生成モデルに興味あるのでICLRにも採択されていたIWAE(Importance Weighted Autoencoders)の実装をTensorFlowで行いました。ついでにBengio達の書いたDeepLearningの20章(Deep generative models)を一部まとめました。 深層生成モデルとは? 深層生成モデルが何かと言われる難しいですがおそらくNeural Networkを使った生成モデルです。 Bengioにも書かれていますがDe

    深層生成モデルのtensorflowによる実装(Importance Weighted Autoencoders) - Qiita
    sh19910711
    sh19910711 2024/06/02
    "深層生成モデルの基本となる二大柱としてVAEとGAN + もう一つ全然違う考え方の生成モデルとしてGMM / GMM: MMDを使って密度を合わせていく + Autoencoderと組み合わせて使う" 2016
  • Siamese Networkをchainerで実装するまで(1) - Qiita

    Siamese Networkを理解してchainerで実装するまでの流れを書きたいと思います。 Siamese Networkとは、1クラスあたりの学習データが極端に少ないケース(これをone shot learningとかfew shot learningと言います)にでもうまく学習をしてくれるネットワークモデルです。 Siamese Networkは20年以上前に作られたものらしいのですが、近年のディープラーニングブームでSiamese NetworkにCNNやLSTMを組み込んだものが良い結果を出してきて、プチブームが起こっている気がします。(GANには遠く及びませんが) このSiamese Networkに基づいた研究にNIPS2016で発表された”Matching Networks for One Shot Learning”(Oriol)があります。個人的にはこれを実装するこ

    Siamese Networkをchainerで実装するまで(1) - Qiita
    sh19910711
    sh19910711 2024/05/31
    "Siamese Networkは20年以上前に作られたもの / CNNやLSTMを組み込んだものが良い結果を出してきて、プチブームが起こっている / 同じクラス同士のデータを近くに、違うクラス同士のデータを遠くに写像" 2017
  • AugLyを少し試してみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    AugLyを少し試してみた - Qiita
    sh19910711
    sh19910711 2024/05/26
    "AugLy: 画像・音声・テキスト・ビデオで100種類以上のデータ拡張に対応 / 画像の上にEmojiを張ってくれる拡張 + 自分の好きなEmojiを貼れたりするっぽい / pytorchのComponentみたいにOneOfとかも使えたりする" 2021
  • ニューラルネットワークでミニバッチの学習データを固定とランダムのハイブリッドにすると結果がよくなった - Qiita

    # モデル作成 model = MyChain(n_units) optimizer = optimizers.Adam() optimizer.setup(model) ''' 省略 (一般的なランダムのみ学習) ''' # モデル作成(モデルの学習結果のリセット方法がわからないため再度モデル作成) model = MyChain(n_units) optimizer = optimizers.Adam() optimizer.setup(model) 学習パラメータ ミニバッチサイズ(batchsize): 20 エポック(n_epoch): 500 隠れ層の数: 2 隠れ層のユニット数(n_units): 100 活性化関数: 正規化線形関数(relu) ドロップアウト(dropout): なし(0%) 最適化: Adam 損失誤差関数: 平均二乗誤差関数(mean_squared_

    ニューラルネットワークでミニバッチの学習データを固定とランダムのハイブリッドにすると結果がよくなった - Qiita
    sh19910711
    sh19910711 2024/05/24
    "ミニバッチの学習データをランダムシャッフルにした場合と、固定とランダムシャッフルのハイブリッドにした場合の違い / 今回の発見はランダム時の学習前にモデルの学習結果をリセットし忘れたことによるもの" 2016