ワタタツの日記
2016 年 4 月 24 日 (日)
☆ 機械学習 第9週を進めた
Swiftと機械学習とDockerと関数型プログラミングおうちでもくもく会(number: 4) - 如法会 | Doorkeeperが開催されました。
やったこと (やった作業内容、作ったものなど)
今週もCoursera の Ng 先生の機械学習の授業を進めました。
もうこのコースも第9週です。だいぶ全体がわかるようになりました。
今週は、 anomaly detection と recommender systems でした。 もうこれまで学んだことの応用です。
わかったこと
これまで学んだことの応用だとわかりました。 異常検知では、正規分布を仮定したり、いじると正規分布になることを仮定していました。 推薦系では、本当に簡単におすすめを計算することが出来ると思いました。特に重要なことは特徴とパラメタを同時学習させるというアイディアでした。
面白かったこと
クイズ (日本風にいうと小テストのことです) の問題3が面白かったです。 レイティングサイト3社を買収して、その各社の独自の(映画などの)レイティングデータをマージするときデータをどうするべきかという問題でした。極めてシリコンバレイ的に実践的な問題で興味深かったです。
次にしたいこと
次は第10週をやりたいと思います。 (あたり前田のクラッカー)
2016 年 4 月 13 日 (水)
☆ 11年使った自宅サーバを引退させた
2005年春に買った Athlon64 な自宅サーバをついに引退させました。 とある AKB48、あ違った、なんとか forty eight みたいな、あれなんだっけ、ともかくそういう感じの方のおかげをもって、今でこそ一昔前だが2005年に買った1コアマシンよりはちょっぱやのマシンにそっくり生まれ変わりました。
UnixBench
UnixBench で比較してみました。
11年連れ添ったAthlon64マシン
# # # # # # # ##### ###### # # #### # # # # ## # # # # # # # ## # # # # # # # # # # # ## ##### ##### # # # # ###### # # # # # # ## # # # # # # # # # # # # ## # # # # # # # ## # # # # #### # # # # # ##### ###### # # #### # # 4 000 Based on the Byte Magazine Unix Benchmark 44 00 0 v v 4 4 0 0 0 v v 44444 0 00 v4.0 revisions mostly by David C. Niemi, v 4 o 000 Reston, VA, USA David.Niemi@mail.li.org Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10 Arithmetic Test (type = double) 1 2 3 4 5 6 7 8 9 10 System Call Overhead 1 2 3 4 5 6 7 8 9 10 Pipe Throughput 1 2 3 4 5 6 7 8 9 10 Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10 Process Creation 1 2 3 Execl Throughput 1 2 3 Filesystem Throughput 1024 bufsize 2000 maxblocks 1 2 3 Filesystem Throughput 256 bufsize 500 maxblocks 1 2 3 Filesystem Throughput 4096 bufsize 8000 maxblocks 1 2 3 Shell Scripts (1 concurrent) 1 2 3 Shell Scripts (8 concurrent) 1 2 3 Shell Scripts (16 concurrent) 1 2 3 Arithmetic Test (type = short) 1 2 3 Arithmetic Test (type = int) 1 2 3 Arithmetic Test (type = long) 1 2 3 Arithmetic Test (type = float) 1 2 3 Arithoh 1 2 3 C Compiler Throughput 1 2 3 Dc: sqrt(2) to 99 decimal places 1 2 3 Recursion Test--Tower of Hanoi 1 2 3 ============================================================== BYTE UNIX Benchmarks (Version 4.0.1) System -- Linux scheme 3.11.10-34-desktop #1 SMP PREEMPT Wed Jan 20 14:13:45 UTC 2016 (1e76e80) x86_64 x86_64 x86_64 GNU/Linux Start Benchmark Run: Kichijitu JST 2016 1 interactive users. 11:59am up 1 day 1:34, 1 user, load average: 0.03, 0.09, 0.32 lrwxrwxrwx 1 root root 4 Apr 13 2015 /bin/sh -> bash /bin/sh: symbolic link to `bash' /dev/sda1 238263396 66767936 159369332 30% / Dhrystone 2 using register variables 6125966.9 lps (10 secs, 10 samples) Arithmetic Test (type = double) 1.0 lps (0 secs, 10 samples) System Call Overhead 1797971.5 lps (10 secs, 10 samples) Pipe Throughput 905686.5 lps (10 secs, 10 samples) Pipe-based Context Switching 132440.2 lps (10 secs, 10 samples) Process Creation 6125.4 lps (30 secs, 3 samples) Execl Throughput no measured results File Read 1024 bufsize 2000 maxblocks 826182.0 KBps (30 secs, 3 samples) File Write 1024 bufsize 2000 maxblocks 383741.0 KBps (30 secs, 3 samples) File Copy 1024 bufsize 2000 maxblocks 252002.0 KBps (30 secs, 3 samples) File Read 256 bufsize 500 maxblocks 342990.0 KBps (30 secs, 3 samples) File Write 256 bufsize 500 maxblocks 142674.0 KBps (30 secs, 3 samples) File Copy 256 bufsize 500 maxblocks 89133.0 KBps (30 secs, 3 samples) File Read 4096 bufsize 8000 maxblocks 1089384.0 KBps (30 secs, 3 samples) File Write 4096 bufsize 8000 maxblocks 545496.0 KBps (30 secs, 3 samples) File Copy 4096 bufsize 8000 maxblocks 359910.0 KBps (30 secs, 3 samples) Shell Scripts (1 concurrent) 1425.5 lpm (60 secs, 3 samples) Shell Scripts (8 concurrent) 205.9 lpm (60 secs, 3 samples) Shell Scripts (16 concurrent) 130.3 lpm (60 secs, 3 samples) Arithmetic Test (type = short) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = int) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = long) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = float) 1.0 lps (0 secs, 3 samples) Arithoh 1.0 lps (0 secs, 3 samples) C Compiler Throughput 409.5 lpm (60 secs, 3 samples) Dc: sqrt(2) to 99 decimal places 49767.7 lpm (30 secs, 3 samples) Recursion Test--Tower of Hanoi 82466.9 lps (20 secs, 3 samples) INDEX VALUES TEST BASELINE RESULT INDEX Arithmetic Test (type = double) 29820.0 1.0 0.0 Dhrystone 2 using register variables 116700.0 6125966.9 524.9 Execl Throughput 43.0 0.0 0.0 File Copy 1024 bufsize 2000 maxblocks 3960.0 252002.0 636.4 File Copy 256 bufsize 500 maxblocks 1655.0 89133.0 538.6 File Copy 4096 bufsize 8000 maxblocks 5800.0 359910.0 620.5 Pipe Throughput 12440.0 905686.5 728.0 Pipe-based Context Switching 4000.0 132440.2 331.1 Process Creation 126.0 6125.4 486.1 Shell Scripts (8 concurrent) 6.0 205.9 343.2 System Call Overhead 15000.0 1797971.5 1198.6 ========= FINAL SCORE 0.0
新しい相棒
# # # # # # # ##### ###### # # #### # # # # ## # # # # # # # ## # # # # # # # # # # # ## ##### ##### # # # # ###### # # # # # # ## # # # # # # # # # # # # ## # # # # # # # ## # # # # #### # # # # # ##### ###### # # #### # # 4 000 Based on the Byte Magazine Unix Benchmark 44 00 0 v v 4 4 0 0 0 v v 44444 0 00 v4.0 revisions mostly by David C. Niemi, v 4 o 000 Reston, VA, USA David.Niemi@mail.li.org Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10 Arithmetic Test (type = double) 1 2 3 4 5 6 7 8 9 10 System Call Overhead 1 2 3 4 5 6 7 8 9 10 Pipe Throughput 1 2 3 4 5 6 7 8 9 10 Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10 Process Creation 1 2 3 Execl Throughput 1 2 3 Filesystem Throughput 1024 bufsize 2000 maxblocks 1 2 3 Filesystem Throughput 256 bufsize 500 maxblocks 1 2 3 Filesystem Throughput 4096 bufsize 8000 maxblocks 1 2 3 Shell Scripts (1 concurrent) 1 2 3 Shell Scripts (8 concurrent) 1 2 3 Shell Scripts (16 concurrent) 1 2 3 Arithmetic Test (type = short) 1 2 3 Arithmetic Test (type = int) 1 2 3 Arithmetic Test (type = long) 1 2 3 Arithmetic Test (type = float) 1 2 3 Arithoh 1 2 3 C Compiler Throughput 1 2 3 Dc: sqrt(2) to 99 decimal places 1 2 3 Recursion Test--Tower of Hanoi 1 2 3 ============================================================== BYTE UNIX Benchmarks (Version 4.0.1) System -- Linux scheme 3.11.10-34-desktop #1 SMP PREEMPT Wed Jan 20 14:13:45 UTC 2016 (1e76e80) x86_64 x86_64 x86_64 GNU/Linux Start Benchmark Run: Kichijitu JST 2016 2 interactive users. 00:16am up 0:04, 2 users, load average: 0.29, 0.14, 0.06 lrwxrwxrwx 1 root root 4 Mar 27 15:54 /bin/sh -> bash /bin/sh: symbolic link to `bash' /dev/mapper/Volume1-LogVol1 230003900 66762952 151534376 31% / Dhrystone 2 using register variables 16813665.6 lps (10 secs, 10 samples) Arithmetic Test (type = double) 1.0 lps (0 secs, 10 samples) System Call Overhead 3088115.0 lps (10 secs, 10 samples) Pipe Throughput 1999454.9 lps (10 secs, 10 samples) Pipe-based Context Switching 55599.5 lps (10 secs, 10 samples) Process Creation 5379.8 lps (30 secs, 3 samples) Execl Throughput no measured results File Read 1024 bufsize 2000 maxblocks 2312867.0 KBps (30 secs, 3 samples) File Write 1024 bufsize 2000 maxblocks 1052710.0 KBps (30 secs, 3 samples) File Copy 1024 bufsize 2000 maxblocks 712506.0 KBps (30 secs, 3 samples) File Read 256 bufsize 500 maxblocks 1143900.0 KBps (30 secs, 3 samples) File Write 256 bufsize 500 maxblocks 355999.0 KBps (30 secs, 3 samples) File Copy 256 bufsize 500 maxblocks 250665.0 KBps (30 secs, 3 samples) File Read 4096 bufsize 8000 maxblocks 3676327.0 KBps (30 secs, 3 samples) File Write 4096 bufsize 8000 maxblocks 2329405.0 KBps (30 secs, 3 samples) File Copy 4096 bufsize 8000 maxblocks 1427485.0 KBps (30 secs, 3 samples) Shell Scripts (1 concurrent) 3352.3 lpm (60 secs, 3 samples) Shell Scripts (8 concurrent) 1824.7 lpm (60 secs, 3 samples) Shell Scripts (16 concurrent) 1013.0 lpm (60 secs, 3 samples) Arithmetic Test (type = short) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = int) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = long) 1.0 lps (0 secs, 3 samples) Arithmetic Test (type = float) 1.0 lps (0 secs, 3 samples) Arithoh 1.0 lps (0 secs, 3 samples) C Compiler Throughput 864.7 lpm (60 secs, 3 samples) Dc: sqrt(2) to 99 decimal places 81258.5 lpm (30 secs, 3 samples) Recursion Test--Tower of Hanoi 156525.5 lps (20 secs, 3 samples) INDEX VALUES TEST BASELINE RESULT INDEX Arithmetic Test (type = double) 29820.0 1.0 0.0 Dhrystone 2 using register variables 116700.0 16813665.6 1440.8 Execl Throughput 43.0 0.0 0.0 File Copy 1024 bufsize 2000 maxblocks 3960.0 712506.0 1799.3 File Copy 256 bufsize 500 maxblocks 1655.0 250665.0 1514.6 File Copy 4096 bufsize 8000 maxblocks 5800.0 1427485.0 2461.2 Pipe Throughput 12440.0 1999454.9 1607.3 Pipe-based Context Switching 4000.0 55599.5 139.0 Process Creation 126.0 5379.8 427.0 Shell Scripts (8 concurrent) 6.0 1824.7 3041.2 System Call Overhead 15000.0 3088115.0 2058.7 ========= FINAL SCORE 0.0
読みにくいので Gist に貼っておきました。 https://gist.github.com/Nyoho/8ede658aca88fb9b64c62a5946e3d804
結論
(・∀・)イイ!!
まとめ
心機一転頑張ります!
2016 年 3 月 16 日 (水)
☆ 子供の突然の「散髪ごっこしたい!」に! 楽しい子育てアイディア「切り紙」なんていいわね
お子さんの突然の散髪ごっこ所望に……切り紙!
遊びが大好きな顔面かわいさ遊び王子こと、息子(5)は、あるとき「散髪ごっこしたい」と言い出しました。そんなときにこんな切り紙遊びをしました。とても楽しかったのでご紹介します。
白い紙を顔にして髪の毛に折り紙
なんと白い紙を顔の形に切りまして、うしろに堂々と髪の毛として折り紙をいきなり貼り付けるのです!
これで準備OK。あとは息子に好きなように散髪させます。 喜んで散髪しまくりました。
ちょきちょき……
ちょきちょき……
できたー!
いろんな色で何度も出来ます。
ってちょっwwwwwwwwwwwwww
息子は喜んで、「おでこも切っちゃった〜〜♡」と無残な姿にして喜んでいました。 そこは前髪の部分なのにwwwww
そんな楽しい切り紙アイディアはこちら
このような楽しい切り紙のアイディアは、次の切り紙の本に紹介してありました。 他にも折り紙を折って切って開いて対称な図形を作るなど、大人も楽しくなる切り紙アイディアがいっぱいです!
まったねー
2016 年 3 月 15 日 (火)
☆ イ・セドルさんと AI AlphaGo との5連戦終了について一言申したい
イ・セドルさんというめちゃんこ強い (九段) 囲碁の棋士の方と、 Google がお買い上げしたDeepMind による人工知能 AlphaGo との5局対戦が終わり、AlphaGo の4勝というすさまじい未来感を感じさせてくれました。
しかもこの人工知能は論文によると、囲碁に特化させて作られたものではなく、かなり汎用的に設計されたものであるそうで、大変驚かされます。 単に強い囲碁の AI が出来たやったーというわけではなく、この技術と Google のすさまじい計算力を用いて、これからあらゆる分野に応用されていくでしょう。
ところで、わしは将棋なら駒の移動方向ぐらいならばわかるので少しは何か言えるのですが、碁は石の移動方向すら知らないというど素人です。
したがって、この AlphaGo のことについて言及することは、囲碁、慎みたいと思います。以上です。
2016 年 3 月 13 日 (日)
☆ 機械学習第3週の続き
今日も如法会の Swiftと機械学習おうちでもくもく会(number: 2) に参加しました。
やったこと・わかったこと
基本的に昨日の機械学習のコース第3週の続きをしました。昨日は息子と寝てしまったので続きが多いです。
logistic regression ですが、hypothesis function も cost function も その関数でなくてもいいのではないかという疑問があった。 しかし実は最尤推定から来るという説明がちょっとあった。
gradient descent よりいいアルゴリズムらしいという、
- conjugate gradient
- BFGS
- L-BFGS
についてはこのコースでは解説されないとのこと。しかしNg先生も大規模になってきたら使うこともあるということ。
overfitting が起こるのでどうしましょうかということで regularization が登場。normalization ではない。 regularization は、コスト関数にパラメータの2乗の項を足すことによって、要らなそうなパラメータを小さくしていこうというものらしい。
小テストでは "Check all that apply." という指示の問題に手こずります。"always" と書かれていたら、「いや〜、絶対とは限らないのではないかなぁ」と疑ってしまいます。
途中で Swift の勉強もしました。 すると、Swift-AI というSwift製の機械学習ライブラリを見つけました。まだ試していません。
次にしたいこと
次は、機械学習のコースをさらに進めて、ついでに習ったことを生かして Swift-AI を試してみたいです。
2016 年 3 月 12 日 (土)
☆ 機械学習のコース第3週
如法会
如法会の一環として記念すべき第1回となる「Swiftと機械学習おうちでもくもく会(number: 1)」が開催されました。(8888888)
この勉強会は、各自がもくもくとやる勉強会ながら、アウトプットを強要するというのが特徴です。アウトプットしたいと思います。
アウトプット
やったこと
実は、6年前ぐらいにスタンフォード大学による無料ネット講義 ml-class.org (機械学習のコース) by Ng 先生 を受講していて、途中で忙しくなってやめてしまったものを今のコースでリベンジしています。 その第3週分の勉強を進めました。
今は ml-class.org たちも統合されて大規模な Coursera というサイトになっています。6年前に始まったときには、機械学習、人工知能、データベースの3つぐらいだったような思いますが、Coursera はものすごくたくさんのコースがあり、大学もスタンフォード大学だけではなく多くの大学が参加しています。素晴らしいです。
みんなも一緒に参加しましょう!
第3週は分類で、特に logistic regression の説明でした。 線形回帰の hypothesis function にシグモイド関数を合成することによって、hypothesis function を確率関数っぽくしていました。 また、元の関数の部分も、多項式関数にして、直線で分類できないようなややこしいケースでもうまくフィットするように回帰ができそうでした。
次にしたいこと
頑張りましたが、途中で息子と一緒に寝てしまったので、さらに続きをやりたいと思います。