GCCのビルトイン関数メモ
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html より
関数名末尾に l が付いてるのは long、ll なら long long、無印は unsigned int。
他にもいろいろあるけど、コンテストで使うかもしれないやつだけとりあえず。
__builtin_popcount, __builtin_popcountl, __builtin_popcountll
立ってるビット数を数えて返す
0x11 (2進で10001) なら2
0x57 (2進で1010111) なら5
__builtin_parity, __builtin_parityl, __builtin_parityll
立ってるビット数の偶奇を返す。(popcount % 2 に相当)
0x11 (2進で10001) なら0(偶数)
0x57 (2進で1010111) なら1(奇数)
__builtin_ffs, __builtin_ffsl, __builtin_ffsll
2進で表した場合に小さい方から何桁目に初めて1が現れるか。
0x07 (2進で111) なら1。0x08 (2進で1000) なら 4。
0の場合は0を返す。
__builtin_clz, __builtin_clzl, __builtin_clzll
2進で表した場合に左側にいくつ0を埋める必要があるか (the number of leading 0-bits in x)
(32bit unsigned intの場合)0x07 (2進で111) なら29。
0の場合は未定義。
__builtin_ctz, __builtin_ctzl, __builtin_ctzll
2進で表した場合に、1の位からいくつ0が連なっているか (the number of trailing 0-bits in x)
0x08 (2進で1000) なら3。
0の場合は未定義。
量子情報勉強会 |4> に参加してきました
「初級ラテン語リーディング」でいつもお世話になってる @7shi さんの池袋バイナリ勉強会で開催された「量子情報勉強会」に参加してきました。
http://connpass.com/event/4858/
セレブラントの人とか来てる。さすが量子情報勉強会 #量子情報勉強会 #エンタングル
— naoya t (@naoya_t) 2014, 1月 19
勉強会で使われる教科書
量子コンピュータと量子通信〈1〉量子力学とコンピュータ科学 (量子コンピュータと量子通信 1)posted with amazlet at 14.02.02
を探しに、始まる前にジュンク堂に行ってみたのだけれど売ってなくて、魔が差してファインマン物理学第5巻(量子力学)を買ってきたりとか。
昨日の昼、量子情報勉強会のテキストを探しに行った池袋の魔窟ジュンク堂で、散財天様に会ったわけでもないのに魔が差して連れて帰ってきたファインマン物理学の5巻(量子力学)を読んでる。分かりやすい。(原書はネットで無料で読めるよ http://t.co/i4OuJgoj3J )
— naoya t (@naoya_t) 2014, 1月 19
今回は、
- 前回までの復習:量子アルゴリズムの話、量子テレポーテーション、など
- §1.5 量子情報処理の実験:Stern-Gerlachの実験(§1.5.1)、量子情報処理デバイスの話(§1.5.2)
あたりをやりました。
最初の復習タイムに、以前Courseraで習った量子テレポーテーションの原理を久しぶりに追ってみた。何とかひと通り自力で追えた http://t.co/xqcZI78kGo #量子情報勉強会
— naoya t (@naoya_t) 2014, 1月 19
以前にCourseraで受けた授業で概ね習っているので、復習っぽい感覚で参加できそうです。
次回 |5> は 2/15(土) 18時から、池袋バイナリ勉強会にて開催予定です。
http://connpass.com/event/4858/
Les lois de Newton
Courseraで受講中のEPELの力学のクラス (Physique générale - mécanique) でニュートンの法則が3つ出てきたのでプリンキピアのラテン語原文を探してみた、というメモ。自分用。
プリンキピア (Principia) ないしプリンキピア・マテマティカ (Principia Mathematica) と言っても
- アイザック・ニュートンの "Philosophiae Naturalis Principia Mathematica" (自然哲学の数学的諸原理)
- アルフレッド・ノース・ホワイトヘッド、バートランド・ラッセル "Principia Mathematica" (数学原理)
があるわけですが前者のニュートン力学の方のプリンキピアです
ラテン語原文の下に、クラスで出てきたフランス語版を並べてあります
LEX I. - 慣性の法則
Corpus omne perseverare in statu suo quiescendi vel movendi uniformiter in directum, nisi quatenus a viribus impressis cogitur statum illum mutare.
(Première loi de Newton) "Tout corps persévère dans l'état de repos ou de mouvement uniforme en ligne droite à moins que quelque force n'agisse sur lui et ne le contraigne à changer d'état".
LEX II. - ニュートンの運動方程式, F=ma
Mutationem motus proportionalem esse vi motrici impressae, et fieri secundum lineam rectam qua vis illa imprimitur.
(Deuxième loi de Newton) "Les changements de mouvement sont proportionnels à la force motrice, et se font dans la ligne droite dans laquelle cette force est imprimée à l'objet."
らろわ「えふぇがれま」って何の法則だっけと思ったら F=ma のことか… "la loi F égal ma" #coursera
— naoya t (@naoya_t) 2013, 10月 6
LEX III. - 作用・反作用の法則
Actioni contrariam semper et aequelem esse reactionem: sive corporum duorum actiones in se mutuo semper esse aequales et in partes contrarias dirigi.
(Troisième loi de Newton) "A toute action, il y a toujours une réaction égale qui lui est opposée" ; autrement dit, les actions mutuelles de deux corps l'un sur l'autre sont toujours égales et opposées.
PRML復々習レーン#14(再)
http://connpass.com/event/3529/
前回、ワルプルギスの夜が来た為に延期(というか嵐のハッカソン)になった復々習レーン。
今日は9章。k-meansと混合ガウスとEMアルゴリズム。
sleepy_yoshiさんがsklearnとか使って10行ぐらいでさくっとコードを書いている間に、matplotlibと格闘しながら混合ガウス分布のEMアルゴリズムをごりごり実装しておりました。
図9.8(下巻p.153)的なものの再現です。
データセットはold faithful間欠泉データです。
実装はgithubに上げてあります:
https://github.com/naoyat/PRMLrevenge/tree/5632b99f79c7833c99faf3257cefaccb9a84e204/chap9
次回(11/9 or 11/23)は9章の残りと10章を読みます。
10章(近似推論法)はみんなでextreme readingします。頑張ろう!
おまけ
距離の三角不等式と距離の上限・下限を管理することで,距離の評価回数を n k e から n に近づける高速化 http://t.co/ieY6D71rjy #prmlrevenge
— naoya t (@naoya_t) 2013, 10月 5
初級ラテン語リーディング
http://connpass.com/event/3371/
@池袋バイナリ勉強会
今日から新しい教科書になった。
Focus Pub R Pullins & Co
売り上げランキング: 9,951
辞書使わなくても読める。読んで1文ずつ訳してて、みんなラテン語分かった気になってた。
小学1年生の国語の教科書みたい。
帰りにファミレス崩れのお財布に優しい中華やさんで会食。
メンツが半分ぐらいPRMLと被ってるよね。
PRML Hackathon #4 〜嵐のPRMLハッカソン〜
http://connpass.com/event/3479/
@西戸山生涯学習館 視聴覚室
ワルプルギスの夜的な物が関東上空を通過したためにPRML復々習レーンは中止となり、空いた会場で代わりに開かれたのが「嵐のPRMLハッカソン」。傘が壊れそうな強風の中を頑張って行ってきました。
主催者欄に「naoya_tと有志スタッフ」とあるので今回は主催者のようです。
視聴覚室開催という事で、hashk1さんが "Puella Magi Madoka Magika" (PMMM) の北米版BDを持って来てくれたのですが、Macからプロジェクタに接続するコネクタを誰も持っていなかったので別のハッキングが開始されたりとか。
英語で上映されるP*M*を見ながら黙々とPRML予習に励む人とか、scikit-learnと格闘する人とか、高校数学を復習してる人とかいる中で今回やったのは、ラテン語動詞の活用を普通にニューラルネットワークで学習させたいなー、とか思って教師データを作るところまで。
The contract is complete. Your wish has overcome entropy.
— naoya t (@naoya_t) 2013, 9月 16
続きを読む
word2vecに英辞郎データを放り込んでみた
英辞郎をword2vecに放り込んでみたらちょっと面白かったのでメモを。word2vecについては前回の記事を参照。
使ったのはEIJI-138.TXT(最新より1つ古いバージョンです)
EDPさんから1980円ぐらいで買えます。
■semantically-motivated {形} : 意味論的{いみろん てき}に動機付けられた ■semantically-restricted {形} : 意味的{いみ てき}に制限{せいげん}された ■semantics {名-1} : 意味論{いみろん}、記号論{きごうろん} ■semantics {名-2} : 《コ》〔プログラムの〕動作 ■semantics : 【@】セマンティックス、【分節】se・man・tics ■semantics course : 意味論{いみろん}のコース ■semaphore {名-1} : 手旗信号{てばた しんごう}、信号装置{しんごう そうち} ■semaphore {名-2} : 《コ》セマフォ◆共有リソースへの同時アクセスを一定数以下に制限する手続き ■semaphore {自他動} : 〔手旗{てばた}などで〕信号{しんごう}を送る ■semaphore : 【発音】se'mэfo`:(r)、【分節】sem・a・phore ■semaphore signal : 腕木信号機 ■semaphorically {副} : シグナル[信号{しんごう}]のように[を使って] ■Semarang {地名} : スマラン◆インドネシア
みたいな、いわゆるPDIC一行形式のテキストです
前処理(pre.sed)は適当。→https://gist.github.com/naoyat/6511066
$ nkf -Sw EIJI-138.TXT | sed 's|^■||g; s| : | |g' | mecab -Owakati | sed -f pre.sed > eiji-sep.txt $ ./word2vec -train eiji-sep.txt -output eijiro.bin -cbow 0 -size 200 -window 5 -ne 1e-3 -threads 12 -binary 1
で。さっきの例だと
semantically motivated 意味 論 的 に 動機付け られ た semantically restricted 意味 的 さ れ た semantics 意味 論 semantics 動作 semantics se man tics semantics course 意味 論 の コース semaphore 手旗 信号 semaphore セマフォ 共有 リソース へ の 同時 アクセス を 一定 数 以下 に 制限 する 手続き semaphore 手旗 を 送る semaphore sem a phore semaphore signal 腕木 信号 機 semaphorically シグナル semarang スマ ラン インドネシア
みたいな形で出てきます。この作業は数分で終わります。
distance
英語だけ / 日本語だけ出てきた例
(1) "find"
$ ./distance eijiro.bin Enter word or sentence (EXIT to break): find Word: find Position in vocabulary: 540 Word Cosine distance ------------------------------------------------------------------------ discover 0.647269 have 0.579349 perhaps 0.573466 enjoys 0.573027 wanting 0.569895 explain 0.569127 finds 0.568667 make 0.563059 remembers 0.558325 prove 0.558116 seems 0.557699 ...
(2) "found"
Enter word or sentence (EXIT to break): found Word: found Position in vocabulary: 3623 Word Cosine distance ------------------------------------------------------------------------ came 0.632690 was 0.619852 murdered 0.618065 discovered 0.597480 knew 0.596393 believed 0.594432 warned 0.580562 always 0.580353 arrived 0.579750 perhaps 0.567445 ...
(3) 「決める」
Enter word or sentence (EXIT to break): 決める Word: 決める Position in vocabulary: 2919 Word Cosine distance ------------------------------------------------------------------------ 確かめる 0.549179 日時 0.487234 範 0.486695 定める 0.474006 否 0.466640 試す 0.464715 知らせる 0.460535 ゴール 0.459710 見つける 0.455723 日取り 0.454051 そろえる 0.453285 選ぶ 0.448462 ...
Wordの右端が揃わないのはword2vecさんがprintfで"%-50s"とかで出力してるからだけど気分悪いのでそろそろパッチあてたい…
英語と日本語がいい感じに混ざって出てくる例
(1) 「甘い」
Enter word or sentence (EXIT to break): 甘い Word: 甘い Position in vocabulary: 5821 Word Cosine distance ------------------------------------------------------------------------ 美味 0.557716 いため 0.543678 気立て 0.535328 臭い 0.523367 香り 0.519421 甘ったるい 0.514284 おいしい 0.514217 甘党 0.512827 食べる 0.504979 sweet 0.504394 汁 0.503534 甘み 0.502789 sweets 0.501972 おいしく 0.501309 食べ物 0.499953 お菓子 0.497123 風味 0.497013 飲める 0.496544 味わい 0.496355 口当たり 0.495846 菓子 0.495530 sugary 0.493757 ごちそう 0.491298 触り 0.491183 快い 0.486044 派手 0.485320 着こなし 0.483575 ドッグフード 0.483424 塩気 0.482835 柔らかい 0.477246 にんにく 0.477052 果物 0.476662 おおらか 0.476204 柔らかく 0.475804 脂っこい 0.475188 濁す 0.474357 野菜 0.471492 tasting 0.470279 チョコレート 0.468524 砂糖 0.467779
日本語の類義語が出てきたり、対応する英単語が出てきたりで面白い。
(2) "semaphore"
Enter word or sentence (EXIT to break): semaphore Word: semaphore Position in vocabulary: 91870 Word Cosine distance ------------------------------------------------------------------------ 手旗 0.747331 chrominance 0.696490 tachometer 0.659605 マルチプレクサ 0.655955 demodulator 0.646253 commutator 0.623882 シンクロ 0.620550 decoder 0.619331 selector 0.613113 transmitter 0.613081 energization 0.612786 transceiver 0.611227 regenerator 0.608915 信号 0.602611 ジャイロトロン 0.600938 sorter 0.599987 トランスポンダ 0.599316 gyrotron 0.598349 除算 0.596615 励磁 0.596164 アレー 0.595458 sounder 0.593749 ストローブ 0.593125 transducer 0.593007 腕木 0.592226 multiplexer 0.591710 ディザー 0.591218 exciter 0.590356 測深 0.587591 セレクター 0.586178 signal 0.586045 reproducer 0.585224 サイリスタ 0.585093 energisation 0.584465 clocking 0.583642 theodolite 0.583461 復調 0.582414 baseband 0.580201 ファインダー 0.579673 repeater 0.579630
word-analogy してみる
訳語を探すならこれ。
("see" と「見る」の関係が、"find" と何の関係に似ているかを調べます)
$ ./word-analogy eijiro.bin Enter three words (EXIT to break): see 見る find Word: see Position in vocabulary: 345 Word: 見る Position in vocabulary: 68 Word: find Position in vocabulary: 540 Word Distance ------------------------------------------------------------------------ 見つける 0.450238 見いだす 0.439524 喜ぶ 0.435330 ちらりと 0.422546 垣間見る 0.412824 とてつもなく 0.398096 盗み見 0.397557 食い入る 0.396959 ...
"bread" における「パン」は "rice" における何?
Enter three words (EXIT to break): bread パン rice Word: bread Position in vocabulary: 5895 Word: パン Position in vocabulary: 3637 Word: rice Position in vocabulary: 3062 Word Distance ------------------------------------------------------------------------ 穀物 0.532821 稲 0.521359 小麦 0.507522 鶏肉 0.502062 白米 0.492565 トマト 0.481958 cereal 0.477263 穀類 0.476511 水稲 0.474788 全粒粉 0.470013
なんかこれ日本語Wordnetみたいな使い方が出来そうな気がしますね。meronym/holonym, hyponym みたいなのが出てくるだけでなく訳語が一緒にくっついて来る感じ。