だるろぐ

明日できることは、今日しない。

ゆるふわ.rb リータンズ in 三津浜 に参加してきました。

f:id:daruyanagi:20170811181736j:plain

先週の金曜日、ゆるふわ.rb リータンズ in 三津浜 に参加してきました。

connpass.com

ゆるふわ.rb は Ruby の勉強会です。おまけとしてお刺身とビールがついてきますが、この手のモノの宿命として、本体よりオマケがメインになっているのが大変高尚だと思います。

f:id:daruyanagi:20170811181412j:plain

以前にも何回か愛媛県大洲市で開催されており、僕も参加しましたことがありましたが――

主催者の id:ogin_s57 さんが活躍の場を関東に移され、断絶していました。今回は帰省を機に、久しぶりに復活。

ゆるふわの後継になるかはわかんないけど、こういうゆるい集まりは松山でもやりたいですねー。まずは刺身包丁を買わねば。

などと言っていたのですが、結局はおんぶにだっこで大変すみませんなー。

場所は「踊るうどん永木」さんにお借りしました。

おいしいので、近場でまだ行ったことのない人はぜひ行くべし。

さて、今回は RubyFann というライブラリを使って機械学習に触れてみるやでーというテーマで少しだけお勉強しました。RubyFann はオープンソースのニューラルネットワークライブラリ FANN(Fast Artificial Neural Network、C++ 言語で書かれているみたい)を Ruby で扱えるようにした Gem みたいですね。

github.com

話は変わりますが、機械学習というのは僕たちがいつもやっていることの逆をやることなのだそうです*1

f:id:daruyanagi:20170814044806p:plain

普通は、何らかのプログラム(関数、アプリ)を用いてインプットからアウトプットを得ますが――

f:id:daruyanagi:20170814045255p:plain

機械学習の目的は、逆に インプット→アウトプット の組み合わせを大量に用意して、インプットを入れるといい感じのアウトプットを吐き出してくれるプログラム(関数)を作るのが目的です(このプログラムは“モデル”と呼ばれます)。

たとえば、きのこの山とたけのこの里を見分けるのは、人間にはたやすいことですが(無論、食べたことがない人には無理でしょうけど)、これをまじめにプログラムとして組むとかなり難しい。

けれど、あらかじめ「これがきのこの山」「あれがたけのこの里」というデータを大量に用意して、人間の脳みその仕組みを応用したいい感じのやり方(← たぶん FANN がやってくれていること)でモデルを訓練してあげると、割とうまくやれることが分かった――みたいな。勉強会でもチラッと出ましたが、分野を絞れば“コドモの脳”程度のことは再現できるようになった……かも。

しゅごい(文系的感想

僕はみんながカリカリやっているのを後ろから見ながら「へー、なるほどー(わかったふり」していただけですが、見てるだけでも結構面白いものです。「結果がランダムになっちゃうのはなぜだ?」という疑問も、おかげさまで大体解決しました。

また話が脱線しますが、それにしてもスクリプト使いは器用ですね――リファレンスサイトとエディターを行ったり来たりしながら高速でカリカリとスクリプトを編集してる……僕は Visual Studio に助けてもらわないと何もできない体になってしまったので、とても新鮮でした。昔はちょっと Ruby をしていたはずなんですが(Rails 2.0 時代)、今はもう、できる気がしないw

f:id:daruyanagi:20170811221318j:plain

二次会はタクシーで街にでて、いい感じのバーで遅くまで飲みました。ギターやドラムの生演奏でカラオケすると、いいですね。僕は人前で歌うのが苦手なので聞くだけですけどw

ありきたりな感想ですが、楽しかったです。またできたらいいですねー。

*1:確かそういう話をこの前の de:code で学びました……間違ってたら僕の勘違いです