タグ

プログラミングに関するomega314のブックマーク (291)

  • 今話題の「異人種住み分け」をシミュレーションにしてみる - roombaの日記

    はじめに 最近、移民に関連して「居住区は人種ごとに分けたほうが良い」というような発言が話題となっています。 曽野綾子さん「移民を受け入れ、人種で分けて居住させるべき」産経新聞で主張 その是非は誰かに考えてもらうとして、これをきっかけに人種ごとの住み分けに関する興味深いモデルを思い出したのでシミュレーションを行ってみることにしました。この記事上で自由に動かすことができます! シェリングの「分居モデル」 分居モデルとは? 上述の「興味深いモデル」とは、アメリカトーマス・シェリング氏が1971年に考案した「分居モデル」です。Wikipediaによれば、このモデルには以下のような意義があります。 たとえ白人と黒人が隣同士で暮らすことに抵抗がなくとも、いつの間にか白人が多く居住する地域と黒人が多く居住する地域に分かれてしまう理由をゲーム理論(マルチエージェントシミュレーション,Multi-Agen

    今話題の「異人種住み分け」をシミュレーションにしてみる - roombaの日記
  • プログラミングでよく使う英単語のまとめ【随時更新】

    プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え

    プログラミングでよく使う英単語のまとめ【随時更新】
  • 問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版

    null安全おじさんになりかわりそれがしがお見せつかまつる 機械が理解できる複雑な契約の型表現がもたらすものは つまるところこのようなもの ずぶぶ(切った腹から証明オブジェクトを引き摺り出す)— Noriyuki OHKAWA (@notogawa) 2016年11月18日 過ぎたるは猶及ばざるがごとし. 最近null安全?だかの話のからみで,(静的な)型で契約云々を表現してシアワセになれるんだぜーと言うのをチラホラ見聞きする.たとえば,pythonで統計なり機械学習なりやっててnumpy弄るような人が,ndarray(多次元配列)のshape(多次元配列の形)が合わずエラーで落ちたりとかそういうアレについて云々という.なるほど型があれば実行前に止めることができ,実行時,エラー*1になってファーみたいなことは避けられるだろう. しかし,これが天国へ続く道かどうかはまた別の話.(依存)型で舗

    問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
  • ゼロから始めた2016年のスーファミ開発環境 - ポルノアニメ

    去年の春に「そろそろスーファミのプログラム書いてみてえな」と思い立って スーパーファミコンのプログラムを書きたい - ポルノアニメ ということがあったんですが、あれから約1年半。自分なりの開発環境が固まってきて、簡単なゲームぐらいなら流れ作業的に作れる程度まで圧倒的成長したので、ここで一度、我が家のスーファミ開発環境をまとめて紹介します。 OSとPC 普通のWindows PCでよい。 make 元気よくcygwinをインストールしよう。 Windows 10でUbuntuが動くやつは私の見聞きした情報が正しければ、何の役にも立ちません。 アセンブラ cc65/ca65 というものを使っている。名前を見るとCで書けそうだけど、それは6502(初代ファミコン)用のコードだけで、65816のコードはアセンブリで書く必要がある。つまり実際に使うのはca65の方だけ。 スーファミには、メインCPU

    ゼロから始めた2016年のスーファミ開発環境 - ポルノアニメ
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
  • 東京大学 杉山・本多研究室

    東京大学 杉山・多研究室:機械学習と統計的データ解析 機械学習の基礎理論の構築と実用的なアルゴリズムの開発,及び,実問題への応用研究を行っています [ English | Japanese ] 研究概要 教科書 機械学習のための確率と統計 イラストで学ぶ機械学習:最小二乗法による識別モデル学習を中心に 統計的機械学習 統計的学習の基礎:データマイニング・推論・予測 パターン認識と機械学習 強くなるロボティック・ゲームプレイヤーの作り方~実践で学ぶ強化学習 学習の種類 教師付き学習 教師なし学習 半教師付き学習 強化学習 機械学習の理論とアルゴリズム モデル選択 不偏モデル選択規準 正則化モデル選択規準 能動学習 単一のモデルに対する能動学習 複数のモデルに対する能動学習 追加学習/オンライン学習 次元削減 教師付き次元削減 半教師付き次元削減 教師無し次元削減 類似度データからの学習/カ

    東京大学 杉山・本多研究室
  • SQL実行時のブルームフィルタ(Bloom Filter)アルゴリズム | フューチャー技術ブログ

    1. 初めにDBにおける処理はSQLによって記述しますが、データの取得するために具体的にどのような内部処理を行うかという点までは記述しません。 ここでいう内部処理とは「SQLの書き換え」「インデックスの使用」「結合アルゴリズムの選択」などがDBMSのオプティマイザによって選択されて実施されることを指します。 SQLのパフォーマンスを見るにあたっては上記の内部処理について正しく理解する必要があります。 Blogでは、重要なアルゴリズムであるにもかかわらず、まとまった情報が少ないSQL実行時におけるブルームフィルタ(Bloom Filter)についてOracleをもとに紹介を行います。 Bloom Filterは結合処理を効率化するために、結合の前段階で利用される技術になります。 公式なドキュメントとしては以下になります。 Oracle Database SQLチューニング・ガイド 12cリ

    SQL実行時のブルームフィルタ(Bloom Filter)アルゴリズム | フューチャー技術ブログ
  • https://sites.cs.ucsb.edu/~gilbert/talks/GilbertGABB19May2014.pdf

  • Fast Spectral Graph Partitioning on GPUs | NVIDIA Technical Blog

    Graphs are mathematical structures used to model many types of relationships and processes in physical, biological, social and information systems. They are also used in the solution of various high-performance computing and data analytics problems. The computational requirements of large-scale graph processing for cyberanalytics, genomics, social network analysis and other fields demand powerful

    Fast Spectral Graph Partitioning on GPUs | NVIDIA Technical Blog
  • 東方算程譚

    「新版 独習C#」 山田祥寛 : 翔泳社 ISBN978-4-7981-5382-7 タイトル通り、C#の教/自習書です。 僕は根っからのC++屋なもんで、ちょっとしたアプリ/ライブラリの類はC++で書いちまう。けどもGUIを伴うアプリあるいは.NETから使えるC++ライブラリのテストとなるとC#もそこそこ書けないと何かと不便です。 C#は15年も前のver.1.1の頃に一冊だけ買い求めました。基的な文法/構文は現在に至るまで大きく変わることがなかったので古めかしい教でもさほどの不便を感じてはいなかったのですが、ミョーにまだるっこい、遠回しなC#コードを書いてるんじゃないか、きょうびのC#ならもっと簡潔でエレガントに表現できるんじゃないかと思い始めていたのです。 で、モダンなC#を知ろうと言語仕様書を探してみると、公式のドキュメントはECMA-334でしてこれがC#5留まり、(201

    東方算程譚
  • PHPプログラムを書いたらマイナス21億行目あたりでエラーが出た - hnwの日記

    (2016/10/5 20:40 追記)誤解を招いている部分がありそうなので文末に補足を追記しました。巨大なプログラムをわせただけでPHPが死ぬわけではありません。 毎度おなじみ、意図的に重箱の隅をつついてみたよって話です。あるPHPプログラムを実行したら次のようなエラーに遭遇しました。 $ php over-2g-lines.php int(0) PHP Fatal error: Uncaught Error: Call to undefined function var____dump() in /Users/hnw/over-2g-lines.php:2150000004 Stack trace: #0 {main} thrown in /Users/hnw/over-2g-lines.php on line -214496729221億5千万4行目で致命的エラーが発生したよ!とい

    PHPプログラムを書いたらマイナス21億行目あたりでエラーが出た - hnwの日記
  • なぜHaskell、なぜ圏論なのか - bitterharvest’s diary

    1.初めに これまで、さまざまな言語でプログラミングしてきたが、一番満足しているのはHaskellである。なぜという問いに一言で答えるならば、バグが入りにくい、あるいは、プログラムが信用できるということだろう。 この記事の前に、量子力学の世界をHaskellで構築することを試みた。連続系についてはまだ説明の途中であるが、その基となる離散系については完成している。量子力学は物理の世界でも難しい分野の一つだ。概念的に複雑な世界を記述しようとすると、とても、抽象度の高いプログラミング言語を必要とする。 現在のHaskellは、圏論(category theory)という数学を応用したプログラミング言語である。他の学問と比較すると、数学は抽象度が高い。圏論は、その中で、最も抽象度が高い分野の一つである(圏論よりも抽象度が高いのは最近話題になることが多いホモトピー型理論だ。この理論がプログラミング

    なぜHaskell、なぜ圏論なのか - bitterharvest’s diary
  • ビリヤードリング(魔円陣) - amori's blog

    森博嗣の「すべてがFになる」にシリーズの「笑わない数学者」で以下のようなパズルが紹介されている。 「ビリヤードの球(つまり1~15)から五個球を選んでリングに並べる。 この時、連続する球の数字の和が1~21になるようにするにはどうならべればいいか?」 こちらで実際にこのパズルをプレイできる。 〜〜 追記: この問題は一般に「魔円陣」と呼ばれているものでした。当ブログの別記事「Dobbleの数理」で参照している有限幾何の文献でも解説があります。 amori.hatenablog.com あと、「ガロアの数学 「体」入門、小林吹代 著、技術評論社、2018/6」にも解説がありました。 〜〜 21というのは5個のリングから作りうる最大数で、Combination(5,2)*2+1 =21 であるので、作りうる数字の和に重複がないということである。 5個未満については、 1個の場合は[1]で自明、

    ビリヤードリング(魔円陣) - amori's blog
  • Why does deep and cheap learning work so well?

    We show how the success of deep learning could depend not only on mathematics but also on physics: although well-known mathematical theorems guarantee that neural networks can approximate arbitrary functions well, the class of functions of practical interest can frequently be approximated through "cheap learning" with exponentially fewer parameters than generic ones. We explore how properties freq

  • 正規表現に潜む対称性 〜等式公理による等価性判定〜

    The document discusses regular expressions and finite automata. It begins by defining regular expressions using operations like concatenation, sum, and star. It then discusses how to interpret regular expressions by defining the language they represent. The document goes on to discuss how finite automata can also represent languages and how regular expressions and automata are equivalent based on

    正規表現に潜む対称性 〜等式公理による等価性判定〜
  • Mathematicaで任意画像の輪郭を数式に変換する - チューリング不完全

    330個の1000次方程式によるまどかマギカ  pic.twitter.com/QnuOhXQfiT— りんご (@aomoriringo) November 27, 2013 上記のような、任意の画像の輪郭を数式に変換するプログラムを紹介します。 発端 Wolfram|Alphaには「Person Curve」と呼ばれる類の検索結果が存在し、「Barack Obama Curve」「Hatsune Miku like curve」とか検索すると、その人物・キャラを表したパラメトリック方程式とそのプロット結果が表示されます。 これについては以下に示すようにたくさんの記事があり、存在自体は早くから知っていました。 数式が解明されてしまった初音ミク。その他キャラクターを色々試してみました | と杓子 http://nlab.itmedia.co.jp/nl/articles/1305/02/

    Mathematicaで任意画像の輪郭を数式に変換する - チューリング不完全
  • 位相的データ解析と3D画像認識 - ニンゲンメモ

    職場のNIPS読み会で位相的データ解析の論文 Kwitt, et al., Statistical Topological Data Analysis - A Kernel Perspective, NIPS2015 を取り上げてみたので位相的データ解析(TDA)の話。 ちなみにコチラのブログ qiita.com によると、"Deep Learningの次はTDAが来る?"とのことで、とてもhotでsexyな領域ってワケです。 Topological Data Analysis (TDA) TDAというのはトポロジー*1に根付いたデータ解析のアプローチで、データの持つ幾何的な情報に基づいて識別・分類するというもの。実応用としてはCVや医用画像解析の分野だけでなく、タンパク質構造の分類をやっている人も居るっぽい(バイオインフョ出身なのでこのとてもきになる)。 タンパク質構造とトポロジー ―

    位相的データ解析と3D画像認識 - ニンゲンメモ
  • gitにおけるコミットログ/メッセージ例文集100

    私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくまで単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。 要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのである。ググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか。 仕方なく自分でまとめたので、増田に垂れ流しておく。 はじめにここで挙げているコミットログは全て実際のコミットログからの転載である。当然ながら各コミットログの著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユースの範囲なら許してくれるだろうと考え名前とプロジェクト名は割愛したが、ここ

    gitにおけるコミットログ/メッセージ例文集100
  • 【T】ラズパイ版マイクラを物理エンジンに対応した

    ブロック単位の世界で移動と回転はどうなるか。Unityの世界と同期することで間接的に物理エンジンに対応した。鉄球ゲーム あさまクエスト gm5333あさま山荘としては5回目。(と思ったら6回目だった。コメ番389氏より「浅間山荘の5回目はレゴの歯車の回でやってませんでした?」)1回目 sm105298282回目 sm17424191 二次元版3回目 sm20115578 WebGL版4回目 sm23834111 ユニティちゃん版(5回目 sm23940881 レゴ&LaQ版)YouTube版 https://youtu.be/WW1smlUnsoM©UTJ/UCL

    【T】ラズパイ版マイクラを物理エンジンに対応した
  • 深層強化学習:ピクセルから『ポン』 – 前編 | POSTD

    (訳注:2016/6/28、記事を修正いたしました。) 記事は、もう随分と前から投稿したいと思っていた強化学習(RL)に関するものです。RLは盛り上がっています。皆さんも既にご存知のこととは思いますが、今やコンピュータは ATARI製ゲームのプレイ方法を自分で学習する ことができ(それも生のゲーム画像のピクセルから!)、 囲碁 の世界チャンピオンにも勝つことができます。シミュレーションの四肢動物は 走って飛び跳ねる ことを学習しますし、ロボットは明示的にプログラミングするのが難しいような 複雑な操作のタスク でも、その実行方法を学習してしまいます。こうした進歩はいずれも、RL研究が基となって実現しています。私自身も、ここ1年ほどでRLに興味を持つようになりました。これまで、 Richard Suttonの著書 で勉強し、 David Silverのコース を通読、 John Schulm

    深層強化学習:ピクセルから『ポン』 – 前編 | POSTD