ここ数年の第3次人工知能ブームで、Deep Learningはじめさまざまな技術が登場しました。
それらの技術により、自動運転、翻訳等、世界が変わりつつあります。
さて、こんななかユーザー企業のIT部門はどうしていこうかという話です。
これまでのITシステム開発
これまでの開発は、基本ロジックの定義です。
たとえば、販売管理や会計のシステムであれば、
- 税率は8%である
- 販売価格は税抜き価格である
- 税込販売価格にするためには、販売価格に108%をかける
という、演繹的なロジックを定義します。
このロジックをもとに
- 税込販売価格 = 販売価格 × 108%
という式をつくり、コードに落とします。
こういったロジックを見つけるのを要件定義と言っています。
ただ、ロジックを見つけるのはそう簡単ではありません。そもそも、その業務を行なっている人が、何かロジカルに行動しているわけではない可能性もあります。
人間の脳は、高度に直感で動いているので、自分がやっていることをロジカルにまとめ、言語化することがそう簡単ではありません。
(この辺はベストセラーです。)
ファスト&スロー(上) あなたの意思はどのように決まるか? (ハヤカワ・ノンフィクション文庫)
この要件を明確にし確定するのが大変なので、各種テクニック(仕事の仕方)が研究されています。
たとえば、プロジェクト管理手法(PMP等)、開発手法(ウォーターフォール、アジャイル等)、コミュニケーション方法等々。
さまざまなテクニック・方法論を駆使して、ソフトウェアを完成させ、無事稼働させようとします。IT部門は、ベンダーと現場との間のブリッジとなり、あいまいな要望をロジックに落とし込むのを手伝います。
AI的なITシステム開発
では、AI的なシステム開発ではどうなるかというと、上記のようなロジックは定義しません。データをもとに統計的処理をします。
たとえば、自動運転では、カメラ、センサー等の入力と、アクセル、ハンドル、ブレーキ等の出力の組み合わせデータを大量に用意します。
信号が近づくにつれて車は減速し止まるというような走行データをもとに、統計的処理を行い、システムを構築します。
自動運転を実現するのに、ロジック定義をするのはうまくいきません。
例えば、
- 赤い丸が前方XXメートル、地上からYYメートルにあったとき、それは信号の止まれである
- 信号が止まれとなっているときは、減速する
などロジックを定義してもうまくいきません。
このやり方だと、前方に太陽がある場合も信号として認識するかもしれません。そうなると、それに対し例外処理するロジックを書かないといけません。例外処理は延々と続き、事実上記述困難です。
こういったやり方で自動運転を試みていた時代もありましたが、それは早い段階で限界に達しています。これをブレイクスルーしたのが、今のAIであり、Deep Learningです。
AI的(Deep Learning的)な開発では、適切なデータセットを定義し、ネットワークを構成することで、システムを構築します。
これまでIT部門が行って来た要件定義とは大きく異なります。
つづく
(Deep Learningの勉強ならこちらがオススメです。ほんと0からわかります。)
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る