タグ

Algorithmとalgorithmに関するfunayoiのブックマーク (36)

  • H.264の秘密 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません

    H.264の秘密 | POSTD
  • フーリエ変換と画像圧縮の仕組み

    2. 自己紹介 • Yuichi Takeda / @ginrou799 • 今 • ミクシィでiPhoneアプリの開発 • iOSの社内研修なども • になりました http://goo.gl/OaLUDc • オープンな勉強会として研修をやってます (無料、Androidと隔週) • 昔 • 大学、大学院の専攻は画像処理 今日は昔取った杵柄についてお話します

    フーリエ変換と画像圧縮の仕組み
  • 10秒以内にウォーリーを探す合理的な方法

    これが大人だ! 「ウォーリーを探せ」って絵、覚えてますか? そう、このごちゃごちゃした人混みから赤と白のボーダーの服を着たウォーリーを探し出すゲーム。子どものころ必死で探した覚えがあります。でも見つけられないときって、ほんとに見つからないんですよね…。試しに今すぐ探してみてください。上の画像のウォーリー、いました? 「…ま、気長に探すしかないよね〜」で許されるのは子どものときだけです。そう、大人というものは、短時間で効率的に結果を出すことが求められます。それはウォーリーを探すことだって同じなのです。 ではウォーリーのいる場所には、規則性があるのでしょうか。実はSlateが、シリーズ7冊中68カ所のウォーリーの居場所をリストアップしています。それがこちら。 …あまり規則性は見えてこないですね。強いて言えば、真ん中よりちょっと上と下にそれぞれ、なんとなく集まっているくらい。でもまだ結論づける

    10秒以内にウォーリーを探す合理的な方法
  • もし先輩女子エンジニアが『アルゴリズム』を図解で教えてくれるとしたら - paiza times

    2014年7月30日より8月27日まで開催した、paizaオンラインハッカソン(略してPOH![ポー!])Lite「天才火消しエンジニア霧島 もしPMおじさんが『丸投げ』を覚えたら」ですが、どのような解法が有ったのでしょうか。 今回もPOH恒例の「解説図解」を、天才火消しエンジニア霧島が解説するとしたら、という体で書いてみたいと思います。(特に文体とか変えませんがw 最後に霧島壁紙DLが有るので是非最後までお読みください。) ■どのような高速化ステップがあるのか? 今回の問題ですが、実行時間に大きく影響する計算量別にみたアプローチでは、すべての組み合わせを出して、人数を満たして一番安い組み合わせを見つける全探索[計算量はO(2^N)]と、動的計画法[計算量はq = max(q_i) としてO(Nq) ](やり方によってはO(NM))による2種類があります。 また全探索を改良し、効率的な枝刈

    もし先輩女子エンジニアが『アルゴリズム』を図解で教えてくれるとしたら - paiza times
  • もし女子大生プログラマに『アルゴリズム』を図解で教えるとしたら - paiza times

    2014年4月16日より2014年5月14日まで開催していたpaizaオンラインハッカソン(略してPOH![ポー!])Vol.2「女子大生とペアプロするだけの簡単なお仕事です!」で提出された最速コードはどのような高速化のアプローチでで生み出されたのでしょうか? POH Vol.2に登場した女子大生インターンプログラマの木野ちゃん(左のイラスト)にアルゴリズムを図解で教えるとしたら、どう教えるだろうか、という事で、今回は図解してみました。 今回は前回の最速コード発表レポート(【結果発表】女子大生プログラマの心を鷲掴みにした最強のコード8選)に引き続き、最速コードの裏側に迫ります。 ■高速化のアプローチ方法について 今回もPOH Vol.1 と同様に、POH Vol.2では計算量の改善による高速化を柱とするアプローチを想定して出題されました。基は定数倍高速化によって想定解法よりも悪い計算量の

    もし女子大生プログラマに『アルゴリズム』を図解で教えるとしたら - paiza times
  • なぜBTreeがIndexに使われているのか - maru source

    ※この内容は個人的な考察なので、間違っている箇所もあると思います。そういう部分を見つけた際はぜひ教えて下さい。 RDBMSの検索を早くするためにIndexって使いますよね。例えばこんなテーブル CREATE TABLE user ( id INT UNSIGNED NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX (id) ); idカラムにIndexを張っています。これはidでの検索を高速にするためです。ここでidカラムにIndexが貼っていない場合と比べると検索時間が大幅に変わってきてしまいます(特にレコードが多くなった時) ではなぜIndexを貼ると検索が早くなるんでしょう?? Indexとはその名の通り索引を意味します。特定のカラムの索引を作成しておくことで検索を高速化します。 (の最後によみがな順で単語が並べられたりしています

    なぜBTreeがIndexに使われているのか - maru source
  • 実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)

    2. はじめに! • 講義では、ソースコードを扱います。 • 前面の資料だけでは見えづらいかもしれないので、 手元で閲覧できるようにしましょう。 • URLはこちらから – http://www.slideshare.net/chokudai/wap-atcoder2 – URLが打ちづらい場合は、Twitter: @chokudaiの最新発言 から飛べるようにしておきます。 • フォローもしてね!!! 2014/3/16 2 3. ©AtCoder Inc. All rights reserved. 3 目次 1. 勉強会の流れ 2. 競技プログラミングって? 3. シミュレーション問題 4. 全探索問題 5. 日のまとめ 2014/3/16 3

    実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
  • 二分木を使った数式の逆ポーランド記法化と計算 - smdn.jp

    一般に人が読むことを前提にした数式はx = 1 - 2 + 3の様な形式で表記されますが、演算の順序などを考えるとコンピュータにとってはこの表記は扱いにくいものです。 コンピュータとしてはこの式はx 1 2 - 3 + =と表記されていたほうが扱いやすくなります。 このような形式での表記が逆ポーランド記法です。 逆ポーランド記法で記述された数式x 1 2 - 3 + =は、「xに1から2を引いた(-)ものに3を足して(+)代入する(=)」と読むことができます。 より機械的な表現にすれば「xに、1に2を-して、それに3を+して、それを=する」と読むこともできます。 つまり、この表記においては、演算対象と演算処理が処理順に記述されることになります。 プログラミングなどではx = 1 - 2 + 3;といった式を書きますが、実は実行時にはスタックというものを使って逆ポーランド記法的に計算していま

    二分木を使った数式の逆ポーランド記法化と計算 - smdn.jp
  • 数式を綺麗にプログラミングするコツ #spro2013

    8. 対象とする「数式」 • 行列やその要素の掛け算が出てくる数式 – 機械学習などの手法には、行列を使って表さ れているものが多い – 強力な線形代数ライブラリをうまく使えば楽 に実装できる • 数式の例はC.M.ビショップ「パターン認 識と機械学習」(以降 PRML)から採用 – ただし機械学習の知識は一切要求しない 9. 方針 • 「楽に」「確実に」実装しよう – 間違いにくく、可読性が高い – 最速は必ずしも目指していない • 動くものを確かに作れるようになってから • Python/numpy と R での実装例を紹介 – 基的な行列計算しか使わないので、その他 の環境(Eigen など)にも参考になる(はず)

    数式を綺麗にプログラミングするコツ #spro2013
  • 学校向けテクノロジ ソリューション | Microsoft Education

    Microsoft は、ソーシャル メディアとの接続など当社 Web サイトでのお客様のエクスペリエンスを向上させるため、およびお客様のオンライン アクティビティに基づいてカスタマイズされた広告を表示するために、オプションの Cookie を使用します。 オプションの Cookie を拒否した場合、サービスを提供するために必要な Cookie だけが使用されます。 ページ下部の [Cookie の管理] をクリックすると、選択内容を変更できます。プライバシーに関する声明 サードパーティ Cookie

    学校向けテクノロジ ソリューション | Microsoft Education
  • Panic Blog » iTunes 11 and Colors

    iTunes 11 is a radical departure from previous versions and nothing illustrates this more than the new album display mode. The headlining feature of this display is the new view style that visually matches the track listing to the album’s cover art. The result is an attractive display of textual information that seamlessly integrates with the album’s artwork. After using iTunes for a day I wondere

    Panic Blog » iTunes 11 and Colors
  • iTunes11のアルバム情報表示に使われるオシャレアルゴリズムを考える | fladdict

    iTunes11がリリースされましたね。賛否両論を呼びそうな大変更。 このiTunes11、アルバム選択時の情報画面がもの凄く凝ってる。なんとアルバムジャケットにあわせて情報の色が変化するんよ!! 何これオシャレ! どういうアルゴリズムになっているのか、とっても気になる。 仮定としては、 ジャケットを16〜32色程度で減色、パレット抽出する。 四辺のエッジに含まれる色から、最多ピクセル色を背景に採用。 残りの色の中で、背景色と一定距離(RGB or 色相)がある最多ピクセル色を文字色1として採用。 残りの色の中で、背景色と一定距離(RGB or 色相)がある最多ピクセル色を文字色2として採用。 どうしても適切な色がない場合、白か黒を文字色に採用。 アルバムの四隅に対し、背景色でインナーシャドーをかける という感じかなと。多分これであってる。 アルゴリズムで文脈にあった綺麗な配色を作るってい

  • プログラマが解くのに1時間かかる問題を機械学習に放り込む話 | ぱろすけのメモ帳

    プログラマが解くのに1時間かかる問題を機械学習に放り込む話 By ぱろすけ on 4月 11th, 2012 皆様、 Twitter やら facebook で数カ月前に爆発的に拡散された以下の問題をご存知でしょうか。 ご存知の方が多いでしょうね。単に、イコールの左側の4つの数字の丸の数の合計がイコールの右側に等しい、それだけですね。とても簡単な問題です。ちなみに僕は解けませんでした。 これについて、昨日このようなエントリが投稿され、話題になっています。 プログラマが解くのに1時間かかるという問題が普通にプログラマな方法で5分で解ける話 http://d.hatena.ne.jp/nowokay/20120410 こりゃあ炎上するでしょうねえ。だって、プログラマも何も関係なく、ふつうに問題を解いているのですから。 先ほどのエントリでは、イコールの左側の数値は変数であり、それを足しあわ

  • データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    2006年のデータマイニング学会、IEEE ICDMで選ばれた「データマイニングで使われるトップ10アルゴリズム」に沿って機械学習の手法を紹介します(この論文は@doryokujin君のポストで知りました、ありがとうございます!)。 必ずしも論文の内容には沿っておらず個人的な私見も入っていますので、詳細は原論文をご確認下さい。また、データマイニングの全体観をサーベイしたスライド資料がありますので、こちらも併せてご覧下さい。 データマイニングの基礎 View more presentations from Issei Kurahashi 1. C4.5 C4.5はCLSやID3といったアルゴリズムを改良してできたもので、決定木を使って分類器を作ります。決定木といえばCARTが良く使われますが、CARTとの違いは以下のとおりです。 CARTは2分岐しかできないがC4.5は3分岐以上もできる C

    データマイニングで使われるトップ10アルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • 統計学の力を借りて、文字化け退散! 解決&高速化編 | 月と燃素と、ひと匙の砂糖

    前回までのあらすじ。 文字化けをどうにかしたい。 それぞれのエンコードは、バイトとバイトのつながりに特徴がある。(数バイトで一文字表すから) これを、ベクトルに見立てて、それぞれの「角度」を調べて、一番近いので分類してみた。 ある場合†1について、エンコードに含まれるASCII部分が邪魔をして推定成功率がいまいち←イマココ! ■単純に除いてみる だけ! 前回、RFCの全データを使って作ったASCIIのデータがありました。これがASCIIの使われている領域ですから、これを判断に使わなきゃ良いんじゃないの? …というわけで、ASCII部分を除外して作ってみた各エンコードの画像がこちら。(クリックすると拡大します、ぜひクリックしてみてください) ASCIIと使用領域がかぶっているISO-2022-JP(JIS)でもちゃんと要素が残っているので、使えそうです。 かなり安直な方法†2ですが、とりあえ

  • 実践! 「MapReduceでテキストマイニング」徹底解説

    青空文庫」をテキストマイニング! 前回の「いまさら聞けないHadoopとテキストマイニング入門」では、Hadoopとテキストマイニングの概要や構成、MapReduceの仕組み、Hadoopの活用場面などを解説し、Hadoopの実行環境を構築しました。今回から、Hadoopを使い、テキストマイニングのMapReduceプログラムを作成していきます。 「青空文庫」というサイトをご存じでしょうか。青空文庫は、著作権が切れた日の文学作品を掲載しているWebサイトで、青空文庫の全データをDVDや、BitTorrentによる配信で入手できます。今回は、このデータを使ってテキストマイニングを行いましょう。 前回、テキスト分類で、著者の性別、年齢、地域、職業などの属性も推定できると書きましたが、青空文庫は、他のデータにはない、著者属性があります。青空文庫の作品は、著作権が切れて、作者がなくなっている場

    実践! 「MapReduceでテキストマイニング」徹底解説
  • dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development

    こんにちは、この夏はシルキードライで乗り切りたい岡野原です。 今日は最近公開したC++のオープンソースであるdag vectorについて紹介します。 github: dag_vector ライセンスは修正BSDライセンスです。 dag vector (direct accessible gamma code vector) は値を圧縮して格納したまま任意の場所の値を高速に参照可能な配列ライブラリです。しかもデータ末尾への追記が可能です。 dag vectorはstd::vectorのように利用できます。下にいくつか例を見ていきましょう。 dag_vectorの例 #include "dag_vector.hpp" // dag_vectorは0以上の正整数の配列を扱う配列。 dag_vector dv; // 値はいつでも追加可能。追加された値は圧縮して格納される // 正整数xは2lg(

    dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development
  • 機械学習 はじめよう 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    機械学習 はじめよう 記事一覧 | gihyo.jp
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
  • EM algorithm(EMアルゴリズム、Expectation Maximization algorithm)について - データサイエンティスト上がりのDX参謀・起業家

    EMアルゴリズムはいろんなところで使われます。 基的には未知パラメータの推定方法の一種です。 とりあえず箇条書でまとめます。 提案論文:Maximun likelihood from incomplete data via the EM algorithm. Dempster AP, Laird NM and Rubin DB. JRSS B. 39,1-38. 1977. 提案者のRubinは欠測分野、因果推論の権威で次の教科書も書いています。 Statistical Analysis with Missing Data (Wiley Series in Probability and Statistics) 作者: Roderick J. A. Little,Donald B. Rubin出版社/メーカー: Wiley-Interscience発売日: 2002/09/09メディア:

    EM algorithm(EMアルゴリズム、Expectation Maximization algorithm)について - データサイエンティスト上がりのDX参謀・起業家