2016.11.12 Sat |

機械学習を行うのに便利な言語について

こんにちは!

今回は機械学習をおこなう上で、便利な言語について紹介したいと思います。
shutterstock_218896384
みなさんはプログラミング言語についてどのようなものを知っていますか?
一番有名なものはC言語ですが、他にもRubyやhtml、Javaなどもありますね。
プログラミング言語はその特性によって使い分ける必要があります。例えばhtmlなどは、ホームページを作るのに非常に便利です。
texなども一つのプログラミング言語になるのかもしれませんね。
機械学習をおこなう上で、簡単なものでは、回帰直線Deep Neural Network、応用的なものではRecurrent Neural Networkなど、幅が広いものを一から自分で実装するのは非常に大変です。
なので、パッケージを用いることでこれらを簡単に実装することができます。
今回はそれについての紹介です。

1. python

近年になって急速に伸びてきた言語です。Wikipediaでは以下のように説明がなされていました。

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計され、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。

この言語の特徴は、何よりも「簡単に書ける」という点でしょう。

 ただし、C言語と比べると高速性には欠けます。以下のようにfor文とif文を混合させると、少し時間がかかってしまいます。
prog2
しかし、現在はGPUという、高速で計算を行ってくれるものも増えています。pythonの利便さと、GPUによる高速計算で機械学習を行うのが2010年以降の流行りのようですね。

2. Julia

 この言語の名前は初めて聞いた人が多いのではないでしょうか。
実は巷ではJuliaが流行っていると聞いたことがあります。
Wikipediaで調べると以下のような説明が出てきました。
Julia(ジュリア)は、 一般的なプログラミングから高水準の科学計算処理まで対処するよう設計された高水準言語及び動的プログラミング言語である。[1][2][3] LLVMコンパイラフレームワークを用いてC言語C++Schemeで組まれており、標準ライブラリの殆どは独自に実装した。[4] 2009年に開発が始まり、2012年2月にオープンソースとして公表された。[5][6] 実装の最も注目すべき特徴は性能に有り、完全にC言語で最適化されたコンパイル言語分野での優位性が見られる。
どうやらC言語と同程度の高速さを可能にしているようです。
またプログラミングの簡単さも兼ね備えています。
それではもうJuliaでいいんじゃないの?という声もありますが、まだパッケージなどは充実していないため、pythonが主流なようですね。興味のある方は是非とも調べてみてください!
julia_prog_language-svg

今回はプログラミング言語について紹介しました。
次回はこれを使って機械学習を便利に行えるパッケージについて紹介したいと思います!
東京大学工学部4年
H.M
2024.1  
給料も教育もガッツリと!メンター制度開始します  詳しく