私も機械学習エンジニアになれる?

機械学習やPythonを今学ぶ理由

保有するデータから知見を得てビジネスに適用することは以前から行われていますが、機械学習(マシンラーニング)や深層学習(ディープラーニング)を使ったデータ分析がこれまで以上に成果をあげ、いま盛んに取り組まれているのはご存じのとおりです。この活発な開発競争によって機械学習や深層学習がどんどん扱いやすくなっています。

機械学習(深層学習を含む)を使ったデータ分析のためには、データ、アルゴリズム、計算資源が必要です。これらが今どのような状況なのかを簡単にまとめてみましょう。

データ

分析のためにデータが必要なのは言うまでもありませんね。とくに深層学習を使ったモデル構築で精度を上げるには、多量のデータが必要とされます(最近では、少ないデータ量で精度を上げる方法も研究されています⁠⁠。また、分析の目的とプログラムに沿った形式へとデータを整理することも必要です。⁠前処理⁠などと言われるこの行程では、Pythonとそのライブラリであるpandasを用いると手際よく行えます。また、データはデータベースに蓄積している場合も多いでしょうから、SQLの知識も大切です。

機械学習を試したくてもデータがない、という方は、一般公開されているデータセットを利用しましょう。有名なデータセットとしては、手書き数字認識用のMNIST、一般画像認識用のCIFER-10などがあります。

アルゴリズム

アルゴリズムはモデル構築の肝であり、たとえば「教師あり学習」のアルゴリズムには、決定木、サポートベクターマシン、ロジスティック回帰、ナイーブベイズなどが挙げられますが、こういったアルゴリズムを扱いやすくするのに人気なのが、Pythonライブラリのscikit-learnです。また、TensorFlow、Chainer、CNTK(Microsoft Cognitive Toolkit)といった深層学習のフレームワーク開発はいまもっとも盛んに行われています。

アルゴリズムの挙動を理解するには、そこで使われている数式を理解する必要があります。しかし、これらのライブラリやフレームワークのおかげでそこまで深く理解せずともコーディングでき、専門外だったエンジニアも機械学習に取り組めるようになりました。

計算資源

機械学習には多量のデータを、繰り返し演算処理する計算資源も不可欠です。深層学習にはたいていGPUも求められます。GPU搭載のパソコンを購入したり、自前のパソコンにGPUボードを増設したりする方法もありますし、より高性能な計算資源が必要な場合にはクラウドサービス(IaaS)を利用するという方法もあります。Google、Amazon、Microsoftの3大クラウドや、国内ではさくらインターネットなどで、機械学習用途に適したハイパフォーマンスなGPUの選択肢を用意しています。

またIaaSではなく、学習済みモデルを提供するクラウドサービスもあり、目的によってはこれを利用することで、開発工程を大幅に短縮することも可能です。

最近では、計算資源としては非力なモバイル端末でも機械学習モデルを利用できるようにする、TensorFlow LiteやTensorFlow.jsなどの取り組みも行われています。

機械学習、まずはやってみよう!

機械学習を実務で活用できるエンジニアになるためとはいえ、いきなりすべてを理解するのは困難です。扱いやすいところから手を付けて、理解できたことと、理解できないことを知るのが習得の第一歩です。その先に、自分が進むべきエンジニア像が見えてきたらすばらしいことです。

これまで述べたことは、2月に発刊されたやってみよう! 機械学習の内容から一部引用しました。本書は、月刊誌Software Designの特集記事を再編纂した書籍です。雑誌ならではの複数著者による多面的な視点で、どのようにして機械学習やPythonを学んでいるのかをうかがい知ることができます。第一線で活躍するエンジニアのやり方を、追体験することからはじめてみてはいかがでしょうか。