daikiコメントを残すペパボアドベントカレンダ用の記事。ブログ書くの久しぶりになってしまったけれど、やっていく。機械学習のお話を書いていこうと思います。殆ど感想ともとれる記事なので、コラム程度にお読みいただければ幸いです。機械学習の言語と言えば機械学習をやろう!と思った人がまず最初に触れる言語は(近年は)言わずもがなPythonだと思います。多くの人はなぜPythonを使うのかわからないまま(もしくは私がそう思っているだけかもしれませんが)、Pythonによる機械学習の入門書を手に取り、numpyやmatplotlib等のライブラリを用いて学習・開発を行っていると思います。近い分野で統計を扱おうという人は、なんとなくRの入門書を手に取り、Rによる統計解析などを行っていると思います。別に他の言語でもできないわけじゃないPythonやR(以下はRについて省略します)はとても素敵な言語ですが、たまには他の言語で書きたくなることがあると思います。それは、他の言語の動作環境やライブラリに必要性を感じてのことかもしれませんし、気分を変えたいという気持ちもあるかもしれません。他の任意のプログラミング言語で同様の計算を行うことは出来ると思います。してそれが行われていないか。その理由はコーディングの量と計算の速度・安定性に大きな理由があると思っています。cumoという選択肢があります。これらのライブラリを使うことで一応は科学計算や多次元行列の演算などを行うことができます。これらのライブラリは試みとしては非常に面白く、個人的には非常に応援しているものの、学生が初学で学ぶに適しているか、実務に耐えうるか。いう問に対しては首を縦に振りづらいのが正直なところです。私自身は、numpyを初めとするpythonのライブラリ群には大学時代の研究で非常にお世話になりました。そのとき、私が躊躇せずpythonを選ぶことが出来たのはナレッジの膨大さでした。大学の指導教官もpythonを使っている。ライブラリ群はすでに安定していて直面する殆どのバグは既知となっていて対処法が明らか。そのような環境が私にpythonを選ばせた訳です。私と同じように、初学で始めようとする人には他の言語で始めるよりスムーズな学びにつながると思うからです。実務に対してはどうでしょうか。実務で使うときに重要なキーポイントは、データの信頼性、それとコストです。Rubyの科学計算ライブラリはpythonのそれらと比べて未だ幾ばくか安定性に欠けていたり、機能に欠けていたりするところがあります。その為、必然的にデータの信頼性がおちたりコストがかかりやすいRubyを用いるよりも、Pythonを用いようとするのは自然な流れだといえます。いえ、気になるとはいえ、Rubyでどのように科学計算が行われているのか気になったので、何か試しに動かせないか。思っていたらとても良いものがありました。これはPythonオブジェクトやライブラリをrubyで扱うことが出来るようになるというライブラリで、これを用いれば科学計算をRubyで行うことも期待が持てそうです。Magazine)にぴったりの記事があったのでこちらを参考にしつつサンプルコードを動かすところまでやってみました。imageを用います。notebookが起動できます。この中のサンプルコードを見てみます。endこのコードはまさしくRubyでかかれているものの、numpyやmatplotlibを用いることが出来ています。このように、純粋にRuby独力ではないものの、共存していくような仕組みも非常に重要だと思っていて、やりたいことが任意の言語で出来る環境というのはとても魅力的です。※同等のコードをpythonでかくとこれですまとめここまでいろいろ書いてきたものの、現状RubyとPythonを比べると機械学習や科学計算、統計を行う面においてRubyは力不足感が否めず、初学者や実務には向かない。Rubyでもそういったことやってみたいですよね。いうところに対して面白いなあと思ったPyCallの取り組みについて感想を交えつつ紹介しました。適材適所でつかっていくのももちろん重要(だしそうしないといけない局面は多々ある)ですが、同じ言語が技術領域をグローバルに使えるのも(頭脳の)切り替えコストが少なくて私は好きです。