タグ

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

タグの絞り込みを解除

algorithmに関するmanabouのブックマーク (720)

  • 確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | POSTD

    確率的データ構造は少ないメモリでデータをコンパクトに保存し、保存されたデータに関するクエリに対し、おおよその答えを提供してくれます。クエリに対し空間効率の良い方法で答えるように設計されており、それはつまり、正確さを犠牲にするということにもなります。しかし、これらは一般的に、問われているデータ構造の仕様にもよりますが、誤差率の保証と境界を提供してくれます。メモリ使用量が少ないため、確率的データ構造はストリーミングや低出力の設定に特に有用なのです。ですから、動画の視聴回数を数えたり、過去に投稿された一意となるツイートのリストを維持したりするなど、ビッグデータの環境下では非常に有用です。例えば、 HyperLogLog++ 構造 は、2.56KBのメモリで最大790億の一意のアイテムを数えることができるのですが、誤差率はわずか1.65パーセントです。 Fast Forward Labsのチームは

    確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | POSTD
  • B TreeとB+ Treeの違い - Carpe Diem

    概要 インデックスに対してMongoDBはB Treeを採用し、MySQLのInnoDBはB+ Treeを採用しています。 どうして採用しているアルゴリズムが違うのだろう?と思って調べてみました。 主な違い B+ TreeはほとんどB Treeと同じですが、以下の点が異なります。 リーフノードとリーフノードを結ぶポインタがある データはリーフノードのみに保持する 具体例 言葉だけだと分かりにくいので、Visualizeするツールを使って具体例を表示します。 [1, 2, 3, 4, 5, 6, 8, 10, 15, 18]という数列に対し、Order: 3で作ってみます。 Orderは1ノードから出る枝の数のことです。 B Tree B-Tree Visualization B+ Tree B+ Tree Visualization 先程のB Treeと違って、データはリーフノードに持つの

    B TreeとB+ Treeの違い - Carpe Diem
  • Courseraで高評価な「Algorithms, Part I」を使った社内勉強会を開催しています - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:shiba_yu36 です。 最近自分が基礎的でずっと廃れなさそうな分野であるアルゴリズムを少しずつ学びたいと考えていました。しかし、アルゴリズムはあまりにも基礎分野のため、モチベーションをずっと保ち続けられるかという不安もありました。そこで周りの人も巻き込むことでモチベーションを保ち続けたいと思い、社内で勉強会を開催したいと考えました。 勉強会の教材を選定していたところ、Courseraで「Algorithms, Part I」という非常に高評価な教材を見つけることが出来たので、最近はこの教材をみんなで集まって見ながら議論をするという体裁で社内勉強会を開催しています。実際にやってみると、社内勉強会という形式を取ったのも良く、さらにこの教材を利用したことも良かったと感じています。 少しずつ社内勉強会で講義を進めていき、ようやく半分のWeek3まで終

    Courseraで高評価な「Algorithms, Part I」を使った社内勉強会を開催しています - Hatena Developer Blog
  • 私が書いた最速のハッシュテーブル – PART 3 | POSTD

    テーブルを、異なるmax_load_factor()と比較する 先に示した最後のグラフは、私のテーブルとgoogle::dense_hash_mapがmax_load_factorに0.5を使う一方で、std::unordered_mapとboost::multi_indexが1.0を使って動作検証を行っていました。もしかすると他のテーブルも、低いmax_load_factorの値を使えば、より速くなるのではないでしょうか? それを確かめるため、最初のグラフ(成功したルックアップ)に使ったのと同じベンチマークを実行しました。ただし、どのテーブルもmax_load_factorは0.5に設定しました。そして、テーブルの再割り当ての直前に測定を行いました。もう少し詳しく説明しますが、まずは次のグラフをご覧ください。 注釈: 成功したルックアップの占有率(load factor) 0.5 (縦軸

    私が書いた最速のハッシュテーブル – PART 3 | POSTD
  • Convolutional LSTM Network の ライブラリ実装状況 〜 空間座標の位置特徴量 と 時間軸の時系列特徴量 を 両方、学習させる deep neural network モデル - Qiita

    実用価値の高いCNN畳み込み層とLSTMを組み合わせたモデルです。 論文 では、地理空間の各座標地点ごと の 時系列降水量 分析タスク を 扱っています。 GIS地図エリアごとの時系列変化グラフ を 出す こと ができるため、降水量分析問題 以外にも、マーケティング商圏分析 から、無人自動車支援のための交通流量分析 など、広範な用途 が 考えられます。 【 原論文 】 Xingjian Shi, Zhourong Chen, Hao Wang and Dit-Yan Yeung, Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting 【 関連Webページ 】 masataka46さん Qiita記事 「LSTMを改良してconvLSTMにする」 convLSTMについて co

    Convolutional LSTM Network の ライブラリ実装状況 〜 空間座標の位置特徴量 と 時間軸の時系列特徴量 を 両方、学習させる deep neural network モデル - Qiita
  • SAT ソルバーの最新動向と利用技術

    SAT web , web 19 PPL2017 2017 3 9 @ 1 / 49 ▶ SAT, SAT , SAT , , SAT ▶ SAT SAT ▶ DPLL, CDCL, SAT , SAT SAT ▶ Certified UNSAT, UNSAT , SAT, CEGAR SAT ▶ 2 / 49 ▶ SAT, SAT , SAT , , SAT ▶ SAT SAT ▶ DPLL, CDCL, SAT , SAT SAT ▶ Certified UNSAT, UNSAT , SAT, CEGAR SAT ▶ 3 / 49 SAT, SAT , SAT , SAT , SAT 4 / 49 SAT SAT (Boolean satisfiability testing) SAT NP- [Cook, 1971] SAT [Garey+, 1979] 5 / 49 SAT SAT

  • Linear algebra cheat sheet for deep learning

    During Jeremy Howard’s excellent deep learning course I realized I was a little rusty on the prerequisites and my fuzziness was impacting my ability to understand concepts like backpropagation. I decided to put together a few wiki pages on these topics to improve my understanding. Here is a very basic intro to some of the more common linear algebra operations used in deep learning. NEW: check out

    Linear algebra cheat sheet for deep learning
  • スーファミサウンドの裏で何が行われているか - ポルノアニメ

    qSPCの開発も山場を越えた感があるのでたまには進捗報告以外の話を…… 多分、普段は宇宙語が書いてあるブログだと思って見てない人が多いと思うので前提知識を手短に書いておくと: スーパーファミコンにはメインのCPUと別にサウンド用のCPUが乗っている オーディオデバイスにはサウンドCPUからしか触れない サウンドCPUはメイン側とは独立したメモリを抱えている このメモリは64KBしかない メインCPUとサウンドCPUのやり取りには、あまり速くない通信路を使う必要がある という制約があるので、いかにデータをコンパクトにして、最低限の物だけをサウンドCPUに送るかという所で開発者の腕が試されることになる。で、プロの技はどんなもんだろうかと、メモリダンプを見ながら定番のグラディウスIIIをやってみると…… ボスを倒して、ステージが変わるタイミングで一瞬画面が止まるので、ここで曲を入れ替えていると思

    スーファミサウンドの裏で何が行われているか - ポルノアニメ
  • GitHub - rlcode/reinforcement-learning: Minimal and Clean Reinforcement Learning Examples

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - rlcode/reinforcement-learning: Minimal and Clean Reinforcement Learning Examples
  • 物理のいらない量子アニーリング入門 - Platinum Data Blog by BrainPad

    記事は、当社オウンドメディア「Doors」に移転しました。 約5秒後に自動的にリダイレクトします。 当社の社員が物理を専門としない人向けに量子アニーリングについて解説します! こんにちは、A.I.開発部の太田です。 今回は量子アニーリングの簡単なシミュレータを作ってみたり、実際のD-Waveを使ってみた経験から、物理を専門としない人向けに量子アニーリングについて解説しようと思います。 (シミュレータのコードはgithubで公開しています。私自身、量子アニーリングについては最近勉強し始めたところなので、色々ご指摘いただけると幸いです。) さて、私の所属する部署の役割として、機械学習人工知能関連の技術調査や社内への展開を行っており、その一環として昨年12月に早稲田大学の田中先生をお呼びして開催した量子アニーリング勉強会が社内で大変好評でした。 昨年度は量子アニーリングに関する一般書籍が発売

    物理のいらない量子アニーリング入門 - Platinum Data Blog by BrainPad
  • 私が書いた最速のハッシュテーブル – PART 2 | POSTD

    素数か2のべき乗か ハッシュテーブルのアイテムをルックアップする際に高負荷なステップが3つあります。 キーをハッシングする キーをスロットにマッピングする 該当スロットのメモリをフェッチする ステップ1は、キーが整数であれば、低負荷になります。単にintをsize_tにキャストするだけです。しかし、文字列のようなタイプのキーの場合は高負荷となります。 ステップ2はよくある整数モジュロ演算です。 ステップ3はポインタの間接参照です。std::unordered_mapの場合は複数のポインタ間接参照となります。 処理の遅いハッシュ関数でなければ、直観的にステップ3が最も高負荷になると考えると思います。しかし、全てのルックアップでキャッシュミスが生じなければ、整数モジュロが最も高負荷な処理となります。現代のハードウェアにおいても整数モジュロは非常に遅いのです。 Intelマニュアル では、整数モ

    私が書いた最速のハッシュテーブル – PART 2 | POSTD
  • chokudaiサーチ(ビームサーチ亜種)の利点の話 - chokudaiのブログ

    たまには技術ネタを。やたら要望が多いので。 最後の「多様性って何?」が番です。ここの説明さえできればいいなって思ってました。実装の話まで行こうかと思ったけど、長くなるから要望があれば、って感じで。 貪欲法とは? 多分分かる人しか読まないのでざっくり。 現在の状態から、1手先だけを探索し、もっとも評価が上がる1手を選んで状態を更新する、というアルゴリズムです。 ビームサーチとは? ビームサーチでは、「1手先のみ」という条件は変わりません。変わるのは、保持する状態の数です。 ビーム幅Kのビームサーチは、現在持っているK個以下の状態から、1手先だけを探索し、評価値で上からK個の状態を、次の状態として保持する、という感じです。 当然、K=1の時は、貪欲法と同じ結果になります。 貪欲法である程度良い解が出せるが、最適な解が出せない、というような問題に対し、手軽により良い解を見つけることが出来ます。

    chokudaiサーチ(ビームサーチ亜種)の利点の話 - chokudaiのブログ
  • http://www.h5con.cn/endymecy/awesome-deeplearning-resources

    http://www.h5con.cn/endymecy/awesome-deeplearning-resources
  • 組合せ最適化を使おう - Qiita

    野菜の選び方はナップサック問題、乗り換え駅探索は、最短路問題といいます。典型問題は、よく研究もされているので、多くの場合、効率的な解法があります。あるいは、定式化がされているので、すぐ解くことができます。あとで、やってみましょう。ここで、あげている全ての典型問題の実行例は、典型問題と実行方法をご覧ください。 汎用問題 最近、私がやっているコンテナの仕事のお話しをします。 世界中の人たちが、いろいろなものを安く買えるのはコンテナ輸送のおかげです。中国などで生産したものを日アメリカやヨーロッパに、大量に安く運べるからです。でも、空のコンテナが、どんどんたまります。また中国に戻さないといけません。いつ、どこからどこに戻すかを決めるのが、最小費用流問題になります。ところが、最小費用流問題で表せない制約条件もあります。1 つが、カボタージュとよばれるものです。カボタージュというのは、国内のみの輸

    組合せ最適化を使おう - Qiita
  • GitHub - nejumi/kaggle_memo

    まずは、素うどんのXGBoostにかけて、plot_importance, feature_importances_を確認する。しかる後に、各特徴量をF-SCOREの高い順にExploratory Data Analysis (EDA)を行い、データに対する感覚を掴む。特徴量の数が少ないのであれば、初めからEDA。 情報を含まないcolumnsを除く。[Kaggle Kernel: R, Python] 標準偏差が0の説明変数 (constant cols) を除く。 重複した説明変数 (duplicated cols) を1つだけ残して他を除く。 相関係数が1である説明変数の組 (perfectly correlated cols) を探し、1つだけ残して他を除く。 各列について、値が0である説明変数の数を数えて、合計値を追加の説明変数として加える (count 0 per row)。逆

    GitHub - nejumi/kaggle_memo
  • Deeplearning 4 j のクイックスタートガイド - Deeplearning4j: Open-source, Distributed Deep Learning for the JVM

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Deeplearning 4 j のクイックスタートガイド - Deeplearning4j: Open-source, Distributed Deep Learning for the JVM
  • 私が書いた最速のハッシュテーブル – PART 1 | POSTD

    結局、やり出したら止まりません。私は以前、” I Wrote a Fast Hashtable(私が書いた高速なハッシュテーブル) “という記事と、それに次いで” I Wrote a Faster Hashtable(私が書いたより高速なハッシュテーブル) “という記事をブログにアップしましたが、今回ついに、最速のハッシュテーブルを書き上げました。これが意味するところは、ルックアップがどのハッシュテーブルよりも速いということです。それに加えて、挿入や削除も(最速とまではいかないまでも)非常に速く行えます。 秘訣は、探索回数の上限を設定したロビンフッドハッシュ法を使用することです。ある要素が、その理想的な位置からX数以上、離れた位置にある場合、テーブルを拡張することで、全ての要素が、その大きなテーブル内において、理想的な位置に近づくようにします。結果的に、このやり方は非常にうまくいきました。

    私が書いた最速のハッシュテーブル – PART 1 | POSTD
  • Google Optimization Tools(無料)は、最適化問題の救世主になるか。 - GiXo Ltd.

    Googleが無料で提供する「最適化問題」ソルバー 日は、Googleが無料で公開(Apache License 2.0)している最適化問題ソルバー「Google Optimization Tools」を取り上げます。こちら、昨今話題の pokemon GO でも、このRouting使えるんじゃないか、と(ごく一部の特定層の間で)盛り上がっていたりもします。 Google Optimization Tools (=or-tools)は、「software suite」と表現されています。「Problem Solver(ソルバー)」の集合体と考えるのが良いかなと思います。※少し長いのですが、以下にOverviewを引用しておきます。(英語です。読み飛ばしてもOKです。)色々書かれてますが、要は「いろんな最適化問題を解く為のソルバーだよ」「簡単に使えて、オープンソースだよ」という感じです。

    Google Optimization Tools(無料)は、最適化問題の救世主になるか。 - GiXo Ltd.
  • GLSLで描くCircle Inversion Fractals - 心鏡曼荼羅

    qiita.com GPUで暖を取りたい人のためのGLSL Advent Calendar 2016,25日目の記事です. 前回の記事で紹介した円の反転という操作を用いてフラクタルを描いてみます. まずはこの画像のような4つの円板とその反転を考えます.それぞれの円の反転は自分以外の円板を自分の内側に移します.よって,それぞれの円の内側には3つの円が移され,12個の円ができています.次に,ショットキー円の反転を新たに現れた小円にも適用することを繰り替えすと,以下のように円が入れ子状に続いていきます. 円が接するときには,このような美しいネックレス上の構造を見ることができます.これらの円列をショットキー円の軌道(Orbit),円列の極限を極限集合と呼びます. この処理はJavaScriptで書くと以下のような感じになります. let orbits = []; orbits.push(schot

    GLSLで描くCircle Inversion Fractals - 心鏡曼荼羅
  • 科学者のあり方を変える帰納プログラミング - SmartNews Engineering Blog

    こんにちは。スマートニュースの高橋力矢です。前回のブログでデータ分析+ゲーム理論を題材として、帰納と演繹をまとめる利点をお伝えしました。なんらかの入力 (e.g., ゲーム理論における利得表) があり、特定のアルゴリズム (e.g., 各プレイヤーの戦略的意思決定) を記述することで出力 (e.g., ナッシュ均衡) を得るアプローチは、ほとんどのソフトウェア・エンジニアが慣れ親しんでいるプログラミングそのものです。つまり多くのエンジニアが手がけるプログラミングの実態は演繹的プログラミングです。ではこの対極に位置する帰納プログラミング (Inductive Programming) はどの程度進歩しているでしょうか。 帰納プログラミングの一分野である確率プログラミング (Probabilistic Programming) は統計学や機械学習との関係が密接で、日でも利用者の多いStanを

    科学者のあり方を変える帰納プログラミング - SmartNews Engineering Blog