タグ

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

  • mlflowとluigiによるML実験管理例 - Qiita

    はじめに 記事ではMLの実験を行うときの、コード、パラメータ、モデル、評価結果を管理するための構成例を紹介します。 サンプルコードはこちら 前提知識 Must python docker Want mlflow luigi 思想 前処理を加えたデータや学習したモデルなどプログラムで出力されるファイルは全てmlflowの管理下におく。 コードはgitで管理し、実験結果とcommit hashを紐づける。 前処理、学習、推論などタスク同士の依存関係を管理して、依存しているタスクを自動で実行できるようにする。また、既に実行されたタスクは実行しないようにする。 構成概要 titanicのdataに対して、前処理、学習、推論を行う例を紹介する。 ディレクトリ構成は以下のような感じ。 src/tasks/下に前処理などの具体的なタスクを行うファイルを作成する。 tomlファイルで実行するタスクを指定

    mlflowとluigiによるML実験管理例 - Qiita
    sh19910711
    sh19910711 2023/03/07
    2021 / "mlflow + luigi / 前処理を加えたデータや学習したモデルなどプログラムで出力されるファイルは全てmlflowの管理下に / 実験結果とcommit hashを紐づける / mlflow.sklearn.autologを用いることで、Metricsなどがいくつか自動で保存"
  • Captumを試す - Qiita

    PyTorch Developer Conference 2019 で発表されたものの中に、 Captum というライブラリがあります。 解説記事が見当たらなかったので、実際に動かして記事を書いてみました。 まだ beta であり、かつ積極的に開発されているようなので、今後動作が変わる可能性は十分にあると思います。 Captum とは? Captum とは、機械学習モデルを解釈し、理解するための手法をまとめたライブラリです。 ラテン語で、"理解する" という意味らしいです。 実装されている手法は以下のとおりです。 https://captum.ai/docs/algorithms 入力が出力に及ぼす影響を評価 Integrated Gradients Gradient SHAP DeepLIFT DeepLIFT SHAP Saliency Input X Gradient * Guide

    Captumを試す - Qiita
    sh19910711
    sh19910711 2023/03/05
    2019 / "Captum: モデルを解釈し理解するための手法をまとめたライブラリ + ラテン語で、"理解する" という意味らしい + PyTorch Developer Conference 2019 で発表 / Issue に興味深いDiscussion がある"
  • AIモデルのsafetensors形式とは何者か?ckptと比較しつつ解説する

    1,そもそもckpt形式のモデルファイルはどのようにデータを保存していたのか safetensors形式はckpt形式の様々な欠点の改善を目的として作られたデータ保存方法であり、HuggingFaceが主導しています。 そのため、safetensorsの利点を説明するにはまず従来のckptで何がアカンかったのか、ckptのデータ保存方法から読み解く必要があります。 .ckpt拡張子とpickleの関係 画像生成AI関連のモデルでよく目にする.ckptという拡張子は、「pickle」というPythonのモジュールを用いて直列化して保存されたデータに用いられる拡張子です。 データを直列化(バイト列に変換する)ことを「pickle化」・「ピクル化」と呼びます。 逆に、バイト列からデータを復元することを「非pickle化」「非ピクル化」といいます。 pickleモジュールを使って、例えば以下のよう

    sh19910711
    sh19910711 2023/03/05
    ".ckpt: 「pickle」というPythonのモジュールを用いて直列化して保存 / 悪意あるpickleオブジェクトを生成することが可能 / safetensors: HuggingFaceが主導 + 純粋なテンソル以上のものを保存できるが、カスタムコードは保存できない"
  • TabPFN - Qiita

    初めに このシリーズでは、機械学習数理最適化などの数理モデルのざっくりとした理論と実装コードを紹介します. 今回紹介するのは,TabPFNというテーブルデータのためのTransformerモデルです.論文では「小さな表形式データに対して1秒以内に教師あり分類タスクを実行でき,ハイパーパラメータのチューニングがいらない高精度のモデル」と紹介されています.精度としてはOpenML-CC18というデータセットの中の30個のデータセットでGBDTの性能を上回ったほか,AutoMLに対して同等の精度を70倍の速度で達成したそうです. 論文:TabPFN: A Transformer That Solves Small Tabular Classification Problems in a Second 目次 1. 概要 2. ざっくり理論 3. 実装 4. おわりに 5. 参考文献 1. 概要

    TabPFN - Qiita
    sh19910711
    sh19910711 2023/02/19
    2022 / "TabPFN: テーブルデータのためのTransformerモデル / PFN: ベイジアンニューラルネットワークと構造的因果モデルに基づき表形式データの根底にある複雑な特徴量の依存性と潜在的な因果構造をモデル化"
  • メタゲノムのイケてるネットワーク解析手法、WGCNA解説 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? メタゲノム解析でいけてる手法としてWGCNA(Weighted Gene Correlation Network Analysis)によるネットワーク解析がある 海洋微生物学だとDeLongのチームがよく使っている 例: https://www.nature.com/articles/s41564-017-0008-3 元々はマイクロアレイデータとかを念頭として作られたが、最近メタゲノム分野への応用が増えてきてる印象 論文 R実装について: https://bmcbioinformatics.biomedcentral.com/arti

    メタゲノムのイケてるネットワーク解析手法、WGCNA解説 - Qiita
    sh19910711
    sh19910711 2023/02/17
    2019 / "WGCNA: 遺伝子発現のデータやメタゲノムデータをクラスタリングする手法の一つ(ネットワーク解析の手法としても + 重み付けした相関ネットワークに基づきクラスタリング + サンプル数が多い時はかなり強力な手法"
  • Web Machine Learningについて – Rest Term

    W3Cが推進しているWeb Machine Learning (WebML)という取り組みについて少し調べてみました。今回は解説記事というわけではなく個人用のメモに近いので正確性についてはあまり自信がありませんが。。 Web Machine Learning (WebML)とは Web Machine Learning | Making Machine Learning a first-class web citizen W3C Web Machine Learning Working Group standardizes Web APIs for in-device machine learning inference working together with the W3C ecosystem using well-received Community Group incubatio

    sh19910711
    sh19910711 2023/02/09
    2021 / "WebML: W3CではAPI仕様の標準化を推進しており、そのAPIをWebNN APIと呼んでいます / WebNN: 計算グラフを構築するためのAPIが一通り定義 + TensorFlow.jsやONNX.jsなどの既存のフレームワークもWebNN対応するらしい"
  • Parquet+Petastormを使って画像分類モデルをSparkで学習させてみました! - CCCMKホールディングス TECH Labの Tech Blog

    こんにちは、CCCMKホールディングス技術開発の三浦です。 最近寒い日が続いています。寒いと温かい飲み物が欲しくなりますが、近ごろは緑茶を飲むようになりました。お湯を入れたらすぐに飲むことが出来る粉末タイプのものもあって、気軽に楽しむことが出来ます。 今回の記事は分散処理フレームワークSpark周りについて調べた内容です。普段深層学習モデルの分散学習をDatabricksを通じ、Sparkクラスタで行っています。その中で最近少し引っかかっていたのが画像やテキストなどのモデル学習用データを読み取る処理がボトルネックになっている点でした。この部分をどう改善すれば良いのかなかなか分かりませんでした。 今のデータの入力処理は特にSparkの特徴を活かしきれているとは言えず、TensorFlowやPyTorchのDataLoaderを通じて都度画像ファイルやテキストファイルを読み込んでモデルに入力さ

    Parquet+Petastormを使って画像分類モデルをSparkで学習させてみました! - CCCMKホールディングス TECH Labの Tech Blog
    sh19910711
    sh19910711 2023/02/09
    "Petastorm: 深層学習モデルにParquet形式のデータをDataLoader経由で入力 / make_torch_dataloader()というメソッドがあり / このオブジェクトの__enter__()を呼び出すとPyTorchのDataLoaderが得られます"
  • 機械学習における反実仮想説明(Counterfactual Explanations)を生成するライブラリ“DiCE”を活用したサービス開発についての考察 - AREKORE

    個人的に、機械学習における反実仮想説明(Counterfactual Explanations)*1を生成するPythonのライブラリ“DiCE”に興味を持ちました。そして、DiCEを活用したサービス開発について考察をしました。記事はその考察についてのメモです。 機械学習における意思決定を促進する説明 反実仮想説明を生成するDiCE DiCEとは? DiCEの使用方法と動作の紹介 DiCEを活用したサービスの例 DiCEを活用したサービス開発における課題と解決策 設計の工夫による現実に起こりうる反実仮想説明の生成 特徴間の関係を加味したクラスの設計 特徴の扱い方としての値オブジェクトの採用 複数の反実仮想説明に基づく施策の設計 反実仮想説明の関連研究 事実から反実仮想まで変動させるための状態遷移の考慮 記事のまとめ 機械学習における意思決定を促進する説明 機械学習を活用した予測において

    機械学習における反実仮想説明(Counterfactual Explanations)を生成するライブラリ“DiCE”を活用したサービス開発についての考察 - AREKORE
    sh19910711
    sh19910711 2023/01/28
    2021 / "DiCE: 予測結果に対して異なる結果が得られたであろう「入力の特徴量を変動させたサンプル」を生成 / 反実仮想を考慮し、意思決定の対象者が望ましい結果を得るために次に何をすべきかを決定するのに役立ちます"
  • 1ペタバイトのデータセットで機械学習する / WebDataset入門

    深層学習をする上で、最も大切なマシンスペックを聞かれたら何と答えますか? GPUのTensor性能、VRAM、GPUの数、CPU性能、メモリ、… 問題によって正解は異なりますね。 しかし、特に大規模なデータセットで機械学習する場合では、しばしばネットワーク帯域とストレージシステムのディスクI/Oによって制限されます。この記事ではそのような課題に対して、学習側でどのようにデータを扱うかを見ていきたいと思います。 1. この記事は? こんにちは、TURING MLチームです。TURINGはEnd-to-Endな深層学習モデルでLv5完全自動運転車の開発を目指す会社です。 私たちは自動運転モデルを動かすため、可視域のカメラセンサによる画像で学習し、カメラ映像のみから車体の操作や経路選択、安全性の判断を行わせています。(実際の車を動かす事例はこちらの記事をご覧ください。) そのため、機械学習のため

    1ペタバイトのデータセットで機械学習する / WebDataset入門
    sh19910711
    sh19910711 2023/01/20
    2022 / "WebDataset: 任意のストレージシステムにデータを数十~数百MBごとにシャーディング(分割)して配置 + 将来的にPyTorchのサブパッケージとして取り込まれるための提案がなされています / aws/amazon-s3-plugin-for-pytorch"
  • PyTorch-BigGraph: A Large Scale Graph Embedding System

    2025-04-24 "Manga AI Understanding & Localization" Furukawa Arata (CyberAgent, Inc)

    PyTorch-BigGraph: A Large Scale Graph Embedding System
    sh19910711
    sh19910711 2022/12/30
    2019 / "PyTorch-BigGraph: Billion-Trillionサイズのエッジを持つグラフに対してGraph Embeddings / torch.distributed.{send/recv}を利用 / SysML 19: Adam Lerer, Pytorch-BigGraph: A Large Scale Graph Embedding System"
  • 最適化② - イラストロジックをortoolsで解いてみる - Qiita

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

    最適化② - イラストロジックをortoolsで解いてみる - Qiita
    sh19910711
    sh19910711 2022/12/29
    "行方向、列方向で、問題に即して連続する黒を担保する必要 > 本稿では、CP-SATのoverlap制約を使用して実現 / 各interval変数の開始、終了値が重ならないよう制約してくれる"
  • RでERGMを実装したかった(が、失敗した) - SNAGeek

    このエントリは、Sansan Advent Calendar 2019 21日目の記事です。 adventar.org 基的にタイトルの通りですが、この記事では統計的ネットワーク分析のデファクトスタンダードとなっているERGMをRで実装していきます。 {igraph}以外のパッケージは使わずにできるだけスクラッチで開発します。 前もって断っておきますが、正しくパラメータ推定できるような実装には至ることができませんでした。 ERGMとは ERGM = Exponential Random Graph Model 日語では「指数ランダムグラフモデル」と訳されることが多いです。 略称は「あーぐむ」と読むようです。 概要については以下の記事で紹介されています。 qiita.com ERGMを使うと何が嬉しいのか 観測されたネットワークが、どのような構造的なメカニズムによって生成されたのかを知る

    sh19910711
    sh19910711 2022/12/27
    2019 / "ERGM: 観測されたネットワークが、どのような構造的なメカニズムによって生成されたのかを知る + ネットワーク内生的な効果を推定 / 全部入りの{statnet}というパッケージスイートがあり、こちらを導入するのが便利"
  • JavaScriptでつくる量子コンピューター : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の4日目です。 「DSAS for Socialは量子コンピューターつかってるのかよ」という声が聞こえてきそうですが、すいません、単にタイミングの問題です。 ■古典計算脳の恐怖 JavaScriptで量子コンピューターがつくれるのか?もちろん無理です。物は。古典的計算機の上で動くブラウザの上で量子コンピューターが動くはずはありません。 しかしシミュレーターならば話は別です。たとえば来なら並列で計算すべきところを、順番に計算すればよいだけ。非決定性チューリングマシンだって、何だってつくれます。 何のためにJavaScriptで量子コンピューターをつくる必要があるのか。NO REASON! ですが、強いていえば「新しい計算パラダイムを学ぶため」です。古典計算機に憑かれた頭をリフレッシュして、

    JavaScriptでつくる量子コンピューター : DSAS開発者の部屋
    sh19910711
    sh19910711 2022/12/17
    2011 / "量子コンピューターはmapにあたる超並列計算を実現するが結果を観測しようとするとランダムにそのなかのただひとつの計算結果に収束 / 実用的な目的に供するにはreduceの段階でさまざまなトリックを弄する必要"
  • Amazonのデータセットで始める商品検索

    この記事は 情報検索・検索技術 Advent Calendar 2022 の7日目の記事です。 はじめに 今年の夏、Amazonが多言語 (英語スペイン語、そして日語) のラベル付きの商品検索のデータセットを公開しました。 論文: https://arxiv.org/abs/2206.06588 リポジトリ: https://github.com/amazon-science/esci-data 情報検索において商品検索は、ウェブ検索を作りたいという企業より商品検索を作りたい企業の方が多いという意味で、ポピュラーなトピックだと思います。ところが公開データで実験を行おうとするとドメインが違うウェブ検索のデータセットか、ラベルのない商品カタログか、ラベルはあるけど小規模なデータセットかという限られた選択肢しかなく、仕方がないので非公開の独自データセットを作って実験を行うという状況でした。

    Amazonのデータセットで始める商品検索
    sh19910711
    sh19910711 2022/12/07
    "検索システムを賢くしたいという人々の願いがミドルウェアにPythonサポートやcross-languageの機能を追加させて、Pythonを組み込むことが容易に / 来年以降はこのデータセットを使った提案手法がたくさん世に出てくる"
  • RLlib を使ってナップサック問題を強化学習 - なんとなくな Developer のメモ

    ナップサック問題へ強化学習を適用すると、どうなるのか気になったので試してみました。 強化学習には、Ray に含まれている RLlib を使い、Jupyter Notebook 上で実行します。 Ray 0.8.7 今回のサンプルコードは http://github.com/fits/try_samples/tree/master/blog/20200922/ はじめに 以下のようにして Ray と RLlib をインストールしておきます。(TensorFlow も事前にインストールしておく) Ray インストール > pip install ray[rllib] ナップサック問題 今回は、以下のような価値と重さを持った品物に対して、重さの合計が 35 以下で価値の合計を最大化する品物の組み合わせを探索する事にします。 価値 重さ 105 10 74 7 164 15 32 3 235 22

    RLlib を使ってナップサック問題を強化学習 - なんとなくな Developer のメモ
    sh19910711
    sh19910711 2022/12/01
    2020 / "ナップサック問題へ強化学習を適用すると、どうなるのか / 状態: 品物毎の個数 + 行動: 個数を操作 + 報酬: 価値の合計 / gym.Env: step で状態の更新と報酬の算出 / DQN: PPOTrainer の代わりに DQNTrainer を使うだけ"
  • EvoTorch触ってみた | Webシステム開発/教育ソリューションのタイムインターメディア

    先日,EvoTorchという進化計算ライブラリが公開されました(HP, Docs, GitHub, PyPI).名前ですぐに気が付くかもしれませんが,Pythonのオープンソース機械学習ライブラリPyTorchと密接に関係があります. EvoTorchは,PyTorchと同じPythonのオープンソースライブラリで,PyTorchの上に直接構築されています.この記事は,リリース直後でほぼ英語しか情報が出てこない,EvoTorchを触ってみた雑感を書いていきます. 資料,例題が複数用意してあって良い 自分が見た限り,以下の7つの例題が公開されています. 最小限のシンプルな実装1最小限のシンプルな実装2GPU利用多目的最適化並列強化学習ブラックボックス最適化強化学習1強化学習2 また,Jupyter Notebookで実行可能な5つの例題が公開されています.それぞれの例題に説明があり,簡単にプ

    EvoTorch触ってみた | Webシステム開発/教育ソリューションのタイムインターメディア
    sh19910711
    sh19910711 2022/11/27
    "EvoTorch: 進化計算ライブラリ / 進化計算が良く分からなくてもプログラムを試すことができる / 例題に説明があり,簡単にプログラムを動かせる点,参考文献が明記されている点,READMEやドキュメントが整備されている"
  • ONNX Runtime for WebをVue.js+WebGL環境で試す – Rest Term

    Microsoftから ONNX Runtime for Web (ORT Web) なるものが9月2日にリリースされました。 ONNX Runtime Web—running your machine learning model in browser – Microsoft Open Source Blog ONNX (Open Neural Network Exchange) について ONNX (Open Neural Network Exchange) は機械学習のモデルフォーマットの一つです。機械学習フレームワークはTensowflowやPyTorch、MXNetやCaffe2などたくさんありますが、ONNXフォーマットを使えばそれらのフレームワーク間において相互運用が可能になります。共通で使えるファイル形式ということです。ONNXについての歴史や開発背景はWikipedia

    sh19910711
    sh19910711 2022/11/26
    2021 / "Microsoftから ONNX Runtime for Web (ORT Web) なるものが9月2日にリリース / ブラウザで動くランタイムとしては onnx.js というものがありましたがこちらは今後利用非推奨 / デフォルトだとCPU (WebAssembly)が使われる"
  • CompilerGymを試してみた

    CompilerGymとは CompilerGym is a toolkit for exposing compiler optimization problems for reinforcement learning. It allows machine learning researchers to experiment with program optimization techniques without requiring any experience in compilers, and provides a framework for compiler developers to expose new optimization problems for AI. GitHub CompilerGymとは、コンパイラ最適化を強化学習の問題として扱うためのツールです。 コンパイラにつ

    CompilerGymを試してみた
    sh19910711
    sh19910711 2022/11/26
    2021 / "CompilerGym: コンパイラ最適化を強化学習の問題として扱うためのツール / コンパイラについての知識を持たない機械学習の研究者でも、プログラムの最適化手法を実験で使うことができる"
  • PuLP で数独を解く - Qiita

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

    PuLP で数独を解く - Qiita
    sh19910711
    sh19910711 2022/10/30
    2014, 変数をまとめて操作できる機能あるのか / "choices = pulp.LpVariable.dicts("Cell", ... / lpSumは、配列の変数をすべて足した式を表す。総和を表すときにシンプルになる"
  • Google OR Tools で数理最適化に入門する

    数理最適化: Optimization Night #1 https://connpass.com/event/148735/ の発表資料です。 デモで用いた Jupyter Notebook は https://gist.github.com/AseiSugiyama/1fa1e4a2c3e90e1…

    Google OR Tools で数理最適化に入門する
    sh19910711
    sh19910711 2022/10/29
    2019 / "最適とは何か、その謎をあきらかにすべく我々はアマゾン奥地へ / 「とりあえず動かす」アプローチで数理最適化について復習 / ortools: グラフアルゴリズムやナップサック問題も扱える"