タグ

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

  • 安定マッチングを使ってお仕事の割り当てをした話 - Qiita

    こんにちは、記事は2021年BrainPadアドベントカレンダーの12日目の記事です。 今日は、面倒なお仕事の割り振りを、CPで安定マッチング問題を解くことで解決した話をします。 私の所属する会社には毎年新卒のデータサイエンティスト、機械学習エンジニアが沢山入ってきます1。様々なバックグラウンドの新卒が入って来るため、研修・育成は手厚いほうなのではないかと思います。そのなかのひとつに「新卒1年目は毎日業務時間1hを使って課題図書を読んで勉強する」というものがあり、6冊くらい統計学やパターン認識や数理最適化の教科書を読んでいます2。勉強することでお給料を貰っているわけですから、素晴らしい制度です。 さて、データサイエンスやら機械学習やらの分野は日進月歩で発展しており、教科書も毎年のように新しいが出版されております。新卒の勉強会でも読むをアップデートすべく、後輩に読んでもらうの選定をす

    安定マッチングを使ってお仕事の割り当てをした話 - Qiita
    sh19910711
    sh19910711 2022/04/21
    "n人いてm冊の本を読みます。誰が何を読むかを決めたい / 制約: 普段一緒に仕事している人と同じ本の担当になるのは避けたい / 安定マッチングの応用としてよく出てくる例は学校選択とか"
  • ありがとう、Chainer。頼むぜPyTorch。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2019/12/5、PFNからChainerの開発を停止しPyTorchの開発に貢献するというアナウンスがありました。 Preferred Networks、深層学習の研究開発基盤をPyTorchに移行 オフィシャルな発表が出たことは衝撃的でしたが、心の中で「いつかはこうなるんじゃないか」という思いがあったのも事実です。さびしくはありつつも、決断にはベストな時期だったのではないかと思います。ここ最近は動的グラフをサポートしたTensorFlow 2.0の公開があり、機能的にほぼ差異がなくなった2大フレームワークの決戦がいよいよ始まる・・

    ありがとう、Chainer。頼むぜPyTorch。 - Qiita
    sh19910711
    sh19910711 2022/04/17
    "2019/12/5、PFNからChainerの開発を停止しPyTorchの開発に貢献するというアナウンスがありました / TensorFlow 2.0の公開があり、機能的にほぼ差異がなくなった2大フレームワークの決戦がいよいよ始まるという雰囲気"
  • AutoKerasを試してみた - Qiita

    機械学習業界では、時代はまさに『AutoML』と言えるような状況ですが、あのKerasにもAutoML対応のフレームワークが出たようです。 ※以前からあるようですが、最近新しくなったようです。 AutoKerasとは AutoKerasとは、テキサスA&M大学のDATA Labで開発された、AutoML対応のKerasモジュールになります。 誰もが機械学習にアクセスできることが目標とのことです。 条件 AutoKerasを動かすための条件は以下のようになっています。 Python 3.5以上 TensorFlow 2.1.0以上 以前はPyTorchを呼んでいたらしいのですが、今はTensorFlowベースとなっています。 インストール AutoKerasのインストールは簡単で、pip一発で終了です。 サンプル お馴染みのMNISTを実装してみると、以下のようなコードになります。 from

    AutoKerasを試してみた - Qiita
    sh19910711
    sh19910711 2022/04/14
    2020 / "AutoKeras: テキサスA&M大学のDATA Labで開発 / お馴染みのMNIST: モデルの作成が「ImageClassifier()」という関数だけ / 汎用的な識別機(AutoModel)も用意されています / 遅いので、パワフルなハードウェアが欲しくなります"
  • ニューラルネットワークでQRコードを解読する - プログラミング素人のはてなブログ

    QRコードとは2次元バーコードの一種で、スマホなどで読み取ることで、文字列やURLなどを取得できるものです。 www.keyence.co.jp QRコードは無料でweb上などのサービスで、好きな内容を書き込んだものを作ることもできます。 一方、その内容を読み取るのは専用のアプリ以外では簡単にはできません。 そんな、簡単ではないことに挑戦しているのが↓ nlab.itmedia.co.jp 仕組みさえわかれば肉眼でもって…。 そこで肉眼ではなく、我々人類の強い味方、「ニューラルネットワーク」で解読ができるか?ということに挑戦してみました。 ここではweb用のURLをQRコードに書き込んで、ニューラルネットワークで解読してみます。 ニューラルネットワークの構想ニューラルネットワークとしてはモノクロの画像に、URLの文字列のn番目、という情報を付加して分類問題として評価します。(もっとスマート

    ニューラルネットワークでQRコードを解読する - プログラミング素人のはてなブログ
    sh19910711
    sh19910711 2022/04/14
    "QRコード: 肉眼ではなく、我々人類の強い味方、「ニューラルネットワーク」で解読ができるか?ということに挑戦 / URLは最大で30文字とし、30文字未満のときはスペースをいれてpadding"
  • 映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?

    ※この記事には映画「The Social Network」のネタバレがそれなりに含まれています.これから映画を観る予定の方は逃げた方が賢明です. 最近ブログで宣言した通り,入門 自然言語処理を読みつつPythonのNLTK(Natural Language ToolKit)を使った自然言語処理について勉強中.入門 自然言語処理はPythonをロクに触ったことがない私でもちゃんと理解しながら読み進められるようになっているのが嬉しい. ところで,少し前に映画「The Social Network (ソーシャル・ネットワーク)」を観て,登場人物の台詞や行動がなかなか面白くて気に入ったのだけど,この脚映画の公式サイトで公開されていることを最近知った.映画の脚となると,特徴的な表現が多く文章数もそれなりにあるので,興味深いコーパスになり得るのではないかと思う. というわけで,NLTK習い立ての

    映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?
    sh19910711
    sh19910711 2022/04/04
    2011 / "場面ごとの登場人物の推移を可視化する / 脚本には各登場人物の台詞の前に,発言する人物の名前が大文字で書かれている / いろいろ思い出していたらもう一度映画を観たくなってきた"
  • RのContextualパッケージをいじってみた際のメモ書き – かものはしの分析ブログ

    都内の事業会社で分析やWebマーケティングの仕事をしています。大学・大学院では経済学を通じて統計解析を行うなどしておりました。企業に勤めてからは、機械学習やテキストマイニング、クローリング技術などに関心を持っています。 Twitterアカウント Mr_Sakaue( SKUE ) GitHub 読書メーター ほしいものリスト はじめに このブログの私の中での位置づけは、今後仕事で使いそうなものを調べて書き溜めるというところにあります。仕事で使っているものはブログに載せないというスタンスでもあるのですが、出来るだけ先回りしておきたいところです。今回は、昨年のJapan.RやTokyo.Rで紹介されていたcontextualパッケージを触ってみたというゆるふわな内容となっています。 目次 ・バンディット問題とは ・マーケティング関連でバンディット問題が役に立つ場面 ・バンディット問題で出てくる

    RのContextualパッケージをいじってみた際のメモ書き – かものはしの分析ブログ
    sh19910711
    sh19910711 2022/03/26
    "バンディットは昔ながらのスロットマシンが客からお金をむしり取ること(盗賊)にちなんでいる / 「神のみぞ知る真の報酬」と「あるスロットの報酬」がどれくらい外れているか / そのハズレ具合は許容できるのか"
  • 大規模サービスで効率よくレコメンドを提供するためにTensorflow Recommendersを活用する - DMM inside

    はじめに こんにちは、DMMで機械学習エンジニアをしている二見です。 2020年に新卒で入社し、普段は検索やレコメンドの改善に従事しています。 DMMでは50を超えるサービスを提供しており、様々なデジタルコンテンツを取り扱っています。 また、各サービスには多くのユーザーの膨大なデータが日々蓄積されてます。 我々のグループでは、それらのビックデータを活用した改善施策を行うことで、各事業部の成長に日々貢献しております。 記事では、新たにディープニューラルネットワークベースの先端的なレコメンドシステムを構築し、サービスに導入した事例を紹介したいと思います。 レコメンドエンジンの導入を検討している方・ニューラルネットベースのレコメンドに興味がある方の参考になれば幸いです。 目次 はじめに 目次 DMMにおけるレコメンドへの取り組み 背景 Tensorflow Recommendersとは 1.

    大規模サービスで効率よくレコメンドを提供するためにTensorflow Recommendersを活用する - DMM inside
    sh19910711
    sh19910711 2022/03/24
    "petastorm: Uber製のライブラリで、parquet形式のデータセットをTensorFlow、PyTorch、PySparkで扱うことができます / tf.data.Dataset形式でparquetファイルを読み込むことができます"
  • MuZeroを使って強化学習で遊ぶ - Qiita

    はじめに DeepMind が発表した MuZero という AlphaZero をより一般化した手法があります。ルールが明確な対人ゲームだけでなく、 Atariゲームのような一人用ゲームにも同じように適用できるというのが非常に強力で、性能もかなり高いようです。 (個人的に育休とか取っていたのもあって)1年くらいその存在すらしらず(...)、最近になってまたニュースになっていてやっと知ることができて、最近色々遊んでみているのでその共有をします。 すでに muzero-general という PyTorchベースの非常に素晴らしい実装のリポジトリが公開されているので、主にその紹介です。 muzero-general 良いところ 色々なゲームが最初から付いていて、自分で追加するのも非常に簡単にできる(1ファイル追加するだけ) Hyperparameterの調整も簡単 GPUが使えるなら使ってく

    MuZeroを使って強化学習で遊ぶ - Qiita
    sh19910711
    sh19910711 2022/03/19
    "MuZero: AlphaZero をより一般化 / 対人ゲームだけでなく、 Atariゲームのような一人用ゲームにも同じように適用できる / muzero-general という PyTorchベースの非常に素晴らしい実装のリポジトリが公開されている"
  • Tensorflowでブロック崩し - Qiita

    ##概要 機械学習のモデルをゲームに組み込むと、結果をグラフィカルにみることができて楽しい。そこで、Tensorflowでモデルを作成してゲームに組み込む。具体的には、Tensorflowで人の手によるプレイデータを用いてモデルを作成してブロック崩しをさせる。 洗練されたモデルなどにはこだわらず、てきとーなものをてきとーに作る。 Tensorflowでの基的なモデル作成は以下の記事で 適当にTensorflowを理解して、モデルを作ってみる(Tensorflow入門) 使用するブロック崩しは以下のリンク先のもの ブロック崩し ##動機 機械学習モデルに色々プレイさせる記事はよく見るが、実際に時間をかけずに適当に試してみたい。 精度や美しさを気にせずに、動く実感を得られるように動かすのが目的。 ##前提 今回使用するブロック崩しの概要は以下のようである。 パドルを動かしてボールを弾いて行く

    Tensorflowでブロック崩し - Qiita
    sh19910711
    sh19910711 2022/01/31
    "結果をグラフィカルにみることができて楽しい / 精度や美しさを気にせずに、動く実感を得られるように動かすのが目的 / パドルとボールの動きが定まってしまい、ブロックのない空間をずっと行き来するようになった"
  • PySpark: LightGBM on Sparkを使ってみる - Qiita

    SynapseMLとは Spark上で大規模データセットを用いた機械学習を効率よく行うために設計されたライブラリ。 Microsoftによって公開されており、最近MMLSparkからSynapseMLに名前が変わった。 SynapseMLを使うことでSpark上でLightGBMの使用が可能になり、 HiggsデータセットにおいてはSparkMLより10-30%高速で、AUCは15%向上することが検証されている。 SynapseMLをDatabricksにインストールする方法 Library Sourceとして「Maven」を選択 Coordinatesに「com.microsoft.azure:synapseml_2.12:0.9.4」を入力 Repositoryに「https://mmlspark.azureedge.net/maven」 を入力 「Install」ボタンを押下 Sam

    PySpark: LightGBM on Sparkを使ってみる - Qiita
    sh19910711
    sh19910711 2022/01/15
    SynapseML / "Spark上で大規模データセットを用いた機械学習を効率よく行うために設計されたライブラリ / Microsoftによって公開されており、最近MMLSparkからSynapseMLに名前が変わった"
  • Jax/Flax × TransformersでBERTのfine-tuningをTPUで行う | 株式会社AI Shift

    こんにちは AIチームの戸田です 以前、BERTをfine-tuningする際のTipsとして混合精度の利用や、Uniform Length Batchingをつかった学習効率化を紹介させていただきましたが、今回はTPUを使った高速化について紹介したいと思います。 Flax TPU対応というと、まずGoogleのTensorflowが思い浮かびますが、今回は同じGoogleのニューラルネット学習用フレームワークのFlaxを使います。 FlaxはTensorflowと比較して簡潔に、かつ柔軟に書くことができると言われており、huggingfaceのtransformersもv4.8.0からFlaxをサポートするようになっています。 JAX/Flax has joined the ranks of PyTorch and TensorFlow in 🤗Transformers! Versio

    Jax/Flax × TransformersでBERTのfine-tuningをTPUで行う | 株式会社AI Shift
    sh19910711
    sh19910711 2022/01/03
    "一方学習曲線を見てみると、Flaxの方が精度が悪いようです / トータルのバッチサイズは両方とも32ですが、TPUの場合、デバイスが8個あるので、デバイスごとのバッチサイズが4になることが原因かと思われます"
  • グラフニューラルネットワークでQiitaのタグづけをレコメンドする - Qiita

    記事はNTTドコモR&Dアドベントカレンダー2021の8日目の記事です. こんにちは、NTTドコモの橋(@dcm_hashimotom)です. 業務ではレコメンド関連の技術開発・施策検討を行っており,主にPythonやBigQuery, Apache Sparkを触ってます. SNSなどで投稿したコンテンツの検索性を上げるためには,そのコンテンツへのタグ(またはハッシュタグ)の付与が重要です.Qiitaではタグは5つまで付与することができ,タグを指定した絞り込み検索や,マイページでのプロフィールに使われております.しかし,タグの付与はユーザ手動なものが多く(要出典),検索性が高いものを選択するためには,ドメイン知識が必要です.なので,タグを付ける際に「このタグがついた投稿では他にこんなタグもついてます」的なレコメンドがあれば有用そうです.また,レコメンドということですが,近年レコメンド

    グラフニューラルネットワークでQiitaのタグづけをレコメンドする - Qiita
    sh19910711
    sh19910711 2021/12/12
    "GNNを用いてQiitaタグをembeddingしたTech2Vecを作成 / DGLのチュートリアルに沿った形式で実装 / 「GNN」を入力してみましたが + 前処理で削られてしまって > もっとGNNの記事が必要"
  • splay tree をソラで書く!!!

    (2023/02/05) 実はここに書いた方法はとにかく覚えにくいので、今度新しく書きます。考察不足でしたのでおわび申し上げます。 動機の例 自作ライブラリで Library Checker の問題[1]を解きたい link/cut tree を実装したい splay tree の面白い機能を思いついたときに実装したい 平衡二分探索木や動的木が JOI に出る(?)[2] [3] ネタバレ注意 PCK に出る(?)[4] ネタバレ注意 目標 平衡二分探索木の一種である (bottom-up の) splay tree の C++ 言語による実装例を示す splay tree を覚えやすい・一発で書きやすい方法で実装し、注意点をまとめる 注意点はできるだけ多くの点を挙げ、実装の方針が同じ splay tree が正しく動作しなかったときのチェックリストになるようにする この実装を用いて Li

    splay tree をソラで書く!!!
    sh19910711
    sh19910711 2021/12/05
    "平衡二分探索木の一種である (bottom-up の) splay tree / 覚えやすい・一発で書きやすい方法で実装し、注意点をまとめる / 論文は Daniel Sleator さんと Robert Tarjan さんによって 1984 年に書かれ、1985年に出版"
  • Introducing TensorFlow Graph Neural Networks

    Posted by Sibon Li, Jan Pfeifer and Bryan Perozzi and Douglas Yarrington Today, we are excited to release TensorFlow Graph Neural Networks (GNNs), a library designed to make it easy to work with graph structured data using TensorFlow. We have used an earlier version of this library in production at Google in a variety of contexts (for example, spam and anomaly detection, traffic estimation, YouTub

    Introducing TensorFlow Graph Neural Networks
  • pytorchで行列分解 〜行列分解をふんわり理解する〜 - Qiita

    はじめに IBIS2017のチュートリアルで,林先生が「テンソル分解をニューラルネットのフレームワークでやれば楽チンではないか」みたいなことを言っていて,確かに便利そうだと思ったのでそれを試す. ここではフレームワークとしてpytorchを使う. まずは前段階として単純行列分解をやってみる. テンソル分解はそのうちやりたい.(余裕があれば ) テンソル分解もpytorchでテンソル分解(CP分解)でやった. 環境 Python 3.6.1 torch (0.2.0.post3) torchvision (0.1.9) モデルの定義 $X$を$U V^{T}$に分解することを考える.$X$が(n,m)行列のとき,Vは(n,r)行列,Vは(m,r)行列になる. import torch from torchvision import datasets, transforms from torc

    pytorchで行列分解 〜行列分解をふんわり理解する〜 - Qiita
    sh19910711
    sh19910711 2021/11/19
    "大体極端なケースを考えれば,理解の手助けになる"
  • spaCyを使ってルールベースの記述をシンプルに! - Qiita

    この記事は自然言語処理アドベントカレンダー 2019の12日目です。 昨今自然言語処理界隈ではBERTを始めとする深層学習ベースの手法が注目されています。 一方それらのモデルは計算リソースや推論速度の観点で制約が大きく、プロダクション運用の際は留意すべき事項を多く持ちます。 (googleが検索にBERTを導入というニュースを見た時はとても驚きました) そこで記事では自然言語処理タスクのシンプルかつ運用しやすい実装方法を考えていきます。 実装にはpythonと以降説明するspaCyとGiNZAの2つのライブラリを使います。 環境: ubuntu18.04 python 3.6.8 ライブラリインストールはpipから行います 今回行うタスク 実務で需要が多いと思われる以下の2タスクを取り上げます。 固有表現抽出 フレーズ抽出 ##固有表現抽出とは 固有表現抽出(NER)をWikipedia

    spaCyを使ってルールベースの記述をシンプルに! - Qiita
    sh19910711
    sh19910711 2021/11/10
    "spaCyでは出力の可視化機能が豊富 + Jupyter環境で可視化するには以下のspacy.displacy / 固有表現がPERSON + (任意の文字列) + LOC + (任意の文字列) +「働」が含まれる語のルールを記述"
  • 遺伝的アルゴリズム(GA)で勉強計画立ててみた - Qiita

    スケジュールがめんどくさい 1440分の使い方というは知っているだろうか? 一日の時間の使い方を説いた名著であり,僕はとても感銘を受けた. の内容については読んでくれ,Amazon Prime会員であれば無料で読めるのでぜひ. このに感銘を受け,僕は1日のスケジュールを毎日30分単位で作成していた. 一か月これを続け,その間はとても効率よく課題や勉強が進んだ. 効果については僕の1サンプルしかないが,少なくとも僕はとても充実した一か月を過ごすことができた. 問題点は一つだけある. スケジュールを立てるのがめんどくさいのである ただひたすらめんどくさい. 毎日これを立てるのに結構な時間がかかり,その上修正するのにも時間がかかる. てめー時間が大事って言いながら時間かかる作業勧めてるんじゃねぇよと思いました. 機械にやらせよう 1440分の使い方ではブルジョアは秘書を雇ってスケジュールの

    遺伝的アルゴリズム(GA)で勉強計画立ててみた - Qiita
    sh19910711
    sh19910711 2021/11/03
    "1440分の使い方: 一日の時間の使い方を説いた名著 > スケジュールを立てるのがめんどくさい / 見込み工数 + 期限 + 重要度をリスト / ペナルティ = タスク超過 + 〆切超過 + 同一タスク連続"
  • deno で機械学習

    はじめに 最近、deno が面白くなり始めています。deno はコマンドラインバイナリを1つインストールすれば、import によりパッケージの読み込みはインターネットからダウンロードしてキャッシュされ、開発者が package.json を書く事もなく、とてもお手軽に TypeScript を書くことができます。 もし、機械学習をやりたいとして、事前準備(npm でインストールしたり、conda/pip 等で依存物をインストールしたり)が大幅に削減できるなら、とても便利だと思いませんか? deno機械学習 deno機械学習と聞くと tensorflow.js を使いたくなりますが、残念ながら現在はまだ deno で tensorflow.js を扱える様にはなっていません。しかし deno 1.8 では GPU を扱う為の機能が追加されており、ジワジワではありますが目標に向かって

    deno で機械学習
    sh19910711
    sh19910711 2021/09/23
    "現在はまだ deno で tensorflow.js を扱える様にはなっていません / deno 1.8 では GPU を扱う為の機能が追加されており、ジワジワではありますが目標に向かって進んでいる状況"
  • 【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル - Qiita

    2023/03/20 追記 Studio Ousia様によるLUKEモデルをベースに学習したSentence-LUKEモデルを公開しました。 Sentence-LUKEモデル: https://huggingface.co/sonoisa/sentence-luke-japanese-base-lite 手元の非公開データセットでは、日語Sentence-BERTモデル(バージョン2)と比べて定量的な精度が同等〜0.5pt程度高く、定性的な精度はモデルの方が高い結果でした。 2021/12/14 追記 MultipleNegativesRankingLossを用いて学習した改良版モデルを公開しました。 改良版(バージョン2)のモデル: https://huggingface.co/sonoisa/sentence-bert-base-ja-mean-tokens-v2 手元の非公開デー

    【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル - Qiita
    sh19910711
    sh19910711 2021/09/23
    TensorBoardにUMAPあったな / scipy.spatial.distance.cdist([query_embedding], sentence_vectors, metric="cosine") / "与えられたクエリ文に意味が近い文を検索 + タイトル文の潜在意味空間をUMAPで可視化"
  • PyTorch最新モデルでマルチコアTPUの本気を試す - Qiita

    ご覧いただきありがとうございます。 Google Colaboratoryにアカウントをお持ちの方は、上の「Open in Colab」という青いボタンを押せば直接notebookをColabで開けます。ぜひ動かしてみてください。 過去の記事も含め、全てのコードをGithubで公開しています。 1. はじめに 無料で使えるGoogle ColabはランタイムのタイプにTPUが選択できます。単に選択しただけで使えて欲しいところですが、あいにくそうはなっていません。また、ColabのTPUは8コア構成なのですが、1コアだけでも使えてしまうので、1コアだけで性能比較して、GPUとあんまり変わらないとしてしまっている記事をちらほら見かけます。実際、1コアだけだとP100と同程度の性能っぽいです。ただ、ColabのTPUのいいとろこは8コアを使えることと、TPUに付随するメモリがたくさん使えることな

    PyTorch最新モデルでマルチコアTPUの本気を試す - Qiita
    sh19910711
    sh19910711 2021/09/09
    torch_xla.distributed.xla_multiprocessing / "ColabのTPUは8コア構成なのですが、1コアだけでも使えてしまうので、1コアだけで性能比較して、GPUとあんまり変わらないとしてしまっている記事をちらほら見かけます"