配列の要素の差が、最大値になる値を探す問題です。 ただし、配列の値が、「後から先」へは計算できるが「先から後」へは計算できない。 x = array[i] y = array[j] x - y が最大になる値を求める。だたし、「i > j」でなければならない 実際のコード例

こんにちは。 A* search algorithm の Javascript 実装(下記)を利用し、最短経路探索を行ってみました1 2。地図表示には d3.mapzoom を利用しました3。 A* Search Algorithm in JavaScript (Updated) - Brian Grinstead javascript-astar (demo) https://github.com/bgrins/javascript-astar 始点は Paris、終点は Cannes の条件(query = {"start": "Paris", "end": "Cannes"};)を与えると下記の結果(および計算時間、最短経路解は地図上で矢印付き表示)が得られます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8
データ個数が$n$の時のバイナリサーチの計算量が$O(log_2n)$となる理由について書いてみました。 $log_an$ とは「$a$を○乗すると$n$になる」の「○」にあたる値です。 (例:$log_28$ は「$2$を○乗すると$8$になるような○」なので「$log_28 = 3$」) バイナリサーチのアルゴリズムを簡単に書くと 検索範囲(ソート済み)の中央に位置する値を検索値と比較する。 検索値が中央の値より大きければ中央より右側、小さければ中央より左側を検索範囲に設定する。 中央の値 == 検索値が真となるような中央の値が見つかる(または検索範囲が$1$になる)まで、1~2を繰り返す …となります。 検索範囲が$1$になった状態とは、(検索範囲のデータ個数を$n$として)「$n$に対して$\frac{1}{2}$を繰り返し掛けていき、検索範囲のデータ個数が$1$になった状態」と言
ちょっと発言力のありそうな方がテクニカルに誤りを書かれていたので、ここでひっそりと訂正しておきたい。 このスライドの43ページ目に、 The problem with Paxos-based algorithm is that replications are eventual consistent. と、色付き文字で協調されて書かれている。このスライドで主張したいことの本筋ではないが、Spannerの性能がよいこととは関係がなく、Paxosなどのレプリケーションと、トランザクションとの関係で誤解を広めそうなので指摘しておきたい。辻マサカリと言って差し支えないだろう。 PaxosはStrongly consistentであることがMade Simpleの論文で証明されている(Strongly consistentが何かはまた別の機会にここに書こうと思う)。ちょっと長いが引用しておこう。 T
非負値行列因子分解(NMF : Non-negative Matrix Factorization)を改めてやり直してみたPythonC++MachineLearningNMF非負値行列因子分解 一年ほど前に理解した非負値行列因子分解(NMF)を再実装して確認してみようとした記事です. Support Vector Machine(SVM)や最近ではDeep Learningなどが流行っていますが,こんな手法もありますよ,といった紹介になればと・・・ C++とPython2.7で久しぶりに実装してみました. 【2020/11/10 更新】 Python3系にアップデートしました。 Python版NMFコードをリファクタリングしました。 【2020/02/05 更新】 NMFを使ったリアルタイム音源分離のモックを作成しました。 こちら 【2018/03/23 更新】 一部本文を修正しました.
Webアプリケーションにおける機械学習活用の基礎──HTML5 Conference 2016セッションレポート 中井悦司(グーグル株式会社) みなさん、こんにちは。Google Cloud Solutions Architectの中井です。 HTML5 Conference 2016では、「Webアプリケーションにおける機械学習活用の基礎」と題して、機械学習の基礎となる仕組み、そして、機械学習を利用したクライアントアプリケーションの例を紹介させていただきました。今回は、この発表の内容を振り返りたいと思います。 機械学習とディープラーニング、そして、AIの関係 機械学習そのものは古くから利用されている技術であり、過去のデータを元にして、「(まだ見たことのない)未来のデータにもあてはまる一般的なルール」を発見することがその役割となります。つまり、はじめて見るデータに対して、何らかの予測を立て
微分可能な神経機械? Google DeepMindがNatureに投稿した論文「Hybrid computing using a neural network with dynamic external memory」が、なんだかヤバそうな香りがします。 公式の紹介記事「Differentiable neural computers」では、プラトンの記憶論から話が始まりますし、論文では脳の記憶を司る海馬に喩えていたりして、なかなか格調高いです。単なるニューラルネットワークの性能改善に留まらず、哲学や神経科学の観点からも理想の人工知能に一歩近づくことができたよ、これは新しいコンピュータの在り方の発明なのではないか、という気概が感じられます。 仕組みとしては流行りのAttentionという概念が入っていて、メモリを表す行列と、それを選択的に操作しながらベクトルを入出力するコントローラがありま
画像分野では今やDeep Learningによる解析が主流となりつつありますが、結果の解釈が難しいのが難点です。医療分野などでは特に、モデルの出力に対する説明力が強く求められるのではないでしょうか。今回は、そういった時に活用できる可視化手法を紹介します。 紹介する手法はOBJECT DETECTORS EMERGE IN DEEP SCENE CNNs, Zhou+, '14で提案されている方法です。 論文中でやっていること classificationモデルの学習(通常の学習) 1と同じ前処理を適用した画像を入力として、1で学習したモデルでclass毎の確率値を計算 2で使用した画像の一部の領域をマスクした画像を入力として、class毎の確率値を計算 3を5000個程度の領域で行い、値を取得 4の個々の出力値と2の出力値の差分をとる 任意の閾値を設定し、5の値が閾値を超えていない領域は0
テンソル分解の基本中の基本のCP分解を導出して実装した。最適化の方法は色々あるらしいけど多分いちばんよく使われる Alternating Least Square (ALS) を使った。ちなみにここでテンソルって呼んでるのはただの多次元配列のこと。 まとめ CP分解とは AlSによるCP分解の更新式を導出 ALSによるCP分解をpythonで実装 人工データを使って実験 CP分解とは CP分解が何かを知るためには、まず Matrix factorization (MF) について知ると良い。 MFでは、N x M 行列 X を以下のように分解する ここで、は N x R 行列で、は M x R 行列。この分解を要素ごとに書くとこうなる つまり要素 を なんかよくわからない次元のベクトル との内積で表現することにしましょうと言っているわけ。 じゃあこの と っていうベクトルたちをどうやって求
今回はスチューデントのt分布の最尤推定を実装します。スチューデントのt分布はガウス分布より外れ値に対して頑健な性質を持つ分布としてよく知られていますが、よくよく思い出せばこの分布を用いたことが全くなかったので、良い機会ですしその頑健性を実際に確認してみます。一回目のPRML実装のときに標準ライブラリ以外は極力numpyだけというルールを設けましたが、今回はディガンマ関数というあまり馴染みのない関数が出てきたためscipyも使いました。この企画2回目にして早々にnumpy以外のサードパーティーのパッケージを使ってしまうこととなり、先が思いやられてしまいます。 スチューデントのt分布は、ガウス分布$\mathcal{N}(x|\mu,\tau^{-1})$の精度パラメータ$\tau$の共役事前分布としてガンマ分布${\rm Gam}(\tau|a,b)$を用い、精度を積分消去して得られる分布で
ここで書くのは基本的なことなので、実際の面接ではもう少し複雑な問題になるかもしれません。 逆にいうと、このあたりの問題は一度は解いておいた方がいいので列挙しました。 普段ウェブの開発をしているだけでは考えたことがない場合もあるので、一度確認するといいかもしれないです。 アルゴリズムチェックポイント計算量, ハッシュと二分木, ソート, 再帰 計算量計算量の話 http://qiita.com/cotrpepe/items/1f4c38cc9d3e3a5f5e9c 二分探索とは https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2 ハッシュテーブルとは https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%83%86%E3%83
3Dグラフィックスのための数学入門 クォータニオン・スプライン曲線の基礎posted with カエレバ郡山 彬,峯崎 俊哉,原 正雄 森北出版 2015-10-27 Amazonで探す楽天市場で探すYahooショッピングで探す 目次 目次 はじめに 各種スプラインにおける連続性 3次スプライン補間とは? 条件1 条件2 条件3 条件4 条件5 3次スプライン補間を手計算+pythonで解く 入力データ数が不定な場合の3次Spline補間 Pythonサンプルコード C++サンプルコード 3次スプラインにおける曲率の計算方法 x-y座標系における点群のスプライン補間 方位の計算方法 曲率の計算方法 参考資料 MyEnigma Supporters はじめに 3次スプライン補間は、 計算がそこまで複雑ではなく、 また二次微分までの連続性が担保されているため、 様々な用途に利用されています。
要件:100万レコードからなる{ID,SCORE}の中からTOP N件をSCORE降順で得たい。 普通にやる HashMap<String, Double> items = new HashMap<>(); for (int i = 0; i < 1000000; i++) { items.put(String.valueOf(i), r.nextDouble()); } List<Entry<String, Double>> entries = new ArrayList<>(items.entrySet()); long t10 = System.currentTimeMillis(); Collections.sort(entries, new Comparator<Entry<String, Double>>() { //比較関数 @Override public int comp
これまでの自分のプログラミングは機械学習周辺に偏っていて、コンピューターサイエンスやったことある人間が通ってくる基本的なアルゴリズムについての知識が足りていないとの指摘を受けたので、その部分を埋めるためにCodingBatにチャレンジしてみた。 Coding Bat http://codingbat.com/ 簡単なアルゴリズムをひたすら書かせるプログラミングサイトで、初めの一歩として楽しくできた。 自分のコードはGitHubに載せておくことにする。 次はもう少し難しいアルゴリズムを練習するために、積読になっているこの本を練習する予定。 世界で闘うプログラミング力を鍛える150問 トップIT企業のプログラマになるための本 作者: Gayle Laakmann McDowell出版社/メーカー: マイナビ出版発売日: 2012/11/13メディア: Kindle版この商品を含むブログ (3件
世界を考察する新しい方法を手に入れたときの感覚が大好きです。特に好きなのは、いずれ具体的なコンセプトに形を変えるボンヤリとした考えがあるときです。情報理論は、その最たる例です。 情報理論は、多くの物事を説明するための正確な言葉を与えてくれます。自分はどのくらい理解できていないのか?質問Aの答えを知ることが、質問Bを答えるのにどのくらい役立つのか?ある種の信念が他の信念とどの程度似ているのか?こういうことに対し、若くて未熟なころから自分なりの考えがありましたが、情報理論に出会って正確で強固な考えとしてはっきりと固まりました。その考えは、桁外れの、例えばデータの圧縮から量子物理学や機械学習、さらにはその間に広がる数多くの分野に応用が利くものです。 残念なことに、情報理論は少々威嚇的に見えてしまうのですが、そう断定すべき根拠は全くないと思います。実際、情報理論の多くの重要な概念は完全に視覚的に説
c > Damerau–Levenshtein distance 実装 > 特定の文字列に対するコストに緩急つける > v0.2algorithmLevenshtein#migrated /* v0.2 2016 Oct. 21 - use cost from functions given below - add calc_cost_transposition() - add calc_cost_substitution() - add calc_cost_deletion() - add calc_cost_insertion() - increase size of DA[] for 128x128 v0.1 2016 Oct. 19 - branched from stackoverflow post(*1) [*1] http://stackoverflow.com/questi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く