タグ

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

  • 関連タグはありません

タグの絞り込みを解除

AlgorithmとALgorithmとdeferredに関するagwのブックマーク (955)

  • 計算グラフの微積分:バックプロパゲーションを理解する | POSTD

    はじめに バックプロパゲーションとは、ディープモデルの学習を計算可能にしてくれる重要なアルゴリズムです。最近のニューラルネットワークではバックプロパゲーション (誤差逆伝播法) を使うことで、最急降下法による学習が愚直な実装と比べて1000万倍速くなります。 例えば,バックプロパゲーションでの学習に1週間しかかからないのに対して、愚直な実装では20万年かかる計算になります。 ディープラーニングでの使用以外にも、バックプロパゲーションはさまざまな分野で使えるとても便利な計算ツールです。それぞれで呼ばれる名称は違うのですが、天気予報から、数値的安定性を分析する時にまで多岐にわたり使用できます。実際に、このアルゴリズムは、いろいろな分野で少なくとも20回は再開発されています(参照: Griewank(2010) )。一般的な用途自体の名前は”リバースモード微分”といいます。 基的に、この技術

    計算グラフの微積分:バックプロパゲーションを理解する | POSTD
  • TopCoder の傾向と対策4(C++編:数え上げ)

    ホームに戻る TopCoder の傾向と対策4(C++編:数え上げ) 0、はじめに Div2 の hard は数え上げの問題がでます。 単に数え上げという視点で考えてみます。 1、1000000007 で割った余りを答えよ問題対策 TopCoder では整数の64ビット制限を考慮してくれる。 よって、long long より大きな数値を考えなくても良い。 この数値を超える答えが出る場合には、 答えを 1000000007 で割った余りを答えよ、とされる。 足し算においては足し算を行うごとに % 1000000007 する。 引き算のときは先に引かれる数に 1000000007 を足しておく。 そこから引く数を引いて % 1000000007 する。 こうすると結果がマイナスにならず結果がおかしくならない。 掛け算する場合は足し算と同様である。 A * B をするとき、 A、B それぞれを

  • n個の球をm個の箱に分ける方法

  • Mo's algorithm - ペケンペイのブログ

    Mo’s algorithm について説明します。 Mo’s algorithm の動作の様子をアニメーションにしてみました。アニメーションを見れば、計算量解析パートは自明でしょう。IE以外なら見れると思います。 https://pekempey.github.io/mo_algorithm/mo.html Mo’s algorithm とは 区間クエリ系の問題を解くためのアルゴリズム。次のようなクエリに対して有効。 要素が更新されない クエリの先読みが可能 区間 [L,R] の結果から [L-1, R], [L+1, R], [L, R-1], [L, R+1] の結果が容易に得られる Mo’s algorithm の流れ まず区間を平方分割し、左端をキーにしてクエリをバケットに入れる。その後、各バケット内で右端をキーにしてソートする。 結局のところ上の操作は次の比較関数でソートすること

    Mo's algorithm - ペケンペイのブログ
  • Facebookのニュースフィードを生成するアルゴリズムはどのようにして決められているのか?

    By Chris Potter Facebookのホーム画面には、自分と関連する人やフォローしているアカウントの投稿などがタイムラインで表示されます。1日あたりに世界でFacebookを利用しているユーザーは10億人にものぼると言われており、そんなFacebookのタイムラインを決めているアルゴリズムの中身はトップシークレットともいわれていますが、その開発現場では意外とも思える泥臭い作業が行われているようです。 オンラインマガジンのSlateは、カリフォルニア州メンローパークに位置するFacebook社の中にあるニュースフィード開発チームの現場に入る機会を得たとのこと。そこで記者が見たFacebookのアルゴリズム開発の様子が紹介されています。 How Facebook’s news feed algorithm works. http://www.slate.com/articles/

    Facebookのニュースフィードを生成するアルゴリズムはどのようにして決められているのか?
  • Codeforces Round #339 (Div. 1) A. Peter and Snow Blower - pekempey's blog

    ※問題をエスパーしたので問題を勘違いしています。 問題文 codeforces.com 問題概要 点P と 多角形 S が与えられる。 点 P を中心とした円を 2 つ描き、多角形 S がその円の間に挟まれるようにする。 この 2 つの円に囲まれる領域の面積の最小値を求めよ。 解法 点と多角形の距離の最小値・最大値を求めれば面積の最小値が求められる。 点と多角形の距離の最小値は、点と多角形のそれぞれの辺の距離の最小値になる。 そのため、点と線分の距離を求めたい。 点と線分の距離は、点が緑色の領域内部にあるかどうかで求め方が変わる。 以降、直線の単位方向ベクトルを $d=(q-p)/|q-p|$ とする。 緑色の領域の内部にある場合 図でいうと r1 がこのケースになる。これは点と直線の距離を求めればいい。 点と直線の距離は外積を用いて、 $$ | d \times (r-p) | $$ で

    Codeforces Round #339 (Div. 1) A. Peter and Snow Blower - pekempey's blog
  • CodeIQについてのお知らせ

    2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod

    CodeIQについてのお知らせ
  • Reservoir sampling - Wikipedia

    Reservoir sampling is a family of randomized algorithms for choosing a simple random sample, without replacement, of k items from a population of unknown size n in a single pass over the items. The size of the population n is not known to the algorithm and is typically too large for all n items to fit into main memory. The population is revealed to the algorithm over time, and the algorithm cannot

  • Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理

    2015年12月17日、Google ChromeJavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原

    Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理
  • 最小完全ハッシュ函数 - epii's physics notes

    最小完全ハッシュ函数 ハッシュ函数のうち、可逆で、かつ、生成するハッシュ値の値域が最小である函数のことを、最小完全ハッシュ函数と言います。 その作り方を解説していきたいと思います。

  • 連載やねうら王miniで遊ぼう!7日目 | やねうら王 公式サイト

    今回は、局面のhash値の計算について説明します。 局面に対応するhash値の取り出し 局面に対して、StateInfo::key()からhash値が得られる。 このhash値は、局面に対応する固有の値である。 しかし通例、hash値は64bitしかないので、異なる局面であっても、たまたま同じhash値になることがある。これをhash衝突と言う。 やねうら王miniにはこのhash値を128bitにしたり256bitにしたり出来る無駄機能があるが、その話は次回にしよう。 さて、このkeyを取り出してみよう。その局面固有の内容を格納しておくのはStateInfoであった。Positionクラスのstate()を呼び出すとStateInfoの参照が得られる。StateInfoのkey()を呼び出すとこのhash値が得られる。 実際にやってみよう。 void user_test(Position

  • ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも

    明日から RubyKaigi なので、ちょっとした小ネタを一つ。 例えば、0 から 9999 までをハッシュに順に入れます。 h = {} 10000.times do |n| h[n] = true end このとき、h[9998] や h[9999] は、h[0] や h[1] より高速です。 どのくらい高速かというと、 1_000_000_000.times { h } # 40.8 sec (ループ自体の速度) 1_000_000_000.times { h[9999] } # 57.2 sec 1_000_000_000.times { h[0] } # 89.1 sech[0] は 89.1 - 40.8 = 48.3 nsec 、h[9999] は 57.2 - 40.8 = 16.4 nsec ということになります。なんと 3 倍も速い。*1 なぜこんなことが起きるのか ハ

    ハッシュは頻繁に参照する値を最後に入れると高速 - まめめも
  • 最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita

    更新履歴 最適解と探索範囲を追記しました。 2016/11/29 @fimbulさん 編集リクエストありがとうございました。修正しました。 2017/7/10 @tomochiiiさん 編集リクエストありがとうございました。Easom functionを引用元の数式に修正、Schaffer function N. 2とN. 4の数式の修正 2018/5/9 @applicative62045 さん 編集リクエストありがとうございました(編集リクエストの確認遅くなりました。2019/12/31記載) Griek functionを修正 2019/12/31 @okamoto6496 さん 指摘ありがとうございました。Five-well potential functionの数式を修正。 2020/01/20 @higedura さん 指摘ありがとうございます。Bukin function N

    最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
  • 実験計画法と組合せ最適化 - Qiita

    これは、アルゴリズム Advent Calendar 2015の3日目の記事です。 はじめに 実験計画法の簡単な紹介と、その発展として組合せ最適化によるアプローチを紹介します。 背景 センサー情報からある解析をしたいとします。 センサーは、1万円のものと3万円のものがあり、置かないこともあるので、3種類の選択があります。 センサーの設置場所は、20カ所の候補があります。 全センサーの総購入費用は5万円以下に抑えないといけません。 どこにいくらのセンサーを置いたら、効率よく検証できるのかを知りたいものとします。 ケースの例としては、「A地点とB地点に1万円のセンサー、C地点に3万円のセンサーを配置」となります。 用語 下記の用語を使います。 要因:水準を決めたい検討対象。今回は、センサーの配置候補。 水準:要因の取り得る値。今回は、センサーの費用で、0万円、1万円、3万円の3種類。 交互作用

    実験計画法と組合せ最適化 - Qiita
  • 映像Codec屋から見たYJKカラー

    色差信号3つのうち1つは、輝度と2つの色差があれば求められるので色差信号は2信号で表現する。 色差の値域は輝度に比べて大きくなるため、色差の値を正規化する表現もある。Yが0.0~1.0の間の値を取るときに色差が-0.5~+0.5の範囲になるように調整するなどである。 輝度・色差信号のメジャーな規格にITU-R BT.601、HDTV用の ITU-R BT.709 勧告がある。JPEGやMPEG形式で用いられるカラー信号である。規格書は次で入手できる。また、最近4K/8K用にITU-R BT.2020が勧告された。 https://www.itu.int/rec/R-REC-BT.601/en https://www.itu.int/rec/R-REC-BT.709/en https://www.itu.int/rec/R-REC-BT.2020/en ITU-R BT.601では、Yと色差

  • /proc/cpuinfo: 全点対間最短路を高速に求める

    フィックスターズは今年も ACM ICPC つくば大会 にスポンサーとして協賛しております。今年はコンテスト後の懇親会でクイズを出題しているのですが、その問題準備の際に作ったはいいものの結局使われなかったコードが大量に出てきてしまったため、それらをまとめて簡単な解説とともに公開いたします。 全点対間最短路問題 全点対間最短路問題はN個の頂点を持つ有向グラフにおける任意の2点間の最短路を求める問題です。密なグラフの全点対間最短路を求めるアルゴリズムとしてワーシャル-フロイド法が広く知られており、以下のような非常にシンプルなコードで求めることができます。 // 入力: A[i][j] = 頂点iと頂点jを結ぶ辺の重み // 出力: A[i][j] = 頂点iから頂点jまでの最短路の重みの総和 for(int k = 0; k < N; ++k) for(int i = 0; i < N; ++

  • はてなブックマークにおけるアクセス制御 - 半環構造に基づくモデル化

    はてなブックマークの持つデータには多岐にわたるアクセス制御のための属性があり、一貫した権限確認のしくみが必要となる。できる限り効率的にデータを取得するにはクエリ段階でアクセス制御に基づくフィルタリングが必要となるが、たとえばMySQLで取得した場合とElasticsearchで取得した場合など、複数パスでの整合性も求められる。発表では、半環構造を用いることで整合性を担保するしくみと、一貫性を保つためのScalaでの実装上の工夫を紹介する。 WebDB Forum 2015 C-4: 技術報告セッション http://db-event.jpn.org/webdbf2015/Read less

    はてなブックマークにおけるアクセス制御 - 半環構造に基づくモデル化
  • 近似文字列アルゴリズムのgestalt pattern machingについてメモ

    Google 検索でタイポをすると、意図したであろう綴りを教えてくれたり、意図通りの検索結果を返してくれる。 このスペルチェック機能では、入力文字列が来の文字列とどのくらい似ているのかを評価するアルゴリズムが肝で、編集距離のアルゴリズムはよくしられている。 ふとしたことから、Ratcliff/Obershelp pattern recognition(gestalt pattern maching ともいう) という編集距離とは別のアルゴリズムに出くわした。 このアルゴリズムは1980年代から存在するが、より利便性の良いアルゴリズムが発明されていったからなのか、wikipedia に載っていないくて、手元のアルゴリズムにもみあたらない。 まだこのアルゴリズムが輝いていた 1988 年に、 Dr. Dobb’s Journal に発表された次の記事(サンプル実装はアセンブリ言語!)を元に

    近似文字列アルゴリズムのgestalt pattern machingについてメモ
  • 高速な編集距離の計算方法 - Qiita

    今日紹介するコードはここにおいてあります。 https://gist.github.com/aflc/6482587 編集距離(levenshtein距離)の計算方法で一番有名なのが動的計画法を使ったもので、これはWikipediaにも載っているお手軽でよく使われているものです。 しかし、この方法は結構時間がかかるので、他にも高速な手法がいくつか提案されています。 NOXさんのブログエントリを読んでいただくのが一番手っ取り早いのですが、ビットパラレル法というのが上手くハマると10倍以上高速です。 ここで紹介されている論文では64文字以上の比較ができないのですが、今回は Heikki Hyyrö, "Explaining and extending the bit-parallel approximate string matching algorithm of Myers", 2001 と

    高速な編集距離の計算方法 - Qiita
  • キャラソートのアルゴリズムについて調べた - 唯物是真 @Scaled_Wurm

    「キャラソート」とは 以下のページのようにキャラ(あるいは人物などの何らかの要素)を2つずつ表示して「どちらか好きか?」という質問に連続で答えていくことで全体のランキングを作るWebサービス(「◯◯キャラソート」、「◯◯ソート」など)が様々な作品について存在している 東方キャラソート どんなアルゴリズムを使っているのかに興味がわいたので調べてみました ソートのアルゴリズム 以下の解説記事を読むとわかるようにマージソートやヒープソートといったソートアルゴリズムを人間にそのままやらせているらしい ただし単純にソートアルゴリズム使うだけではなく、計算量を減らすため引き分けなどの場合にはそのペアのデータを一つにまとめたものとして扱うように工夫している ハロプロ・ソートの解説 咲-saki-キャラソート - 勤々惰々 管理しないsabakan » キャラソートアルゴリズムについて ソートアルゴリズム

    キャラソートのアルゴリズムについて調べた - 唯物是真 @Scaled_Wurm