Coursera の Machine Learning 完走

CourseraのMachine Learningのコースを完走できた。11週間くらいかかったけど、かなり効率良く機械学習について学べてとても良かった。

コースは機械学習の手法について広く教えてくれる。教師あり学習の線形回帰やロジスティック回帰、ニューラルネットワークの構築の仕方、教師なし学習のK-meansや主成分分析などなど。それだけでなく、実践的な技とか勘所を教えてくれるのが良い。例えば、大量の教師データを集める前に、データ増やして改善しそうな性質になっているかを確認して、半年とかを無駄にしないようにしましょうとか、まずはシンプルな手法に取り組んで様子をみながら難しい手法を試してみると良いでしょうとか。

一週ごとに宿題があって理解を確認できるようになっている。宿題にはプログラミングの課題もあって、実際に機械学習のプログラミングの雰囲気を体験できる。単にアルゴリズムを実装するだけではなくて、グラフの様子をみながら改善していくといったフローになっていて自分でやるときも同じようにできそうで良い。簡単にはループで実装するところを、ベクトル化してシンプルな見た目、かつ高速に動作するように改良したりするのは、パズルっぽくておもしろかった(前もちょと書いてた)。

数学の知識がないと大変そうって思っていたものの、うろ覚えの基礎的な微分積分と線形代数でなんとかなった。とはいえ、手法の裏付けは数学的に証明されているので、できたらより納得感は高そう。もうちょっと理解したくて、微分積分勉強してる。微分積分は電子工学勉強するのにも使えるので便利そう。

f:id:hakobe932:20160409120611p:plain

11週間も時間を見つけてはビデオみたり、休みの日に宿題したりでちょっと忙しかった。しかし、機械学習分野のとっかかりを得るにはとても良くて、勉強して良かった。機械学習を使って自分で何か作ってみたりできそうだし、次に何を学ぶべきかもなんとなくわかる。何か役立つものを作ってみたい。

最後のビデオでは先生がそんな僕らに労いと感謝の言葉を繰り返し投げ掛けてくれて、涙なしでは見れないという感じでよかった。おすすめです。


あわせて読みたい:

blog.sushi.money

国立科学博物館

遊ぶ用事があって東京をうろうろしてる。土曜日はちょっと時間が余ったので国立科学博物館に行ってきた。



あんまり調査せずに行ってみたもののとても良かった。すごい豪華な理科室という趣で、恐竜から宇宙から産業機械からとにかく広範囲をカバーしたおもしろ展示が無限にある。理科の図鑑に載ってたいろんな動物の剥製があって見比べられるし、トリケラトプスやアーケロン、鯨の骨格は迫力がすごい。水中に浮いてる砂鉄が地場の中で整列する様子を確かめられるし、電磁誘導で遠くのLEDが光る様子を眺められる。

ただ、とにかく展示の分量が多くて全然回りきれなかった。3時間くらいいたけど3割くらいしかみれてない。油断してた。あと2回くらい訪れてコンプリートしたい。

(明示的に禁止されてる展示以外は写真が撮れる。)

計算機の歴史のコーナーがよくて真空管式やリレー式の巨大なコンピュータを眺められる。インテルのi4004とかも置いてあった。

ちまちまポケモンやってる

初代ポケモンが3DSのバーチャルコンソールで発売されたのでちまちまやってる。先日からビーダマンやっていたりとマインドが20年前に戻りつつある。

初代ポケモンはさすがに近代のポケモンと比較するとグラフィックなどは素朴なもののやっていておもしろくてすごい。次はあのポケモン進化させるぞ!とかどうやったら隣町に行けんるだ??とか、次々とやることがでてきて飽きない。モブが次にやることをあんまり言ってこないのがいいのかも。そのかわりミスるとフラッシュなしでイワヤマトンネルを抜けることになる。

いまはヤマブキシティやってきたところなので中盤くらい?もう少しすすんだらだれかポケモン交換したり対戦したりしましょう。


ガルパン 4DX

せっかくいただいてる休みを生かさねばと、ガールズ & パンツァー 劇場番の4DX上映を見にいってきた。

京都から4DXを見にいくとなると、今のところはエキスポシティに行くのが近い(夏には桂側イオンモールに劇場ができるらしい)。3日前から予約できて、日がまわったあとにしゅっと手続きしたら予約できた。平日だから比較的予約が殺到しなかったというのもあると思う。

ガルパンの劇場版は普通の劇場で一度見たことがある。4DXはまったく経験がなかった。とにかくはじめはイスが揺れる演出に慣れなくて、なんだか気持ちわるくなってきて、これがあと一時間以上続くのはきびしいな、と感じた。ただ、そのうち徐々に慣れてきたのか、あるいは振動の演出の具合がよくなってきたのか、最終的には揺れの演出にうまくのっかって楽しめるようになった。めっちゃくちゃ揺れるんだけど、うまく椅子にしがみつくと体勢が安定して見やすくなる。それでも体調悪い時に見るのはきつそう。

