機械学習について調べていると、「TensorFlow」というワードが目に入りますよね。機械学習を学ぶ多くの人がみんな当たり前のように使っているけど、一体何なのか分からないという人もいるかもしれません。TensorFlowという言葉をGoogleで検索しても、”TensorFlowはGoogleが開発しオープンソースで公開している、機械学習に用いるためのライブラリ”とあるのでオープンソース?ライブラリ?などの分からない言葉が多いように感じるでしょう。
この記事を読めば、ライブラリやオープンソースという言葉はどういう意味なのか、そしてTensorflowとは一体何者で、どういう使い方ができるのかが分かります。そして、チュートリアルとしてTensorflowのインストールから、MNISTというサンプルプログラムのご紹介までを行います。MNISTというのは機械学習による画像分類のプログラムであり、機械学習の登竜門と言えます。Tensorflowを利用してMNISTを動かす事で、機械学習の第一歩を踏み出しましょう!
そこで今回は、Tensorflowについて、初心者の方にも分かりやすいようにゼロから解説します。
Googleが開発!オープンソースTensorflowとは
Tensorflowとは、機械学習用のライブラリのこと。ライブラリとは、いろんな事を簡単に行うためのツールセットのようなものです。TensorFlowは検索エンジンの最大手、世界的大企業のGoogleが開発しているだけあって、非情に信頼性が高く、様々な開発や研究で採用されています。
GoogleはTensorflowをオープンソースという形態で公開しています。これは、ソフトウェアの公開形態の一種で、”ソースコードを全て公開する”という事です。Tensorflowは全てのソースコードをGitHubという有名なサイトで公開しています。以下のURLが、Tensorflowのソースコードなので、ぜひご覧ください。
機械学習のオープンソースを利用するメリット
オープンソースでソフトウェアを公開する事には、いくつかのメリットがあります。その中でも大きなものを分けると、信頼性と安定性の2つ。
信頼性とは、ソフトウェアの不正な利用がなされにくいという指標です。つまり、セキュリティがどれだけしっかりしているかという事を意味します。オープンソースのソフトウェアは一般的に信頼性が高いです。その理由は、ソースコードを公開する事によって、多くの人にソースコードの脆弱性(システム上の欠陥)を指摘してもらえ、更には修正までもしてもらえるからです。
次に、安定性についてです。これは、ソースコードをチェックされて修正され続けるという意味を含みます。しかしそれと同じくらい、企業のプログラムと違ってサポートが打ち切られる事がない事も大きな魅力です。つまり、突然のサポート終了によって被るであろう様々な被害を回避できる点は、ビジネス用途では特に絶大なポイントでしょう。
Tensorflowのインストールの方法
TensorFlowのインストールは特に難しいことはなく、pipコマンドでインストールできます。しかし、その前にまずは自分の導入するべきTensorflowのバージョンを確認しましょう。以下のURLの”テスト済みのビルド構成”を参照してください。
そして、自分のPythonのバージョンを確認してそれに合ったTensorFlowのバージョンを確認しましょう。自分のPythonのバージョンは、ターミナルに”Python -V”と入力すれば確認できます。
導入するべきバージョンが決まったら、まずはpipコマンド自体をアップグレードする為に、”pip install –upgrade pip”とターミナルに入力しましょう。アップグレードが完了したら、”pip install –upgrade tensorflow”などのように入力すればインストールが開始されます。バージョンを指定したい場合、例えば1.15を入れたいならば”pip install –upgrade tensorflow==1.15″のように入力します。また、GPUで動かすのであれば、”pip install –upgrade tensorflow-gpu”と入力しましょう。
使い方例:Tensorflowで画像認識を試してみる
Tensorflowをインストールしたら、まず最初にMNISTというタスクを行いましょう。これは0から9のいずれかの数値が手書きされた画像を、0から9のラベルに分類するタスクで、いわゆる画像認識、その中でも画像分類と呼ばれるタスクになります。
つまりMNISTは機械学習エンジニアが一番最初にやるタスクであり、機械学習版のハローワールドの位置付けでしょう。また、初心者の方でなくとも、新しいマシンを購入した時などにMNISTをやる事で環境設定が上手くいっているかを確認できます。皆さんも新しいマシンを購入した時など、環境が変わった時はMNISTを動かして確認すると良いでしょう。
今回は、以下の公式チュートリアルのソースコードを活用して画像認識を行いましょう。チュートリアルには詳しい解説もついているので、より深く学びたい人はぜひ一度目を通すことをおすすめします。
Tensorflowで注意する事
Tensorflowは強力なライブラリですが、その一方で基本的なライブラリでもあります。実はTensorflowを生で使うことはなかなかなく、基本的にはTensorflowをバックエンドとして(土台として)、Kerasなどのライブラリを使います。つまり、Tensorflow単体でプログラムをする事は珍しく、基本的にはTensorflowに抱き合わせでついているKerasというライブラリを通じてTensorflowを使うケースが多いです。
また、Tensorflowというよりも機械学習一般に言える事ですが、GPUを用いなければ学習に非常に時間がかかってしまいます。機械学習は極めて大量の行列演算などを行う為、GPUによる並列計算能力がなければ非情に計算に時間がかかってしまいます。このため、最初はCPUによる学習でもよいですが、慣れたら実用性を高める為にもGPUによる機械学習に挑戦しましょう。
さて今回は、ライブラリやオープンソースという言葉の意味や、Tensorflowについて解説しました。ライブラリとは便利な機能を集めた物で、TensorflowはGoogleが開発した、機械学習用の機能を集めた機械学習用ライブラリである事。そしてオープンソースという、ソースコードを後悔することで信頼性と安定性を高める形態で公開されています。
Tensorflowは機械学習においてはとてつもなく広く用いられているライブラリです。近年ではFacebookに開発されたPyTorchというライブラリとしのぎを削っていますが、ビジネス分野ではTensorflowが支配的地位を確立しています。
つまり、Tensorflowをマスターする事は、機械学習を学ぶための一歩をふみだしたと言えるでしょう。ぜひ、TensorFlowを使って機械学習の世界をガッツリ学びましょう!