スーツ姿のプロダクトマネージャー

ITで新しいプロダクトを生み出したいすべての人を応援するブログです。

機械学習の練習にどのような環境を使うか?

f:id:ku2t:20181114222128j:plain

 

これまでに、機械学習の練習に使えるデータやビギナー向けの入門書について紹介してきました。

 

上の記事でも書きましたが、実際に機械学習スキルを向上させるためには、自分の手を動かしてやってみるのが一番効果的です。そのためにはパソコンやサーバといったIT環境が必要になりますが、職場のリソースを使うわけにもいかないので、自前で用意したくなることもあるでしょう。

今回は、機械学習の練習を自分でやろうとしたときに、どんなIT環境を活用するかということを考えてみます。

 

 

クラウドベースで練習する

自分のノートPCに何かをインストールしたり、新たにパソコンやサーバを購入するのは手間がかかります。マシンのセットアップに時間を取られるのは本質ではないので、手軽に始めたい方はクラウドベースの環境を使うところから初めてはいかがでしょうか。

手軽に使えるのはGoogle Colaboratory

Google Colaboratoryは、Googleが提供するPythonの学習環境です。Jupyter notebookをベースに作られていて、機械学習を手軽に試すには最適な環境といえるでしょう。時間的な制約はありますが、GPUまで使えてしまうというのは驚きです。基本的にGoogleアカウントがあれば無料で使えるようなので人にも勧めやすく、知り合いにも好評でした。

機械学習の参考書の多くはPythonを対話的に動かすような形で解説していますので、相性がよいと思います。以下の記事で立ち上げ方などを紹介していますので、見てみてください。

 

仮想マシンクラウドを借りる

Google Colaboratoryでもかなりのことが試すことができますが、計算スピードを上げたり、標準では使えないライブラリを使ったりしようとすると、やはり個別の環境を持ちたくなると思います。

クラウド環境としては、AWS(Amazon Web Services)GCP(Google Cloud Platform)などがあります。これらを使うと簡単に自分自身の環境を構築し、自分の好きなような環境をインストールすることができます。特に、GCPが提供する計算リソースGCE(Google Compute Engine)では、ミニマムスペックの環境が無料で使えるという情報もあり、さっそく私も構築してみました。クラウド環境の構築を練習するのにもよい環境だと思います。*1

環境構築には以下の記事を参考にさせていただきました。

 

また、パブリッククラウドではなくて、仮想サーバを借りるという方法もあります。長期的に利用するのであれば、こちらの方がコストメリットが出てくる場合もあります。代表的な仮想サーバとして、さくらインターネットのVPSがあります。2週間の無料プランも用意されているようですね。

 

練習のためのマシンを用意する

上ではクラウドベースのサービスを紹介してきました。もし手元にインターネット接続できるPCがあれば、これらのサービスを使うことで、最小限の初期投資で練習環境が手に入ります。しかし、PCを家族で共有しているなど自分専用のPCがない場合は、クラウドを活用するとしても自分用のマシンを用意するのがベターだと思います。

私が自宅で機械学習の練習を始めたときは、家族共有のノートPCにPythonやRをインストールしてやり始めましたが、いつでも使えるわけではないというのがネックになっていました。そこで、中古ノートPCを購入し、Ubuntuをインストールしてイチから環境を構築して自由な計算空間を作りました。やはり自分の計算空間を持つと気兼ねなく計算を回せるので楽でした。それに、自分が好き勝手できるローカル環境を持つといろいろと遊べるので純粋に楽しいですね。

 

中古のPCを使って気軽に試す

専用の計算環境を持つことは確かに理想ですが、いきなり大きな投資をしたくないというのが本音だと思います。Linuxのインストールもしてみたいけど、不慣れで新品のPCを壊してしまっては怖いですね。

ということで、私が数年前に取った方法は、中古のノートPCを安く手に入れて、好き勝手いじくるというやり方です。データサイエンスプロジェクトの多くはLinuxに代表されるUnix系の環境で実施することが多いので、UbuntuCentOSのセットアップにも慣れたかったのです。それに、Linuxであれば低スペックでも十分快適に動作するので、中古ノートPCはうってつけでした。

一口に中古ノートPCといっても、探すのは手間がかかります。アイデアとして、法人向けのノートPCの中古を狙うという手があります。法人向けのノートPCは中古が大量に出回っていることもありますが、知らない方も多いのでねらい目です。ヤフオクAmazonでは、富士通のLifebookやパナソニックのLet's noteといった国産ノートPCをよく見かけます。

ただし、メモリを増設したり、HDDをSSDに交換していくとそれなりにコストがかかってきますので注意しましょう。

 

クラウドへの接続環境として割り切るならChromebook

最近じわじわと注目度が上がっているのがChromebookです。Google Chromeしか使えない超シンプルなマシンとしてデビューしたChromebookですが、最近ではAndroidアプリも使えるようになるなど、用途が拡大しています。*2

Jupyter notebookを使えば基本的にブラウザでプログラミングができるので、ブラウザベースのChromebookで十分という場合もあります。AWSChromebookで開発環境を作られている方もいらっしゃいますね。

軽くて安くて動作時間が長いChromebookは、ある意味理想。私も自宅の環境をChromebookに移行しようと考えています。最近は魅力的なモデルが増えてきたので、純粋に使ってみたい!というのもありますね。

密かに狙っているモデルはこんな感じです。C101PAは900gを切った超軽量モデルで持ち運びに便利そうです。一方、C302CAはChromebookにしては高価格なモデルですが、使っている人が一様に満足しているので非常に気になります。 

 

ゲーミングノートPCでGPU環境を手に入れる

心置きなくDeep Learningを試してみたい、自分専用のマシンでGPUをぶん回してみたいという方には、ゲーミングノートPCを使うという方法をおすすめします。自分でパソコンを組み立てられる方はデスクトップの方が安上がりでしょう。しかし、とりあえずオールインワンの環境を手に入れたいというのであれば、ゲーミングノートPCを使うのがお手軽だと思います。

2年ほど前になりますが、国内で法人向けのGPUサーバ商品が出そろう前にDeep Learningをいち早く試したいと考えた企業が、ゲーミングPCを購入していたという話もあります。

 

GPUNVIDIAの製品を選ぶのが王道ですが、法人向けの高性能モデルは非常に効果なので、一般向けのGeForce GTXが手ごろな選択肢になると思います。AmazonでGTXを搭載したノートPCを調べてみるといくつか引っかかります。

会社ではGPU搭載のマシンで仕事ができるのですが、自宅にも自由にいじれるGPUマシンがあればと思っています。(趣味というには高コストすぎますが…。) 

 

 

*1:無料ということですが、若干課金される可能性もあるという情報もありますのでご注意ください。

無料のはずのGCEのf1-microインスタンスで11月だけ1円課金された理由 - Qiita

*2:Androidアプリが使えるかどうかはモデルによります。また、モデルによってはCPU等の制約から動かないアプリもあるようです。