ガルパンと4DXの相性は評判どおり良く、臨場感がでて作品の世界に没頭できるのが良かった。雨のシーンが良くて、演出で水滴が上から落ちてくるのだけど、これが結構、実際の雨のうっとおしさというか嫌な感じを思い起こさせる。雨によってネガティブさを強調するシーンだったので、作品に入り混んでいる感がより高まった。戦車同士の戦闘シーンの良さは言わずもがな。戦車がきる風や、激しい旋回による遠心力、弾丸発射による振動など、映像に関する情報量がめっちゃ増えて迫力がとにかくすごい。最後の戦闘シーンでは4DXに慣れたのもあってか、揺れなんかの4DXの演出を自然に受けいれられていて、作品世界への没頭感がすごかった。

全体的にはすごくおすすめで、映画一度みて良かったひとはぜひ4DXも挑戦されたい。4DXを経験してると特に気持ちわるくなったりはならず、はじめのほうのシーンもたのしめそう。自分も慣れた状態で最初のほうが見たい気もするけど、ちょっと見にいくのがたいへんなのでまぁいいかな、という気はする。桂川でリバイバル上映してたら見にいきます。

温泉観光

温泉街を観光してきた。


めっちゃ湯気でてる。地下200mくらいから湧いてるらしい。


滝もあるぞ。

f:id:hakobe932:20160223224342j:image

おもちゃ博物館みたいなところにあった良い積木が良かった。なんか変わった形をしていて、多様な方法で組み合わせることができる。丁度解説タイムに出くわして、おもちゃ博士みたいな人がいろんな技を披露してくれた。

観光といっても近所をぶらぶらするくらいで、だいたいゆっくりしてた






宝塚に挑戦したぞ

f:id:hakobe932:20160222213111j:image
はじめて宝塚を見に行ってきた。演目はるろうに剣心で宝塚初心者でも話はだいたい知ってる演目なので安心。

平日なのに当然のように満席だった。そして、ほぼ女性の方しかいなくてびっくりした。男性とはお手洗いにいくと会える。

演劇は大変楽しめた。ミュージカル仕立てでリズミカルに話が進む。原作と比較するとすごいスピードで話が展開するけど意外と気にならない。役者さんのセリフ回しや動きもメリハリが効いていてかっこいい。全体的な調子に乗せられて話に入り込んでしまう。

ストーリーがひととおり終わると、メインのキャストの方々それぞれのパフォーマンスやら、大勢によるラインダンスやらを得て、大団円を迎える。(フィナーレというらしい?)。この部分はまさに宝塚という感じで満足感がたかい。ストーリーの部分では武士の格好をしていた人も後ろに大量の羽をつけて登場したりして、急に華やかになる。

一つの公演の中でもいろんな方面で楽しませてくれて、確かに何度も見に来たくなるのはわかるという感じだった。宝塚は京都からだと若干とおいのがつらいものの、折にふれてみにいくのもよさそう。次は双眼鏡借りてチャレンジしたい。

今日は温泉宿でゆっくりします。

機械学習学んでる

そういえば最近は、Coursera のMachine Learningのコースで機械学習の勉強してる。去年の秋くらいにも社内でこのコースの勉強会が開催されてたんだけど、その時は乗り遅れたので、最近はじまった回から参加することにした。チームのエンジニア何人かで細々とやってる。

まずは教師ありの分類手法を勉強していて、線形回帰、ロジスティック回帰と学んで今はニューラルネットワークを勉強するところまでやってきた。課題をやっていくと自然と手書き文字の自動認識とかできるようになっておもしろい。

↑ たしかに3。

数学をそこそこ使うけど、先生がとにかく丁寧におしえてくれるし、難しすぎるところは理解に支障がない程度にすっとばしてくれるので、まったくわからなくなって途方にくれるということがなくて穏やかな気持ちでいられる。

今日あったおもしろできごととしては、計算のベクトル化というのがあって、例えば、

X = [1,2,3,4,5]
Y = [6,7,8,9,10]

みたいな二つの列の同じindexの要素の積の和をもとめたいときに、素朴には

SUM = 0
for i = 1:5
  SUM = SUM + X(i) * Y(i)
end

とかやるんだけど、XとYを行列とみなすと以下のようにかける(`は行列の転置)。

SUM = X * Y'

こういうのを計算のベクトル化というらしい。工夫するともう少し複雑な計算をいっぺんにするのに使える。みためがおしゃれなだけではなくて、行列計算の最適化が結構効くようになるってのが良いみたい。

今日解いていた、ニューラルネットワークの学習の課題だとforを使った実装だと580秒くらいかかってたのが、ベクトル化した実装だと12秒になった。50倍くらいはやくなっていてすごい。プロセスの様子をみてたら、forの実装だとCPU一個しか使ってなかったのが、ベクトル化した実装だと複数のCPUを使ってた。なるほどな〜。