AI開発の基礎。概要から開発の流れ、必要なものを解説
2020.11.11
概 要
将来的にAIを導入したいと考えていても、具体的な知識がない中で一から企画を立ち上げるのはかなり難しいことです。具体的に何から手をつけていいか分からない方も多いかもしれませんが、まずはAIとは何かについて理解し、開発に必要な事柄を整理することも重要なプロセスです。
このコラムではAIの基礎的な話から、開発の流れ、開発のために必要なもの、各スキルの学び方についてご紹介していきたいと思います。
目 次
・そもそもAIとは何か?
・AIの概要
・AIの種類
・AIとビッグデータ
・AI開発のプロセス
・1.構想フェーズ
・2.PoCフェーズ
・3.実装フェーズ
・4.運用フェーズ
・AI開発に必要なもの
・プログラミング言語
・開発環境
・ライブラリとフレームワーク
・AI開発の学び方
・まとめ
そもそもAIとは何か?
AIという言葉にはさまざまな捉え方があり、曖昧なイメージでは開発時に社内のチームメンバーやクライアントなどと共通のビジョンを持ちにくくなります。AIにまつわる技術も進歩が進んでいる中、現在の技術に即した理解をすることが大切です。
AIの概要
「AI(人工知能)」という言葉には共通した定義がなされてるわけではありませんが、主に「人間の知能を模した機能を持つコンピュータシステム」と捉えられています。その機能とは、具体的には分類、回帰、推論などで、AIはこれらの知能的な機能を用い、入力された情報に対してなんらかの処理を行った上で結果を出力します。
単純な数値計算やデータ処理を行うITや情報システムなど、AIではないコンピュータシステムは入力された情報に対して決められた処理しか行えませんが、AIはデータを学習することをベースに、分類や推論するよう設計された技術だと言えます。
現在のAI技術は、人間に代わるような万能コンピュータではなく、単一の機能に特化したものが大多数を占めます。AIを活用したサービスの中には複雑な処理を行うものもありますが、基本的にはそれぞれ独立したAIの機能が組み合わさって構成されています。
AIの種類
AIにはさまざまな技術があり、よく挙げられるものに「機械学習(マシンラーニング)」と「深層学習(ディープラーニング)」があります。
機械学習は、AIと呼ばれる技術領域のひとつで、大量のデータを用いてコンピュータに学習させ、その精度を増していく技術です。その学習手法には「教師あり学習」「教師なし学習」「強化学習」といったものがあり、目的に応じて用いる手法が変わってきます。また機械学習と一言で言っても、ロジスティック回帰やk-means法、サポートベクターマシンなど、具体的には様々な技術やアルゴリズムが含まれます。
一方、ディープラーニングは機械学習の技術の一つで、人間の脳内ニューロンの構造を参考にしたネットワークにより、人間による調整や判断なしにコンピュータ自身が学習を深めていくことを目指した技術です。画像認識でよく用いられる畳み込みニューラルネットワーク(CNN)、時系列データの予測などでよく使われる再帰型ニューラルネットワーク(RNN)などが、ディープラーニングの代表的なアルゴリズムです。
AIとビッグデータ
AIと一緒に語られることの多い言葉として、「ビッグデータ」があります。ビッグデータは単に量の多いデータというわけではなく、量(Volume)に加えて速度(Velocity)、多様性(Variety)の3つの要素を満たしたデータとして定義されます。機械学習やディープラーニングなど、AI技術の進歩と共にビッグデータ活用の可能性が拓かれています。
ビッグデータには、例えば、SNS上の投稿、気象データ、スマートフォンに記録された行動データなどが挙げられます。もちろんこれらのデータから有用な予測結果を出力することは従来からも可能でしたが、機械学習やディープラーニングを活用することで、データに潜む特徴的なパターンを抽出し、これまでにない気づきを得るような予測も可能になってきています。
AI開発のプロセス
AIを活用したシステムやサービスを開発する場合、そのプロセスは主に以下の4つのフェーズに分けられます。
1.構想フェーズ
ビジネス課題に対してAIが十分な解決策となるのかを検討し、その解決に向けてどのようなAIモデルを用いれば良いかを構想するフェーズです。
AIは万能な技術では決してないため、開発しようとしているAIが本当に課題解決につながるのか、課題のうちどの領域をAIによって解決するのか、導入によって自社にメリットをもたらすのか、その構想は実現可能なのかなど、ビジネスとAIの双方の観点からの検討を行います。
2.PoCフェーズ
構想フェーズでAI開発の内容が具体的に決まったら、次はPoCフェーズへ移行します。PoC(Proof of Concept)は「コンセプト(構想)の証明」という意味で、構想フェーズで想定したAIが技術的に実現可能かどうかを実際に検証します。
AIの仮モデルとなるモックアップを開発し、機械学習やディープラーニングに必要なデータの量と質が確保できているか、期待した精度は出せるか、処理スピードは費用対効果に合っているか、出力に誤りがあった場合のオペレーションは上手く回るかなどの要素を検証します。
3.実装フェーズ
PoCフェーズでその実現性が確認できたら、モックアップの開発内容をベースに最終的なシステムとして完成させる実装フェーズへ移行します。
本番環境に必要な要件を定義し、開発を進め、AIのモデルを最終化していきます。完成後にはテストを行い、問題なく動作するかどうかの検証はもちろんのこと、ビジネス上の実務オペレーションも踏まえた稼働につなげます。
4.運用フェーズ
実装フェーズの次には、そのAIを適切に運用していくための運用フェーズに移行します。システムが安定して稼働するための保守に加え、構想フェーズで設定した目標達成状況の確認を都度行い、PDCAサイクルを回していきます。
AI開発に必要なもの
AI開発を始めるあたって必要なスキルや環境などには様々なものがありますが、ここでは、プログラミング言語の習得と開発環境の整備、ライブラリ・フレームワークの活用についてご紹介します。
プログラミング言語
AIを開発するにはプログラミング言語を習得し、システムを構築できるようになる必要があります。プログラミング言語にはPython、SQL、JavaScript、C++、Julia、Javaなどさまざまな種類があり、それぞれ得意な開発分野が異なりますが、AI開発ではPythonとSQLが多くのシーンで用いられています。
Pythonはより使い勝手のいいプログラミング言語であることを目指して開発された言語で、初心者でも習得のハードルが比較的低いと言われています。また、AI開発に必要な多くの機能が使用できる点もポイントです。
SQLはデータベースの構築や処理などに使用されるプログラミング言語で、AIに学習させるためのデータベースを作る際に用いられます。
また、最近ではより簡単にA Iの構築ができるツールの普及が進んでおり、コードを書くことなく操作できるツールをGUIツール(Graphical User Interface)と呼び、マウス操作で構築することも可能になっています。
開発環境
AI開発では膨大なデータを取り扱うため、システムを稼働させられるだけの開発環境も必要です。具体的には、ビッグデータを保存するためのストレージや、機械学習やディープラーニングを可能とするだけの計算能力を備えたコンピュータなどを用意する必要があります。これらの一部は、クラウドサービスによって補うことも可能です。
ライブラリとフレームワーク
AIに関する基本的な機能をひとまとめにしたアプリケーションのことを、ライブラリ、あるいはフレームワークと言います。ライブラリ・フレームワークを用いることで本格的な開発をせずともAIを用いたシステムを構築がしやすくなります。代表的なライブラリ・フレームワークには、NumpyやPandas、Matplotlib、Googleが提供しているTensorFlowなどがあります。
AI開発の学び方
AI開発を学びたい場合には、独学でのスキル習得、オンラインサービスの活用、スクールの3つの選択肢があります。
AI開発が活発になっている現在では、AI関連の本も多く、初心者にも読みやすい本を見つけることもできるため、まずは独学でのスキルアップがおすすめです。インターネット上でも多くの記事が公開されているので、十分なレベルの学習が可能です。独学から始めたいという場合は、以下の記事でおすすめの本をご紹介しているので、ぜひ参考にしてください。
コラム:ビジネスパーソンが読んでおきたい、AI関連オススメ本7冊!
まとめ
AIはあらゆるビジネス課題を解決できる万能のツールではありませんが、多くの事例で報じられているように、活用次第でより一層の業務効率化やビジネス成果の向上、新たなビジネス知見の発見など、さまざまな恩恵を得ることが期待できる技術です。
一方で自社開発には多くの専門知識や人材が必要であり、ハードルが高いのが実際のため、開発を得意とするAIベンダーと共にプロジェクトを進めることが主流になっています。AI導入の検討が具体化した際には、当社のようなAIベンダーと相談機会を設けてみることも、プロジェクトの第一歩として非常におすすめです。