企業が人工知能(またはディープラーニング)を始めるのに必要なヒト、モノ、コト

企業が、自社のビジネスに人工知能を取り込むには、どんなリソースがあればよいかまとめてみました。

1) ニューラルネットワーク開発部隊 (ヒト)
2) 分散システムのインフラストラクチャ (モノ)
3) ビジネスモデリング (コト)

 

1) ニューラルネットワーク開発部隊 (ヒト)

 

ビジネス要件から適切なネットワークを選択できる人材

動体検知や文字認識などの画像処理であれば畳み込みネットワーク、文字認識や時系列データであればリカレントニューラルネットワーク等、ニューラルネットワークは応用したい分野毎に異なります。目的に応じて最適なネットワークを選択できる人材がまずはなにより必要です。

 IT開発でいう「SE」の領域にあたりますし、後述の通りニューラルネットワークで求められる人材は、従来のIT開発のメンバーと親和性が高いので、従来までの「SE」と同じスキルセットと見なされやすいですが、少し違うと思います。

IT革命により、近年のIT開発の技術選択は体系化がなされた知識を学ぶ事で進行可能でしたが、人工知能の場合は、まだ発展途上な面もあり、数理的な知識が求められます。加えて、適切なITシステムを選択するセンスも従来通り求められてくるでしょう。プロセスマネジメントは別のメンバーに任せて、ビジネス要件に最適なテクノロジーを追い求めることに特化した方が、当面の間は効率的だと思います。

 

- 数学的な理解/知識

既に確立されている仕組みを使うのであれば、理系大学程度の基礎的な知識でいけると思います。これは高校時代に数学が好きだった理系出身ならある程度は標準搭載している知識です。

ただし(少し前の私を含め)多くの社会人は学生時代の学びの記憶を忘却の彼方においやってしまっているので、高校数学あたりからノートを片手に数週間復習するような機会を取る必要はあると思います。

分野としては、行列計算や偏微分などの知識になると思います。代数や複素解析はあまり出てこないです。

新しいロジックを考えたり、ロジックを組み合わせる必要がある領域に手を出す必要があれば、より詳しい数学的な知識を持つ人材がやはり重要になってきます。競合する企業も人工知能を採用しているような分野なら、体系的な学問を更に深く習得している人材までが求められるでしょう。

 

- 人工知能フレームワーク

この章はヒトをテーマにまとめましたが、人工知能フレームワークはソフトウェアの重要な概念なのでここで紹介させてください。

実際にデータを扱い、開発を効率的に進めていく為には、人工知能に向けた開発フレームワークを利用することになります。ニューラルネットワークでよく使う関数などがビルトインされているツールがあれば、毎回作らずに済むので便利だからです。TensorFlow、Chainerなどの実装があります。 

フレームワークは少なからず実装に影響を及ぼします。例えば、文字認識などで利用されるリカレントニューラルネットワークの1つであるLSTMををとっても、幾つかの種類があり、ツールにより実装されているものが異なるようです。私は当面、TensorFlowを使おうと思います。

 

-プログラマ

言語はフレームワークがサポートしているプログラミング言語を使えばよいです。昔はC言語や業界に特化した言語が使われており、言語自体の知識が求められましたが、最近はWeb開発などで積極的に使われてきたライトウェト系の言語(Pythonなど)でも扱えるのでとっつきやすくなっています。Web開発の経験があるレベルでも手をつけることができると思います。数学的な知識と合わせて、「高校時代に数学が好きだった理系出身のWebプログラマ」であれば戦える分野になりました。

ただし、プロダクトレベルに耐え得るようにするには、開発を効率に進める為にも、また開発したプロダクトに問題が発生しない為にも、テストや開発の方法論(MVCのようないわゆる開発フレームワーク)といったプログラミング開発における実装上の課題に取り組めることが重要になっていきす。

 

2) 分散システムのインフラストラクチャ (モノ)

 

- ハードウェア 

マシンリソース、CPU&GPUです。処理すべきデータと処理するネットワークの構造により変わってきます。チュートリアルであつかうMNIST程度のものを扱うにはラップトップでも可能ですが、膨大なデータを複雑なロジックで計算する際は、クラウドを利用することになります。

自社でインフラを構築するのは、少なくとも組織を構築する直後にはあまり得策ではないと思います。Webのように常にリソースを使い続けるものと比較しても、資産化しておく意味があまりないからです。

 

- 分散フレームワーク

 

Map&Reduce / Hardoopのようなものを指しています。複数のハードウェアを同時に
扱う為には必要です。既存のフレームワークを採用しても、自社で構築するとするとそれなりに労を要します。

 

- データベース

 

データを格納する為に、DBを使います。初期においては、ポータブルに使えるという意味でcsvsqliteのようなものを使ってもいいかもしれません。また、従来からLAMPなどで開発をしていたWebエンジニアであれば、MySQLのような馴染みのあるDBを使ってもいいと思いますが、あらかじめ膨大なデータを扱うことを前提として、NoSQL系がよく利用されているようです。

総じて言えば、ローカル環境で試験的なアプローチをするのであれば、ラップトップでも問題ありません。それを超えるタイミングで、スケールアウト可能なクラウドのシステムを採用するのが、分散システムの賢い採用方式だと思います。

 

3) ビジネスモデリング (コト)

 

従来から数理的なアプローチ存在する分野、例えば金融や画像処理といった分野では、方法論が揃いつつあります。また、ビジネス上の適応目的も明らかになっていますので、応用も比較的容易です。

Google Cloud Plathomeには、金融に対して適応するデモがありますが、これは従来まで市場間分析などで利用されていた自己相関分析に対してニューラルネットワークを応用した例です。

Machine Learning with Financial Time Series Data - Solutions — Google Cloud Platform

 

余談ですが、この例ではフィードフォワードネットワークと呼ばれるディープラーニングの中でも比較的シンプルなものを採用しています。それでもそれなりのパフォーマンスが出ているあたり、人工知能の未来を感じさせてくれます。

今まであまり適応されていない分野に向けた適応となると、ビジネスモデルを発見するようなセンスも必要になります。IT技術とビジネスの両方を経験されたスペシャリストを見つけることが近道かもしれません。

いままでは人間の経験と勘(あるいはその道の天才)に頼っていた部分を機械化することで、新たなビジネスチャンスを生み出せることが人工知能の本質です。自社への適応を検討する企業としては、この本質に向けて目的意識を持ち続けておくことが、ビジネスへの応用向けた近道だと思います。

ニューラルネットワークを使っているかは不明ですが、Dentsu Media LabとPanasonicによる東京オリンピックに向けたアプローチはこういった意味で興味深いと思います。

blogs.yahoo.co.jp