今もっともホットな学問といえばやっぱりAI(人工知能)技術などで使われている機械学習ですよね。中でもその根幹と呼べるのがディープラーニングなのですが、実はそのディープラニングを自宅のPCでも簡単に行うことができる方法があります。それはchainerというフレームワークを利用する方法。
なお、このchainerは外国で生まれたものではなく、意外にも私たちの住む日本で生まれたフレームワークです。
そこで今回はディープラーニングの基本としてこのフレームワークchainerについて紹介し、どのような知識を持った上で利用すべきなのか、また、具体的なインストールの方法や簡単な実装、注意点などを詳しく説明していきます。
最後には実際にこちらを利用してディープラーニングを行うみなさんに向けて、それまで説明した内容に加えてやってほしいことをお伝えしていきましょう。
ぜひ、このフレームワークchainerに入門して、ディープラーニングに挑戦してみてください。
ディープラーニングフレームワークchainerとは
それでは、chainer入門の初歩としてまずはこのchainerがどんなものであるのかを説明していきます。端的に説明していくとchainerは以下のようなもの。
- 日本生まれのディープラーニングフレームワークである
- Define-by-Runという手法が特徴
ですから、こちらを扱えるようになれば、みなさんの手でディープラーニングが行えるようになります。
ただし、このようなフレームワークは他にもあります。例えば、有名なものではTensorFlowなどが当てはまるでしょう。
ちなみに「Define-by-Run」は「Define-and-run」という手法に対しての言葉になっています。こちらを簡単に説明すると、まず「Define-and-run」はプログラミングを行った上で計算処理を行い、その後に逆方向から処理を行うもの。
こちらの手法であれば上で述べたような「Define-and-run」のデメリットがなくなるだけでなく、より簡単にニューラルネットワークを作成できるというメリットが生まれています。
したがって、ディープラーニングの基本を学んでいく際の入門にchainerはうってつけなのです。ここまでディープラーニングフレームワークchainerについて説明しましたが、初心者には「フレームワーク」という言葉自体がよくわからない人もいるでしょう。
そのため、以下ではこのフレームワークの意味について説明していきます。
そもそもフレームワークって何
そこで生まれたのがフレームワークです。こちらを利用すればすでに用意されたプログラムを使って効率的に開発が行え、プログラミングの初心者であっても簡単に開発を行えます。
そのため、イメージとしてフレームワークは開発に合わせた専用の作業台のようなものだといえるでしょう。ですから、ディープラーニングを行う際には、専門のディープラーニングフレームワークであるchainerを利用するべきでなのです。
以上がフレームワークの意味についてになります。これを踏まえてこの入門に適したchainerを利用する時に必要な知識を次では説明していきましょう。
chainerを利用するときに必要な知識
それでは、chainerに入門するときに必要な知識について説明してきます。
ディープラーニングフレームワークであるchainerには以下の4つの知識が必要です。
- Pythonについての知識
- 数学の知識
- 機械学習やディープラーニングなどの知識
- chainerについての知識
ですから、Pythonについての知識がある程度あったほうがchainerを理解しやすいです。
したがって、最低でも高校以上のこれらの基礎的な内容は把握しておきましょう。
もちろん、chainerに入門したばかりの初心者であっても、少しずつ勉強していけば知識は身に付けていくことは可能です。そのため、並行して学んでいくのもよいでしょう。
ですので一度それらには目を通した上でchainerを利用するのが入門時の対応としては正解です。
以上が入門に適したchainerを利用するときに必要な知識になります。ここまででchainerがどのようなものであるのかは大体わかったことでしょう。
それでは、次からはchainerをインストールする方法を具体的な手順でお伝えしていきますのでぜひ、実際にchainerをインストールしてみなさんの手で扱ってみてください。
chainerをインストールしよう
それではいよいよインストールをしてみましょう。入門に適したchainerをインストールするには以下の2つの手順を実行してください。
Python環境を整える
こちらに関してはPythonの公式サイトからダウンロードして導入する方法と、パッケージをダウンロードして導入する2つの方法がありますがおすすめなのは後者です。
そのため、できればパッケージを利用するのがおすすめです。なお、パッケージはanacondaなど有用なものが複数あるので、みなさんのお好きなものでPythonの環境構築を行ってください。
chainerをインストールする
次に、Pythonの環境構築を終える、もしくは済んでいる場合にはchainerをインストールしていきましょう。手順としてはパッケージからインストールする方法などもありますが、基本的にはOSなどによらず以下のコマンドをターミナルに入力すればOK。
pip install chainer (または 「pip install chainer==バージョン名」と入力すればバージョンごとにchainerをインストール可能)
なお、上のコマンドが入力されて正しくインストールされたかを確認するには、以下のコマンドを入力してください。
import chainer print(chainer.print_runtime_info())
ぜひ、以上のような手順と方法で入門に適したchainerのインストールを行ってみましょう。これらはそれほど難しくはないのでみなさんにもきっとできるはず。
インストールが終わりましたら、今度は実際にインストールしたchainerが動作するのかを簡単な実装を行って確認していきます。
chainerで実装してみよう
それでは、入門に適したchainerでどのように実装していくのかを非常に簡単な方法で行ってみましょう。今回は関数の微分を以下の設定で行うという実装を行っていきます。
y = x**2 - 3 * x + 1 x = 4
なお、基本的な高校数学を理解していればこちらの設定でのyの値と、微分したものの計算結果は以下のようになることがわかります。
y = 5 y´ = 2 * x - 3 x = 4 であるとき y´ = 5
これを踏まえて実装を行っていきましょう。
こちらはchainerが「Define-and-run」を採用しているため、定義して実行を行うのではなく実際に計算処理を行いながら実行していくものであるから必要です。ですから、まずは以下のように入力していってください。
import numpy as np import chainer from chainer import cuda, Function, gradient_check, Variable from chainer import optimizers, serializers, utils from chainer import Link, Chain, ChainList import chainer.functions as F import chainer.links as L
これによって計算処理に必要なPythonのライブラリであるnumpyやchainerの変数の準備ができました。では、上の設定で以下のコマンドを入力して値を求めていきましょう。
1.>>> x = Variable(np.array([4.0])) 2.>>> y = x**2 - 3 * x + 1 3.>>> y.data
array([ 5.])
つまり、この関数にxの値を代入したものが5であると計算されたことが上でわかります。
それでは、次にこの関数を微分してみましょう。こちらに関しては以下のようにコマンド入力してください。
4.>>> y.backward() 5.>>> x.grad
説明していくとyの関数を上とは逆の手順で処理を行う、つまり微分して計算する上とは逆方法の処理を行うように命令し、それを5で表示するように命令しています。そして、これらを入力し終えると以下が出力されます。
array([ 5.])
お分かりのようにこの場合の傾きが5であると計算できています。
以上のように関数の微分がchainerで簡単に実装できました。
これまでは入門に適したchainerがどのようなものであり、どんな知識を学んでおいたほうがよいのか。また、具体的なインストール方法や簡単な実装について説明してきました。
しかし、実はこの入門に適したchainerにはいくつか利用する際の注意点があるので、次の章ではそれについてお伝えしていきます。
chainerを利用する注意点
「Define-and-run」という手法を採用していることが特徴であり。入門向けchainerですが以下の2点の注意点があります。
- chainer自体の実質的な開発は終了している
- 国際的なシェアは低い
そのため、将来性の観点などや今後アップデートされない点を考えていくと、いくら優れたディープラーニングフレームワークといえどもいずれはどれかに移行すべきときが来るでしょう。
ですからディープラーニングフレームワークについての入門としてchainerを使ってみましょう。
最後にこれまで説明した内容に加えてやってほしいことをお伝えしていきます。なお、これまでは以下のことを説明してきました。
- chainerは国産のディープラーニングフレームワークである
- フレームワークとは汎用的なプログラミング集のこと
- chainerはPythonの観光構築をした上でインストールする
- 実装は「Define-and-run」を生かして行う
- 残念ながら実質的な開発は終了している
実はディープラーニングではGPUを使うことが多いのですが、その場合では上で紹介したやり方であると問題があります。もちろん、簡単にCPUでディープラーニングを学ぶ場合には上でも問題ありませんが、本格的にやる場合には以下のことを行ってください。
これらはGPUでディープラーニングを行う際に必要なもので、ともにNVidiaの公式サイトからダウンロードした上でインストールし、必要な作業を行った上で最後にようやくchainerをインストールしてください。こうしないと上手くいきません。
なお、chainerのアンインストールと再インストール自体はとても簡単で以下のコマンドで実行できます。
- pip uninstall chainer
- pip install chainer –no-cache-dir
また、必要なものがあればインストールしておきましょう。例えば、Gitを利用したいならGitをインストールするなど使いたいものは入れておいてください。
これらを理解しながら入門に適したchainerでディープラーニングの基礎を学んでみましょう。そうすればきっと効率的に学ぶことができます。