タグ

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

  • PuLP による数理最適化超入門

    数理最適化とは? 「数理最適化 (Mathematical Optimization)」あるいは「数理計画法 (Mathematical Programing)」は、変数に関する不等式や等式で表される制約の条件下で、目的の関数を最小 (あるいは最大) にする変数の値を求める問題です。 特に、制約条件と目的関数が線形方程式で表される問題を「線形計画法 (Liner Programming, LP)」とか「線形最適化」といいます。この分野には高速な解法アルゴリズム (単体法 : simplex method や内点法 : internal point method など) があって、非常に広範囲な分野で使用されています。 また、変数の値が連続的な実数ではなく、整数値しかとらない場合を「整数計画法 (integer programing)」といいます。特に、変数の値が 0 と 1 しかとらない

    sh19910711
    sh19910711 2022/10/23
    2019 / "PuLP: COIN-OR プロジェクトで開発 + 同じく COIN-OR プロジェクトで開発された CBC (COIN-OR Branch and Cut) というオープンソースのソルバーが同梱"
  • Python最適化モデルでコスパの良いクリスマスデートをシミュレートしてみよう - Qiita

    Python最適化モデルでコスパの良いクリスマスデートをシミュレートする Pythonで最適化モデルを作成して安近短なデートプランをシミュレートしてみよう。 目的 あまりお金と時間をかけずに楽しいデートにしたい。 条件 予算:月末で給料前なので5000円まで。 所要時間:平日で翌日も朝早いので7時待合わせなら12時まで。 コース:出来れば自宅マンションでクッキングデートが安近短で良い。 参考データ 政府統計e-Stat 曜日,男女,ライフステージ,一緒にいた人,時刻区分別行動者率 この統計データから人気のコースを集約し、さらに経験則から時間当たりのコストや所要時間を加えて以下の表をCSV形式で作ってみた。 ninki 月2~3回はするという女性の人数(単位千) jikan、cost 普通にかかる所要時間と予算(¥/h)を経験則で付加 これをpandasでDataFrameとして取得し最適化

    Python最適化モデルでコスパの良いクリスマスデートをシミュレートしてみよう - Qiita
    sh19910711
    sh19910711 2022/10/15
    "政府統計e-Stat 曜日,男女,ライフステージ,一緒にいた人,時刻区分別行動者率 / この統計データから人気のコースを集約し、さらに経験則から時間当たりのコストや所要時間を加え"
  • Deep Learningで文章をNERする(AIで暗記を効率化する) - Qiita

    google colab コード 概要 今回はdeep learningを用いたモデルに文章を与えて、その文章の特定のキーワードだけmaskingすることを目指しました。 例えば、多くの人は学生時代や資格の勉強などで文章にペンで緑色を引いて赤下敷きや赤シートで隠すということをやられたかと思います。しかし、それは意外と面倒です。下敷きで隠す前に線を引くだけで疲れてしまうこともあります。 その線で隠すというタスクをdeep learningで自動でやってもらって勉強の能率をあげようという目的で取り組みました。 これを達成する上で一番単純なのは、文章の固有名詞を抽出して全て隠すという方法です。 ただ、これは文章のキーワードが消えすぎてしまいます。一方で多くの文章にはその分野のキーワードだけではなく、色々な分野の固有名詞が含まれます。 機械学習の勉強をする人であれば、文章の機械学習に強く関連したキ

    Deep Learningで文章をNERする(AIで暗記を効率化する) - Qiita
    sh19910711
    sh19910711 2022/10/06
    "学生時代や資格の勉強などで文章にペンで緑色を引いて赤下敷きや赤シートで隠すということをやられたかと思います / その線で隠すというタスクをdeep learningで自動でやってもらって勉強の能率をあげよう"
  • RIP Theano - 開発中止のアナウンスを受けて - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Deep Learning Framework の先駆け,"Theano" の開発中止が発表されました. MILA and the future of Theano Dear users and developers, After almost ten years of development, we have the regret to announce that we will put an end to our Theano development after the 1.0 release, which is due in th

    RIP Theano - 開発中止のアナウンスを受けて - Qiita
    sh19910711
    sh19910711 2022/09/26
    2017 / "Deep Learning Framework の先駆け,"Theano" の開発中止が発表 / 単なるDeep Learningのインプリメンテーション手段であっただけでなく,この界隈の研究者が各自のアイディアを交換するツールでもあった"
  • 1 つのグラフに対し、PyG の Sampler を利用してMini Batchによる学習を行う - Qiita

    1 つのグラフに対し、PyG の Sampler を利用してMini Batchによる学習を行う TL;DR 大きな構造のグラフをグラフニューラルネットワークで学習する場合、メモリに乗り切らない可能性があるため、サンプリングして学習する必要があります。 今回、PyG; pytorch-geometicsのSamplerを利用して、1つのグラフをサブグラフに分割し学習を行ってみました。使用するSamplerは以下の通りです。 NeighborSampler データセットはみんな大好きKarateClubを利用しています。ノードが所属するクラスを推論するタスクです。 データの準備 from torch_geometric.datasets import TUDataset, KarateClub # dataset = TUDataset(root='/tmp/ENZYMES', name='

    1 つのグラフに対し、PyG の Sampler を利用してMini Batchによる学習を行う - Qiita
    sh19910711
    sh19910711 2022/09/25
    "pytorch-geometicsのSamplerを利用して、1つのグラフをサブグラフに分割し学習を行ってみました / データセットはみんな大好きKarateClub / from torch_geometric.loader import NeighborSampler"
  • PyTorchによる人工衛星画像から車の推定分布地図を作成してみる. - Qiita

    1. 概要. こちらの記事を読んだとき”この内容を理解し自分で実装できたらいいな〜”と憧れていました. Deep Learning で航空写真から自動車をカウントする こちらを自分で実装できることをターゲットに,PyTorchを学びました.ある程度できましたので,せっかくだから公開されている人工衛星の撮影画像に構築したモデルで車の台数を推量し,同様に車のマッピングを求めてみました. Copyright©2016DigitalGlobe. 学習用および検証用の画像データの取得,PyTorchでモデル化するためのDatasetおよびDataloader処理,学習,検証と人工衛星の撮影画像によるデモンストレーションを紹介します.Pytorchによる航空画像の建物セグメンテーションの作成方法.と同様に,PyTorchや画像分類が初めての方を対象としたため,かなり細かく紹介しています.そのため長文と

    PyTorchによる人工衛星画像から車の推定分布地図を作成してみる. - Qiita
    sh19910711
    sh19910711 2022/09/23
    2020 / "航空写真を用いた車の台数の推定モデルの構築 + 衛星画像の車の台数分布地図を作成 / 画像に写っている車の数を画像の模様(テクスチャー)として識別 + 画像分類にて車をカウント / アノテーションコストが低減"
  • 強化学習で酔っ払いの挙動を見る - Qiita

    強化学習を勉強したい 普段私は業務でAI/機械学習に触れています。 ただ今までは教師あり学習を中心に勉強してきたのもあり、教師なし学習や強化学習についてあまり触れたことが無いなと思いました。 そこで昨日、強化学習ハンズオンに最適なこちらの記事を拝見し、実際自分もやってみようと。 やるにしても何かテーマが欲しいなぁと思いつつ記事を眺めていると、エージェントの動きに「あれこれ酔っ払いみたいじゃね?」と感じてしまいました。 こちらの記事では、始点から終点までの最適経路を求める強化学習をテーマとしていました。 エージェントは80%の確率で希望の方向に進み、10%の確率で左方向、10%の確率で右方向へ行ってしまう設定になっています。 これを使えば「酔っ払いの挙動を再現できるのでは・・・?」と思い、ハンズオンがてら実験してみました。 コロナ前、__居酒屋でべろべろになった記憶__を思い出しながらご覧く

    強化学習で酔っ払いの挙動を見る - Qiita
    sh19910711
    sh19910711 2022/09/12
    "始点から終点までの最適経路を求める / エージェントは80%の確率で希望の方向に進み、10%の確率で左方向、10%の確率で右方向へ行ってしまう / エージェントの動きに「あれこれ酔っ払いみたいじゃね?」と感じ"
  • 結晶・分子グラフの効率的なDataLoader実装を考える - Qiita

    はじめに 最近は結晶構造や分子構造をグラフ構造で表現し、機械学習を行うことが流行っています。特に、DFT計算でのエネルギーなどの出力をグラフニューラルネットワーク(GNN)で学習する、ニューラルネットワークポテンシャル(NNP)が非常に注目されています。ハイスループット計算により大規模なDFTデータセットの作成が可能になりつつあり、学習を行う際には結晶構造をグラフ化するコストも考える必要があります。 そこでこの記事では簡便かつ高速にpytorchのDataLoaderグラフデータを取得する方法を考えます。 必要なライブラリ ase lmdb ocpmodels (グラフ化のために、AtomsToGraphのみ使用) torch torch-geometric 実装方法 以下の3通りを試してみます。 aseのデータベースから読み込み LMDBから読み込み cifファイルから読み込み ase

    結晶・分子グラフの効率的なDataLoader実装を考える - Qiita
    sh19910711
    sh19910711 2022/09/11
    "結晶構造や分子構造をグラフ構造で表現し、機械学習を行うことが流行っています / 学習を行う際には結晶構造をグラフ化するコストも考える必要 / 簡便かつ高速にpytorchのDataLoaderグラフデータを取得する方法"
  • オノマトペ(擬音語)から環境音を合成するニューラルネットワーク(Onoma-to-Wave)をPyTorchで実装した - 備忘録

    はじめに 事前準備 ソースコード 実装の概要と動かし方 補助的に作成したモジュールの概要 おまけ:訓練済みモデルのリリース 環境音合成実験 音響イベントによる条件付けなし 音響イベントによる条件付けあり 実装の舞台裏とかTIPS おわりに 参考文献 はじめに 下記の雑誌論文が最近出版された。 Yuki Okamoto, Keisuke Imoto, Shinnosuke Takamichi, Ryosuke Yamanishi, Takahiro Fukumori and Yoichi Yamashita, "Onoma-to-wave: Environmental Sound Synthesis from Onomatopoeic Words", APSIPA Transactions on Signal and Information Processing: Vol. 11: No.

    オノマトペ(擬音語)から環境音を合成するニューラルネットワーク(Onoma-to-Wave)をPyTorchで実装した - 備忘録
    sh19910711
    sh19910711 2022/09/10
    "Onoma-to-Wave: 論文著者らによるデモンストレーション用のページが用意されており、オノマトペから合成された環境音が試聴できる / 実装に関しては『Pythonで学ぶ音声合成』も大いに役立った。この本は熟読すべき"
  • DQNに秘書を面接させたら、美しい結果が得られた話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? DQNに秘書を面接させたら、美しい結果が得られた話 秘書とは「複雑に入り組んだ現代社会に鋭いメスを入れ、様々な謎や疑問を徹底的に究明する探偵!ナイトスクープ。私が局長の西田敏行(上岡龍太郎)でございます。そして」の次に話す人のことです。主に関西地方ではね。 稿は、秘書問題をDQNに解かせてみたら、美しい結果が得られたという話です。 -- 【2018/9/1追記】 プログラムで、カウントアップの位置を間違えるという、信じられないミスをやらかしていたので、再度訓練し、原稿を修正しました。幸いなことに、美しい結果が得られることに変わりありま

    DQNに秘書を面接させたら、美しい結果が得られた話 - Qiita
    sh19910711
    sh19910711 2022/08/18
    "行動: 採用/不採用の2値 / 観測空間: 面接した応募者の相対的順位 + 何人目の面接か + 応募者数 / 報酬: 最善の応募者を採用できた場合は1000点、次善以下の応募者を採用した場合は0点"
  • 仕組みの見えるScratchで遺伝的アルゴリズムを作る面白さ。「Scratchではじめる機械学習」( 石原 淳也、倉本 大資 著、阿部 和広 監修)|TAKASU Masakazu

    御礼。 僕は前職でテキストマイニングやレコメンドエンジンを使ったサービス構築をしていたので、決定木だの協調フィルタリングだのニューラルネットワークについてお客さんに説明したことはある。とはいえかなりブランクが空いていて、最近の知識はぜんぜんわからない。職業エンジニアだったのは20世紀の話なので、最近の「Pythonで..」的のやつは環境構築で二の足を踏んでしまう。(最近はラクになってそうだけど) このを読み始めたモチベーションは、Scratchよりも機械学習の知識をアップデートしたいからだ。 Scratchではじめる機械学習このの序盤はweb版のScracthに機械学習用の機能拡張を読み込ませる形で進む。プログラム一覧はオライリーの書籍サイトに載っている。 多くはGoogle等が公開している機械学習のチュートリアルをScratchと連携させて使うのだけど、紹介されているチュートリア

    仕組みの見えるScratchで遺伝的アルゴリズムを作る面白さ。「Scratchではじめる機械学習」( 石原 淳也、倉本 大資 著、阿部 和広 監修)|TAKASU Masakazu
    sh19910711
    sh19910711 2022/08/16
    良さそう / "Scratchの「どういう動作が行われているか、その言語に詳しくなくても理解しやすい」利点が生きている / 「距離が近づくことをどう計っているのか」などのプログラムを、手を動かしながら確認できる"
  • PyG (PyTorch Geometric) で MetaPath2Vec して Node2Vec と比較 - Qiita

    グラフ構造を深層学習する PyG (PyTorch Geometric) を Google Colaboratory 上で使ってみました。今回は、MetaPath2Vec を使うことがテーマです。Node2Vecとの比較も行ないました。 PyG (PyTorch Geometric) インストール PyG (PyTorch Geometric) のレポジトリは https://github.com/pyg-team/pytorch_geometric にあります。また、コードはチュートリアルドキュメント https://pytorch-geometric.readthedocs.io/en/latest/index.html を参考にしています。 import os import torch torch.manual_seed(0) os.environ['TORCH'] = torch.

    PyG (PyTorch Geometric) で MetaPath2Vec して Node2Vec と比較 - Qiita
    sh19910711
    sh19910711 2022/08/12
    "自作ネットワークを作成して、MetaPath2Vec でノードを潜在空間にプロットしたり、 Node2Vec と比較したりしました / torch_geometric.data.HeteroData / from torch_geometric.nn import MetaPath2Vec / torch_geometric.nn.Node2Vec"
  • D-Waveマシンで自然言語処理の問題をやってみました - Qiita

    ノートブック D-Wave Leapで簡単に量子アニーリングマシンに問題を解かせるようになったので、実際に使ってみました。ただ解くだけのはさみしいので、いろいろこじつけて実用を考えながら自然言語処理のToy問題を作ってやりました。 内容でいうと、word2vecで単語のグラフを作ってその上でmax cutやminimum vertex coverをD-Waveマシンにやらせました。 アニーリングマシンの原理はややこしいので個々では解説しません。ゲートマシンについてはこちらで基的なことを解説しています。 D-Wave Leapについて D-Waveの量子アニーリングマシンについて解説や学習資料、実際に動かすためのリソースなどをまとめたサービスです。詳細についてはこちらの動画がおすすめです。 D-Wave Leapに登録すると最初はいくぶんかの無料時間をもらえて実際にD-Waveのマシンで遊

    D-Waveマシンで自然言語処理の問題をやってみました - Qiita
    sh19910711
    sh19910711 2022/08/11
    2018 / "word2vecで単語のグラフを作ってその上でmax cutやminimum vertex coverをD-Waveマシンにやらせました / D-Wave Leap: お金で買うとなると今現在(2018年12月)1時間20万円、1分あたり350円ぐらいだそうです"
  • iPhoneで日本語OCR、文字認識が使える - Qiita

    文字認識をかんたんにつかえる iPhoneで文字認識できたら、板書の書き起こしや、標識認識アプリなど便利につかえます。 2022年のアップデートで日語が利用可能に 2022年のiOS16から、日語の文字認識が可能になりました。 組み込みのフレームワークのみで可能です。 精度もかなり良く、さまざまなアプリで実用に耐えるレベルだと個人的には思います。 つかいかた VisionのVNRecognizeTextRequestをつかいます。 recognitionLanguages に "ja" を指定します。 macOS13、Xcode14、iOS16以降が必要です。 let request = VNRecognizeTextRequest() request.recognitionLanguages = ["ja"] // 日語を指定 let handler = VNImageReques

    iPhoneで日本語OCR、文字認識が使える - Qiita
    sh19910711
    sh19910711 2022/07/22
    "iPhoneで文字認識できたら、板書の書き起こしや、標識認識アプリなど便利 / iOS16から、日本語の文字認識が可能になりました / 精度もかなり良く、さまざまなアプリで実用に耐えるレベルだと個人的には思います"
  • PyG (PyTorch Geometric) のデータセットを自作する - Qiita

    グラフ構造を深層学習する PyG (PyTorch Geometric) を Google Colaboratory 上で使ってみました。今回は、PyG (PyTorch Geometric)のデータセットを自作することがテーマです。自作ではなくベンチマーク用に用意してあるデータを用いる場合は過去記事をご覧ください。 日地図のデータ 題材として日地図のデータを用います。日語を matplotlib で表示するための準備をします。 Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting japanize-matplotlib Downloading japanize-matplotlib-1.1.3.tar.gz (4.1

    PyG (PyTorch Geometric) のデータセットを自作する - Qiita
    sh19910711
    sh19910711 2022/07/22
    "日本地図のデータ: 各市町村から、何番目(top - 1 番目)に近い市町村までに辺(edge)を引いた / 座標データとネットワークの接続関係を入力として、その市町村が「何地方なのか」を予測"
  • Teachable Machineでラーメン二郎の写真を学習させてみた - Qiita

    ヤサイマシマシニンニクカラメ 皆さん、ラーメン二郎はお好きでしょうか? ラーメン二郎は圧倒的なボリュームで人気のラーメン屋さんですね。 自分は以前の記事でも書いたようにラーメンが大好きなのですが、ラーメン二郎はたまに行くレベルです。 でもたまに無性にべたくなり、べに行ったら大体冒頭のコールで頼み楽しんでいます。 そんなラーメン二郎ですが、周りにもファンが多く、先日とある同僚が別の同僚に二郎の写真を見せたところ、それがどの店なのか言い当てるというシーンに出くわしました。 そこでふと思いつきました。 「二郎の写真を機械学習させたらどの店か見分けることができるようになるのか?」 という訳で、実際にやってみました! Teachable Machineで学習させてみた 自分で機械学習の環境を用意するのは大変なので、今回はTeachable Machineを使ってみました! (Teachable

    Teachable Machineでラーメン二郎の写真を学習させてみた - Qiita
    sh19910711
    sh19910711 2022/06/15
    "先日とある同僚が別の同僚に二郎の写真を見せたところ、それがどの店なのか言い当てるというシーンに出くわしました / サクッと各店舗20枚という少ないデータでどこまで精度が出るか試してみた / 正解率は 58.3%"
  • 機械学習を使って分かりづらい端子の名称を教えてくれる仕組みを作ってみた - Qiita

    皆さんこんにちは!現在会社のシステム部門で働いている会社員です。 突然ですが、端子の形状って多すぎだと思いませんか?USB端子もType-AとかCとか、2.0とか3.0があるし、ディスプレイに繋ぐケーブルもHDMI、DisplayPort、VGA等々、、、多いだけならまだしも、システム部門で働いているとこれらに関する問い合わせも来るのです。「このケーブルが何に使うかわからない」「このケーブルが欲しいんですけど」、と普段使っていない人からするとケーブルの名称なんかいちいち覚えてませんし、電話で形を説明されてもポカーンとなってしまいます。そこで、今回は機械学習を使って、端子の形状をカメラで写すと名称を教えてくれる仕組みを作ってみました。 こんな感じで作成することができました。それでは作成した方法をご紹介していきます。 使用ツール紹介 ・Google Teachable Machine(http

    機械学習を使って分かりづらい端子の名称を教えてくれる仕組みを作ってみた - Qiita
    sh19910711
    sh19910711 2022/06/06
    TensorFlow.jsで推論するためのURLも発行してくれるのか👀 / "Google Teachable MachineはGoogleが公開している機械学習ツール: 画像・音声・ポーズを学習させ、それらを判別するモデルを作成することができます"
  • ランチ最適化問題(バンディットアルゴリズム編) - rmizutaの日記

    はじめに 日々の生活を営む上で、ランチをどこでべるかということは非常に重要な問題です(2回目)。 前回はこの問題を最適停止問題と捉えて探索と活用の最適点探索を行いましたが、最適停止問題では一度見逃した店はもう選択できないという制約がありました。 飲店で考えると一度利用した店をもう一度利用することが可能なので、 この問いに対してはバンディットアルゴリズムを用いた方が適していると考えられます。 そのため今回はバンディットアルゴリズムを用いた場合の実験を行います。 参考図書 バンディット問題の理論とアルゴリズム ベイズ推論による機械学習入門 バンディットアルゴリズムについて 以下のスライドが分かりやすいです。 https://www.slideshare.net/greenmidori83/ss-28443892 バンディットアルゴリズムは例えばカジノのスロットマシーンのように、報酬が不明な

    ランチ最適化問題(バンディットアルゴリズム編) - rmizutaの日記
    sh19910711
    sh19910711 2022/06/04
    "人間には飽きがあるので、前回選択した店舗にはマイナス値の補正をかけるという方法をとるとより選択する店舗が分散するようになり実際のケースに近づけることができそう"
  • mutation testingについて考えた - Qiita

    mutation testingとは? 以下を参照 https://ja.wikipedia.org/wiki/%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E8%A7%A3%E6%9E%90 コードのいろいろなところを改変して、テストがちゃんと壊れるか?を確認するテストです。 使ってみた rubyのmutantを使いました https://github.com/mbj/mutant 感想 俺たちは手動でよくやっている プログラムのいろいろな箇所を適当にいじってみることってよくあると思います。 目的は、バグのあるプログラムをとりあえずあてずっぽうで直してみるときや、テストがちゃんとfailすることを確認するときや、冗長な箇所を削ってみるときなど、いろいろあると思います。 mutation t

    mutation testingについて考えた - Qiita
    sh19910711
    sh19910711 2022/05/16
    2019 / "mutation testing: コードのいろいろなところを改変して、テストがちゃんと壊れるか?を確認する / GANのようにコードとテストを戦わせるような仕組みにしたら面白そう"
  • Social NetworksのEDAとLink Prediction 備忘録 - Qiita

    概要 ソーシャルネット分析に含まれるLink Predictionについて、その精度がトポロジーに依存するだろうことを実験で確認する。 実施期間: 2022年3月 環境:Ubuntu20.04 LTS パケージ:scikit network, networkx 1. パケージ 使用するモデルにはDirected Graphを指定する。 ソーシャルネットは誰が誰をフォローしているだとか、どのサイトがどのサイトのリンクを張っているかだとか、どの論文がどの論文をciteしたか、方向があることが普通。 しかし馴染みのnetworkxや、いろんなアルゴリズムを実装したnetworkitはDirected Graphに対応していないAPIが多すぎて使えないので、ここではscikit networkで評価する。 importするパケージは下記となる。 import numpy as np import

    Social NetworksのEDAとLink Prediction 備忘録 - Qiita
    sh19910711
    sh19910711 2022/05/06
    "networksciencebook: Social-net界では重鎮のBarabasi先生が作成 / 講義は有名なStanfordのCS224Wと、最近公開されたロシア国立HSEが勉強になった。前者はGNNが最終目的で後者はGraph theory全般の講義"