こんにちは。アクセンチュアのアプライド・インテリジェンス(AIグループ)という組織で、主に統計や機械学習を用いたデータ解析モデルの構築を担当しているAtsushiです。私を含め、アプライド・インテリジェンスでは様々なバックグランドを持った方々が多く在籍しています。私の場合は大手メーカーで人工知能の研究開発を行っていました。アクセンチュアは多くの業界との結びつきが強い会社なので、様々なデータサイエンスの課題に挑戦できることが大きな魅力です。

 

 

さて、アプライド・インテリジェンスでは、高度なデータ解析の知識を活用しながら、実際のビジネス課題に対してソリューションを提供します。近年では特に、機械学習や深層学習といった言葉に代表されるような、人工知能の技術に由来する統計的予測手法を利用する機会が増えてきています。従来的な統計手法との違いとしては、取り扱うデータサイズや必要な計算コスト(時間やメモリなど)が膨大であることが挙げられます。

 

これらの技術を利用するために使われるプログラミング言語としてはPythonRといったものが代表的ですが、より高度な手法を設計し活用したい場合に、これらの言語では計算速度や汎用性に課題点が残ります。

 

ここでは近年注目を集めているプログラミング言語であるJuliaを使って、科学計算やデータ解析を行う方法と利点を簡単に紹介します。

 

 

1.Juliaの利用方法

Juliaはマサチューセッツ工科大学によって2009年から開発が進められているオープンソースのプログラミング言語です。下記のページから、Windows, macOS, Linux向けの最新版インストーラーが無料でダウンロードできます。

 

https://julialang.org

 

2020年5月現在の最新バージョンは1.4.1です。Juliaは急速な開発による高度化が日々続けられているため、頻繁にバージョンチェックをすることをお勧めします。

 

JuliaのコーディングはPythonRと同様、Jupyter Notebookなどの対話型の実行環境や、VSCodeなどの統合開発環境も利用することができます。

 

2.Juliaの特徴

Juliaの特徴を一言で表すと「Pythonのように簡単に書けて、Cのように計算速度が速い」と言うことができます。

 

科学技術計算やデータサイエンスの分野では、高度な計算処理や複雑なデータ解析を行うために、コーディングと計算結果の評価を繰り返し行う必要があります。Juliaは記述の簡潔さで開発者のコーディングの負担を減らし、かつ実行の速さで計算結果の迅速な評価を行うことができるため、開発全体のサイクルを効率化できます。

 

Juliaが高速に計算できる理由の一つとして挙げられるのが、多重ディスパッチの採用と高度な型推論機能です。多重ディスパッチとは、関数の引数に応じて適切な計算処理を割り当てることのできる仕組みです。さらに、型推論の機能によってJuliaのコンパイラは自動的に変数の型を特定し、計算処理の最適化を行うことができます。

 

Juliaはメタプログラミングもサポートしています。メタプログラミングとは、プログラムが自身のコードを直接参照し、修正や拡張を行うことができる機能です。これにより、開発者は単純で冗長なコーディングをJuliaのプログラム自体に任せられるほか、前述したコンパイラの機能によって自動拡張されたコードを最適化することもできます。

 

さらに、JuliaはUnicodeのサポートをしています。例えば、μΣといった特殊な数学記号もコードに含めることができます。これによって、数式と実装の間の差異が少なくなり、視認性が高くなります。

 

Juliaは比較的新しい言語なので、PythonRといった言語と比較するとまだそれほど多くのライブラリは開発されていません。これを補う手段として、Juliaには他言語を呼び出す機能があります。例えば、Pythonのグラフ作成機能であるmatplotlibは、ほとんど同じ書き方でJuliaでも用いることができます。PythonRに慣れ親しんだ方であれば、Juliaへの入門の敷居はかなり低くなると言えます。

 

3.【例】ガウス過程回帰モデルによる予測

ここではJuliaによる実装のシンプルさを示す実例として、ガウス過程回帰モデルと呼ばれる統計手法による予測を行います。前述したJuliaの機能を使えば、追加のライブラリを実質的にほとんど使うことなく、20行程度のスクラッチのコードでこのような高度な手法を利用することができます。

ガウス過程回帰モデルは、カーネル関数  を設計することによって予測を行う統計モデルです。数式の解説は参考書*1に譲りますが、訓練データを  としたとき、新規データ  に対する予測値の平均および共分散は次式で計算できます。

Juliaを用いれば、上記の式をほぼそのままコードとして書くだけで、実際に動作する予測手法を作ることができます。

Juliaによるガウス過程回帰の実装

 

4.今後の展望

データサイエンスの分野において、モデルを開発し実際のデータに適用するための時間サイクルを短縮できることは絶対的な価値です。Juliaは比較的新しい言語ですが、今後も継続的なライブラリや機能の拡充に伴い、応用範囲も拡大されていくでしょう。

 

-------------------------------------------

*1 Gaussian Process for Machine Learning

http://gaussianprocess.org/gpml/

Stay connected

募集職種を探す

スキルや興味に合った職種を探してみましょう。アクセンチュアでは、情熱、知的好奇心や創造力に富み、チームメンバーとともに課題を解決できる方を求めています。

キャリアに役立つ情報を入手

キャリアのヒント集、社員が執筆した記事、業界リーダーの知見など、アクセンチュアのウェブサイトに掲載されている情報を活用しましょう。

最新情報を受け取る

タレント・コミュニティにご登録いただくと、最新の募集職種、ニュースや社員からのアドバイスなど、あなたの好みに合わせた最新情報をお届けします。やりがいのある機会があなたを待っています。

全て見る