AI開発を検討している方へ向けて、開発に必要な基礎知識や必要なものを紹介します。また、AI開発を自社内で開発する場合と外注する場合の流れや注意点、開発のポイントも紹介します。
【目次】
1.AIとは
AIとは「artificial intelligence(人工知能)」の略語でありであり、人間の知能に似た機能を持つコンピューターシステムのことをいいます。
具体的な機能には下記のようなものがあります。
-
- 分類・識別
合格・不合格のような、あるデータが属するクラスを予測します。予測するクラス数が2クラスの場合、2値分類と呼ばれます。 - 回帰
正解となる数値と入力データの組み合わせで学習し、未知のデータから連続値を予測します。例えば、過去のデータから新しい店舗に顧客が何回訪れるかなどです。 - 推論
事例を複数挙げて結論を出します。とある囲碁AIでは多くの勝利法を学習させることで人間以上の実力を発揮したものもあります。
- 分類・識別
従来のコンピュータシステムは、データの入力や指示された情報に対して決められた処理しか行えませんでしたが、AIはデータを学習して結果を出力できます。
また、現在のAIの技術では複数の機能を組み合わせることができるものは少なく、単一の機能に特化したものが一般的です。
AIの歴史
AIという用語は1956年頃から用いられるようになりました。
人工知能という概念をはじめて考えたのは、イギリスの数学者として有名な「アラン・チューリング」です。
彼の著書である「計算する機械と人間」にはAIの起源が書かれており、本書では「機械は考えることができるのか?」という問いについて解説されています。
その後、1956年に当時ダートマス大学の学生だった「ジョン・マッカーシー」がダートマス会議を開催した際に、はじめて機械に対して「人工知能」と名付けました。
ダートマス会議をきっかけに科学者たちの間でAIが話題となり、その後は、より一層AI研究が活発になります。1960年代には第1次AIブーム、1980年代には第2次AIブームが巻き起こり、2006年から現在にかけては第3次AIブームが巻き起こっています。
第3次AIブームのきっかけとなったのは、主に以下の3つが発展してきたことが要因です。
-
- 機械学習(マシンラーニング)
- 深層学習(ディープラーニング)
- ビッグデータ
第3次AIブームでは、人間がルールをあらかじめ定義しそのルールに乗っ取ってAIが自ら学習し、推測するという点に世間の注目が集まっています。
AIの学習機能
AIの学習機能には機械学習(マシンラーニング)と深層学習(ディープラーニング)があります。
機械学習は大量のデータをコンピュータに学習させることで精度を高めていく技術です。
学習手法には教師あり学習と教師なし学習、強化学習などがあり目的に応じて学習方法を変えて利用します。
深層学習はディープラーニングとも呼ばれ、機械学習の中の一つとして人間の脳内構造を参考にしたネットワークがあります。
人間による調整や判断を必要とせず、コンピューター自身がそのネットワークによって学習を深めることを目指した技術です。
画像認識でよく利用される畳み込みニューラルネットワーク(CNN)などが代表的なディープラーニングのアルゴリズムです。
2.AIのビジネス活用例
AIをビジネスに紐づけて利用できる分野は、主に予測・分類・実行です。具体的な利用例をわかりやすく紹介します。
-
- 予測
顧客の個人単位での興味推定や発注予測(意図・ニーズ予測)、さまざまな病気の発症リスク評価や売上需要予測など(数値予測) - 分類
画像や文章の分類や迷惑メールの判定(情報判断・仕分け)、医療画像の診断や故障の検出など(異常検知・予測) - 実行
Q&A対応、クレーム対応(作業自動化)、画像生成、文章の要約(表現の生成)、配送経路の最適化など(行動最適化)
- 予測
これらの機能を最大限に活用するためには、AI技術とビッグデータのかけ合わせもよく用いられます。
例えばビッグデータ(スマートフォンに記録された行動データやSNSへの投稿内容、住んでいる地域の気象データなど)に潜むその個人特有のパターンを機能学習やディープラーニングで抽出し、これまでにない気づきを得るような予測も可能となっています。
3.AI開発のための準備
AI開発に必要な知識やソフトウェア、環境について紹介します。
プログラミング言語
AI開発をするためには、システム構築ができるようプログラミング言語を習得しなければなりません。
プログラミング言語にはJavaScript、Java、Python、SQL、Julia、Javaなどがあり、開発分野によって使われている言語が異なります。AI開発では、PythonとSQLが用いられることが多くあります。
-
- Python
初心者が習得しやすいプログラミング言語と言われており、AI開発のために必要な機能の多くはPythonを使ってシステム構築されています。 - SQL
データベースの処理・構築に使用されるプログラミング言語で、AIに学習をさせるためのデータベースを作成する際に利用されます。
- Python
近年ではより手軽にAIの構築ができるツールが広まっており、GUIツールといったプログラミング言語でコードを書かずにマウス操作で構築できるツールなどもあります。
開発環境
AI開発をスタートする際は、膨大なデータやシステムをスムーズに稼働させるため、ある程度の開発環境を整える必要があります。
具体的には、機械学習や深層学習が可能な性能を持ち合わせたコンピューターや、ビッグデータを保存するためのストレージが必要です。
ストレージとは、ハードディスクなどパソコンのデータを長期間・安全に保管しておくための装置のことで、レンタルなどで補うこともできます。
ライブラリ/フレームワーク
ライブラリやフレームワークと呼ばれるものは、AI開発に必要な基本機能がまとめられたアプリケーションのことです。
これらを使用することで、本格的なプログラミング言語を使用しなくてもシステムが構築しやすくなります。
代表的なライブラリ・フレームワークは、NumpyやPandas、Matplotlib、Googleが提供しているTensorFlowなどがあります。
おすすめのAI開発ツールについて
開発の際に「AI開発ツール」を適切に活用することでAI開発を効率的に進めることができます。
初心者にはプログラミングができなくても開発作業が行える「GUIツール」がおすすめです。
GUIツールとは、プログラミング初心者でも扱いやすい開発ツールとなっており、マウスでの簡単な操作だけでAI開発ができます。
AI開発に必要なコードの入力等がないため、全くの初心者でも比較的簡単にAI開発を行うことができます。
AI開発というと、一部の高い技術力を持った人だけが行う作業だと思われがちです。
しかし、現在は「AIの民主化」が進んできており、高い技術力がなくても簡単にAI開発ができる環境が整いつつあります。
全くの知識0だと難しいかも知れませんが、それほど学習に対して時間をかけなくてもAI開発が行えるのが、GUIツールの大きな魅力です。
4.初心者でAI開発は可能か
AI開発を初心者が始めることは決して不可能なことではありません。
しかし、独学で行う際はまずはプログラミング言語、そして機械学習や深層学習について学び、数学や統計学に関する知識も必要です。そのため、AI開発が可能になるレベルまでの知識を身につけるためには、学ぶ人の習得スピードも相まって膨大な時間を要します。
導入時期や納期がある程度決まっている場合は、AI技術者を育てるよりもAI開発の専門企業などに外注を検討したほうがよいでしょう。
5.AI開発の流れ
AIを利用したシステムやサービス開発を行う場合の流れを説明します。
AI開発を行う場合、主に4つのプロセスに分けて行われます。
構想フェーズ
自社で取り組んでいる業務や事業に、AIで自動化できるものがないかを探す段階です。
AIを開発することで課題解決につながるか、AIを導入することで自社にどんなメリットがあるのかなどの検討を行います。
この際に、実際にビジネスとして利益を出せるか、企業の生産性や業務効率化に役立つかといった観点で検討することが重要です。
PoCフェーズ
どんなAIを開発するか具体的な内容が決まってから、構想したAIが実現可能かを技術の面などから検証します。
機械学習や深層学習に必要なデータ量と質が確保できているか、期待した精度に到達できるかなどの要素を検証します。
実際のデータを用いて、課題を解決する学習モデルの構築を試す段階です。本番運用と同等まではいかなくても、構想したAIの大まかな要素を組み込んだ試作品のようなもの(モックアップ)を作成する場合もあります。
実装フェーズ
構想したAIの実現性が確認出来たら、要件定義を行います。要件定義を行った後、ついにAIシステムの開発をスタートさせます。
前段階であるPocフェーズで作成したモックアップを、完成品としてイメージしている実行速度や精度に近づけていきます。
AIが完成したら、まずは動作確認やテストを実施し、問題なく運用できるかを検証します。
運用フェーズ
構築された学習モデルを搭載したシステムを運用します。
システムを安定して稼働させるための保守や、構想フェーズで設定した目標や課題解決ができているか等の動作確認とテストを繰り返します。
このようにPDCAサイクルを回しながら、完成した運用レベルまで改良していきます。
これらの4つの工程を経て、AIは実際の業務やサービスに活用されます。
AIが完成しリリースされた後も精度の向上のために検証を繰り返し、保守のためのメンテナンスを定期的に行う必要があります。
6.AI開発を外注するには?
外注でAI開発を依頼する場合の流れも解説します。
外注する場合は、自社内で開発自体を行わないため流れを理解していなくても問題ないと思われるかもしれませんが、依頼元の企業として現在どのフェーズの作業が進んでいてどんなことを行っているか把握しておくことは、トラブルや納期遅れなどを防ぐためにも重要です。
AI開発の外注の大まかな流れ
AI開発を外注する際の流れは、自社で開発する場合の流れとほぼ変わりがありませんが、どんなAI開発を行いたいのか、企業としてどんな課題解決を行いたいのかを外注先の企業へ伝えながら、認識のすり合わせを行う必要があります。
企業選定・ヒアリング
まずは、自社内のどんな業務やサービスをAI化したいのか、企業の課題や問題点を明確にした上で外注先の企業候補を選定します。
その企業がどのような開発実績や技術があるのか、コミュニケーションを通じて理解を深めます。
さらに概算コストや見積もりも合わせて提出してもらいます。ヒアリングや確認を行う内容にもよりますが、見積もりをもらうまでは料金がかからないことがほとんどです。
コンサルティング
開発の依頼先となる企業が決定したら、ヒアリングの情報をもとに現状課題を洗い出し、費用対効果を算出してもらいます。
さらにプロジェクトの方向性を定めるための要件定義、仕様書の作成を行います。コンサルティングの費用は約40万~200万円程度が目安ですが、この工程を自社内で行うこともできるため省略可能です。
実現可能性のチェック
要件定義したAI開発が実際に実現できるのかチェックを行います。
どんなデータをどれだけ保有しているのか、求めている完成品のAI精度はどのくらいか等の視点で総合的に判断します。
実現可能かどうかの検討は無償で対応してくれる企業もあります。まずは外注先の企業へ相談してみることをおすすめします。
PoCフェーズ
AI化のできる可能性がある場合は、次にプロトタイプを作成し構想していた仕様が実現できるか、機能が搭載できるかを検証します。
自社で保有しているデータを用いて実際に学習モデルを実装し、求めていた業務やサービスが理想通りの精度で運用できるかも確認します。
チャットボットなど一般的なAIモデルを導入する場合は、開発会社が過去に構築済みのモデルをカスタマイズすることで開発可能となることもあります。このような場合は費用が比較的安く抑えられ、納期も短くなるでしょう。
AI開発・システム開発
プロトタイプが開発でき次第、実際に運用するためのAIモデルの開発を行います。開発の規模にもよりますが、期間は数か月単位でかかるため、エンジニアなど一定数のメンバーを揃えて開発体制を整えるラボ型で開発が行われるのが一般的です。
また、AI開発が完了しリリースされれば一旦プロジェクトは完了となりますが、実際は開発したAIモデルを活用するために周辺のシステムが必要になるケースが多くあります。
例えば、需要予測を行うAIモデル開発した場合、それを活用するためにデータを投入し予測結果を目視で確認する画面の構築が必要となります。周辺のシステムも開発が完了してからリリースする場合は、要件定義の時点で外注先の企業と調整しておく必要があります。
AI開発外注の際に気をつけるべきこと
AI開発を外注する際に大まかな流れや進め方を理解せずに依頼すると、プロジェクト自体をそのまま丸投げしてしまい、認識の違いから納品物がイメージと違ったというケースも少なくありません。
それを防ぐためにも、下記の3つのポイントに気をつけて外注の準備を進めることが重要です。
-
- 課題や問題点を明確に
本来解決したい課題を明確にせずに外注先へ依頼してしまい、構想していた完成品とは違うものが出来上がってしまうというケースもあります。
これを避けるためにも、なぜAIを導入するのか、AIで解決したい自社の課題や問題点は何かを明確にしましょう。 - 価格相場を事前に把握しておく
AI開発の価格相場を事前に理解しておくことで、予算作成に役立ちます。
また、外注先企業を選定する際にコストを基準として選びやすくなります。もらった見積り金額が相場に比べて極端に価格が高い、低い場合に理由を聞くことで企業ごとのサービスの違いなども理解が深まります。 - パッケージシステムのカスタマイズでは難しいケースがあることを理解する
人間が行っていた作業をAIで再現したいという場合、コストを抑えるためにパッケージ化されたシステムをカスタマイズしたいという要望が多くあります。
しかし、パッケージ化されたシステムを使用して個々の企業に合わせてカスタマイズするには、追加料金が膨大に発生するケースもあります。
チャットボットやQ&Aの導入などは比較的企業に合わせてカスタマイズが可能な場合が多いですが、専門的な技術を含んだ作業などはパッケージ化されたシステムでは難しいでしょう。
AIだからといってどんな業務でもすぐに簡略化できるものではない、ということを事前に理解する必要があります。
- 課題や問題点を明確に
7.AI開発を行う際のポイント
AI開発を初めて行う際のポイントは、小規模でスタートすることです。
最初からさまざまなシステムや機能を搭載しようとせず、まずは最優先で解決したい課題のためのシステムで開発を行います。
課題と効果の検証を行うことで、失敗しても何度も繰り返し試行ができる環境を整えることが重要です。
また、外注で開発を依頼する場合には外部企業へ丸投げするのではなく、要件定義や構想をしっかりと社内で固めた上で依頼を行うという発注者側のリテラシーも重要となります。
8.まとめ
AI開発はプログラミング初心者からすると、大変難しいものだと感じられるかも知れません。
また、AI開発の知識をしっかり学んでから開発をスタートさせようとすると、知識を習得するまでに時間や手間がかかりすぎてしまい着手しづらくなってしまいます。
まずは初心者でも理解できる小規模な開発から始め、失敗することを想定した上で何度も試行を繰り返し、知識をつけながら完成品のイメージに近づけていくとよいでしょう。
【システム開発 関連記事】
▼システム開発に関して
▼契約形態に関して
オフショア開発ならHBLABへご相談ください
HBLABでは、ベトナムに特化したオフショア開発サービスをご提供しております。
オフショア開発の契約関連でお困りの方は、お気軽にご連絡ください。弊社の担当者が親身になって対応いたします。