バズワード化する「人工知能」に焦りを感じるエンジニア
ブレインパッドには自社開発プロダクトのエンジニアとして入社した下田氏。生涯エンジニアでいる気概を持ちながら、マネージャー職やデータ分析の受託、さらには営業活動も行っており、業務の幅を広げているといいます。また、分析に関する書籍の執筆・監訳なども行っています。
近年、機械学習や人工知能といった言葉がバズワード化し、一種のブームとなっています。Google社のAlphaGo(Google DeepMind社によって開発されたコンピューター囲碁プログラム)や、りんな(日本マイクロソフト社開発の会話ボット)、Watson(IBM社開発の質問応答システム)、Pepper(Aldebaran Robotics社開発の感情認識ヒューマノイドロボット)など、“すごい”イメージを想起させるトピックに事欠かない状況です。
しかしその結果、機械学習や人工知能をあまり理解しないまま、それらを盛り込んだ案件提案や営業活動が展開されてしまい、エンジニアや現場が苦しんでいることが多いと下田氏は指摘します。
機械学習や人工知能といったキーワードを含むプロジェクトが増えるにつれて、興味を持つエンジニアも多くなってきています。「『人工知能や機械学習は知っておくべきなのでは?』と、焦燥感に近い思いを持つ方も多いのではないでしょうか」と下田氏は語り、「当セッションではそういった感情に対する向き合い方について話そうと思います」と続けました。
本セッションで語られる内容の前提として、「人工知能と呼ばれるもの=機械学習やルールベースなどを駆使して人間らしい振る舞いをする何か」と定義されました。
機械学習や人工知能の手法を学ぶ
「『機械学習や人工知能のスキルを身に付けなければ……』という"焦燥感"を形成する要因は大きく分けて2種類ある」と下田氏は分析します。1つは「機械学習や人工知能の『手法』について知りたい」こと。もう1つは「機械学習や人工知能の経験やスキルをどのようにキャリアに絡めていけばよいのか、どうすれば活躍できるのか、イメージが欲しい」ということです。
「手法」については「半ば出オチ感があるのですが……」と前置きしつつ、「書籍やインターネットで調べることで欲しい情報が見つかるので、そちらを参照した方がよい」とコメント。最初の一歩として、ライブラリやAPIを利用し、ブラックボックスとして活用することから始めるように勧めました。また、「ライブラリの使い方が分からない場合、例えばOSSの機械学習ライブラリ『scikit-learn』ならチートシートを用いることで、目的に合った適切なアルゴリズムが判明する」と紹介しました。
次は「実行結果を理解し、チューニングを行う」段階に入ります。この調整は1回で終わることはなく、結果を解釈してパラメータをチューニングし実行を繰り返していく必要があります。チューニングで改善が見込めなくなった時点でアルゴリズムの変更を検討します。アルゴリズムの変更を行う場合は入力パラメータから考え直す必要があります。
このイメージをつかむために、下田氏は「A Neural Network Playground」を体験することを勧めました。
下田氏は続けて、手法を学ぶにあたり数学が重要であることを説明しました。数学は機械学習に取り組む上でのプロトコルのようなものであり、最低限、線形代数と微分積分を理解し、コツコツと学習を進めていく必要があります(これについてはNumpyと呼ばれるPythonのライブラリで学ぶのがおすすめとのことです)。「まずは動かしつつ、背景にある理論を知っていくことから始めましょう」とアドバイスしました。
そして、学習におすすめの書籍として以下の4冊を挙げました。ぜひ読んでみてはいかがでしょうか。