AI開発の流れ|構想から運用までの流れと必要な知識・言語を解説

コラムCOLUMN

AI開発の流れ|構想から運用までの流れと必要な知識・言語を解説

2021/09/27

AIとは、人間の知能を持つコンピューターシステムのことを指します。

一般的には、人工知能と呼ばれ、人間の代わりにコンピューターを利用してさまざまな物事を解決することができます。

AIは、さまざまな場面で利用されるようになっており、今や世界を支える技術だと言っても過言ではありません。

システムやIT業界ではない企業でも、AIの導入が進んでおり、いろいろな場所で活用されるようになっているのです。

今回は、AIの種類はどのようなものがあり、実際に導入する際はどのような開発の流れになるのかを説明します。

AIの種類

AIには大きく「機械学習(マシンラーニング)」と「深層学習(ディープラーニング)」の2つがあります。

機械学習(マシンラーニング)

機械学習は大量のデータを利用して、コンピューターにデータの傾向などを学習させる方法です。

繰り返しデータを読み込ませることによって、AIが傾向や特徴を抽出してくれます。

学習方法には多くの種類があり、目的に応じて利用する方法が異なります。

一般的には「教師あり学習」「教師なし学習」と呼ばれるものが利用され、そこから細かい目的に応じてさらに派生したものが利用されます。

深層学習(ディープラーニング)

深層学習はディープラーニングとも呼ばれる機械学習の1つです。

人間の脳内ニューロンの仕組みを参考に、コンピューター自身による学習を繰り返す技術です。

畳み込みニューラルネットワークや再帰型ニューラルネットワークなどのアルゴリズムが一般的に利用され、こちらも目的に応じて利用するものが異なります。

画像から特徴を抽出するなど、一定の傾向を見つけ出すのに利用される技術です。

ベイズ統計学とは?

ベイズ統計学はベイズの定理に基づいた統計学の考え方です。

統計学の理論であり、AIの開発に直接影響するものではありません。

ただし、機械学習の世界では確率の考え方が多用されます。

そのため、確率の中でも「繰り返し起きる確率」を算出するのに適したベイズ統計学が利用されます。

これを背景に、エンジニアがベイズ統計学を学ぶ必要があると言われています。

AIとビッグデータについて

AIは、ビッグデータのキーワードと組み合わせて利用されるケースが多くあります。

ビッグデータは量や多様性などの要素を満たしたデータで、上記でご説明した機械学習や深層学習と非常に相性が良いです。

一般的にビッグデータはそのまま利用できるものではありません。

大量のデータを管理しているだけで、実際に利用できるデータ形式にはなっていないことが多いのです。

そこで、AIを利用してビッグデータに対して機械学習や深層学習を行います。

そうすれば、ビッグデータの中に隠されていた傾向や特徴を分析できるようになるのです。

例えば、大手通販サイトでは、ネットショップで購入された商品と購入した人の行動履歴をビッグデータとして管理しています。

この情報をAIで機械学習させ、どのような商品をレコメンドすれば売上が上がるのかを分析しています。

また、別の企業ではスマートフォンのGPS機能を利用して、その人の行動履歴を調査しています。

それらの調査結果を、AIを使って解析し、おすすめのお店などを紹介しています。

AIでビッグデータを解析すれば、企業は新しい観点を得られる可能性があります。

そのため、今まで溜め込んできたビッグデータを、AIの普及に合わせて活用する企業が増加しています。

AI開発の流れ

では、AIはどのような流れで開発していくのでしょうか。

構想

まずは、具体的に開発するAIのイメージを決定していきます。

ここでイメージが確定していなければ、この後の工程でAIの開発がしづらくなるだけではなく、方向性がズレてしまうこともあります。

できるだけ具体的に決定しなければなりません。

課題の選定

まず、AIで解決するべき課題を選定します。

具体的な課題を決定して、その課題を解決するようにAIを考えていかなければなりません。

また、課題の選定と共に、AIの導入による効果見込みなども算出しておかなければなりません。

どのような結果が得られれば良いとするのか、ROIなども決定しておくと良いでしょう。

データ取集

課題を解決できるのかどうか情報収集が必要です。

AI導入の事例などを踏まえてどのような情報が必要となるのか検討しておくと良いでしょう。

AIは全ての課題を解決できる仕組みではありません。

基本的にAIを活用するためには、学習させるためのデータが必要です。

このデータを用意できない状況では、AIの活用ができないため、十分なデータを集められるのかを考えながら、データ収集に取り組みます。

プロジェクトチーム作り

問題なくデータの用意ができたならば、プロジェクトチームづくりを進めましょう。

まずは人材を確保してプロジェクトがスムーズに進むような段取りをします。

なお人材を選定する際には、過去の実績やデータサイエンティストのカバー量などを意識することをおすすめします。

必ずしも社内の人材でまかなう必要はなく、信頼できる実績を持つならば外部の会社に委託してプロジェクトチームを作ってもらうのも良いでしょう。

最近では、外部に委託する際、フリーランスエンジニアのAIやデータサイエンティストに依頼するケースも増えています。

PoC

続いては検討したAIが実際に実装できるものかどうかを確認していきます。

データ処理

まずは簡単にデータ処理をします。

本格的なAIを開発するわけではありませんが、テスト的に作成をして実現可能性などを検討します。

問題なく実装できそうであれば、続いてはスケジュール管理をしていきます。

スケジュール策定

現実的にAIの開発が可能であれば、スケジュールを引いてAI開発の準備をします。

基本的に期間が長くなるとそれだけコストがかかります。

このため、可能な限り期間は短くし無駄なコストをかけないことが理想です。

しかし、あまりに期間を短くするとトラブルが起きやすくなるというリスクもあります。

基本的には期間を短くしコスト削減に努めたいところですが、無理なスケジュールにすると手戻りが発生してしまい本末転倒になってしまいます。

オペレーション管理

モデルのオペレーションについて管理をしなければなりません。

事前に想定していたものと異なる挙動を示した場合は、スムーズな立て直しが求められます。

また、よくある問題としてAIが思うように学習をしてくれないことがあります。

この場合は学習させるデータを改めて用意する必要があるなど、早急な立て直しが求められます。

実装

AIの実装にあたり問題がないと判断されれば、実装のフェーズへと進みます。

設計

AIもプログラムによって実装されます。

まずは、設計書の作成から始まります。

一般的なプログラムでは、ほとんどの場合設計書が用意され、例に漏れずAIでも用意します。

基本的にAIは設計書の内容に沿って開発が進められます。

そのため、基本設計から詳細設計まで、丁寧に作成しなければなりません。

また、設計書を完成させる際には、プロジェクトマネージャーなどステークホルダーの承認を得ることもあるでしょう。

開発

設計書が承認されれば、続いては開発へと進みます。

設計書があるため、これに沿ってプログラマーが次々とAIの実装を進めます。

開発の工程はバグが発生するなどスケジュールの遅延が出やすい部分です。

そのため、AI開発のプロジェクトマネージャーなどは、可能な限り遅延が起きないような管理が必要です。

なお、設計フェーズで要件が固まっていなければ、開発の段階でトラブルが起きてしまいます。

そうなると大きな手戻りが発生する可能性があるため、設計フェーズは特に注意して取り組む必要があります。

テスト

問題なく開発ができれば、テストをして開発内容の評価をします。

AIは設計書に沿って開発されていなければなりませんので、設計書を元にテストスクリプトを作り評価します。

AIの開発においてテストの工程は非常に重要です。

万が一バグを含んでいる場合に、修正できるタイミングはここしかないためです。

運用が開始されてからバグが発覚すると大きな影響が出てしまうので、ここで確実に洗い出せるようにします。

運用

問題なくAIの開発が完了すれば実際にAIの運用が始まります。

KPI管理

AIの運用では、KPI管理が重要です。

事前に定めたKPIを開発したAIが満たしているか常に監視して評価します。

もし求めたKPIを満たしていないならば、何かしらAIに問題があったと考えられます。

例えば学習させるデータの質に問題があったり、AIの設計ロジックに問題があったりするケースがあります。

また、そもそも求めているKPIが高すぎて、AIの性能と合致していない可能性もあります。

AI開発では、実際に運用を始める前の段階で適切なKPIを定めるのは難しいと考えられている側面もあります。

AIの性能だけではなく定めたKPIも見直してみると良いでしょう。

保守

AIは一度開発したら終わりではありません。

AIに求める要求は日々変化しますので、それを維持保守で解決していく必要があります。

どの程度の頻度で維持保守するのかは、ユーザーや管理部門の方針によって異なります。

基本的にはトラブルが発生していなくとも、数ヶ月に1回は見直しをしたほうが良いものです。

AI開発 スキル

知っておきたいAI開発の仕事内容において必要な知識

AI開発の仕事において知っておくべき知識についてご説明します。

プログラミング知識

AIの開発に利用するプログラミング言語を知らなければ仕事がしにくくなってしまいます。

Python

AIの開発に最も利用されているプログラミング言語です。

こちらのプログラミングスキル無しで、AIの開発はほぼ不可能だと考えてよいでしょう。

比較的難易度の低いものであるため、最初に習得することをおすすめします。

SQL

データベースを操作するために利用します。

AIはビックデータ解析などに利用されるため、データベースとの結びつきも強くなっています。

早い段階で習得したいスキルの1つです。

JavaScript

Webブラウザで動作するプログラミング言語です。

近年は、AIを軽量化してブラウザで動作させるケースがあり、AI開発においてJavaScriptも需要が高まっています。

C++

C言語を拡張したもので、動作の軽いプログラミング言語です。

そのため、大量データを処理するAIの開発に適しています。

Python程ではないですが、需要の高いスキルです。

ライブラリ、フレームワーク

AIに関するライブラリやフレームワークを扱えるスキルが必要です。

特にPythonには、AIに関連した多くのライブラリがあり、活用できなければ活躍の場が限られてしまうこともあるでしょう。

プラットフォーム

動作させるプラットフォームのスキルも必要です。

例えばクラウド環境などのスキルがあると良いでしょう。

近年では、動作プラットフォームも多様化していますので、エンジニアもそれに追いつく姿勢が求められます。

IT人材として求められること

これからの時代は先端的なスキルを持つIT人材が求められます。

例えばAIやDXのスキルを持つ人材が、より求められるようになると言われています。

いくつもの選択肢が考えられますが、特に注目したいのはAIでしょう。

現在は多くの企業でAIの活用が進んでいるため、AIを扱える人材になれば活躍の場を広げることができると言えます。

一方で、最先端の技術がなくても活躍することは可能です。

例えば、十分なプログラミングスキルがあれば、プログラマーとして活躍できる場は数多くにあります。

そのため最先端のスキルアップには、消極的な人もいることでしょう。

しかし、これからの需要を考えると、最先端のスキルは求められます。

特にAIなど導入が盛んな業界については、AIに関連した技術を保有していないとエンジニアとしての市場価値維持することが難しかったり、案件の獲得に苦労してしまったりというリスクがあります。

そのため、エンジニアとして、より活躍をしていくことを目指すのであれば、AIなどを含めた最先端の技術を習得するこがおすすめです。

なお、十分なAIのスキルを身に付ければ、フリーランスのAIエンジニアやデータサイエンティストとして活躍することが可能です。

実際に、当社が提供している「i-common tech」で保有している案件の多くで、AIに関するスキルが求められています。

画像解析や異常検知、時系列解析を行う案件や機械学習のアルゴリズム開発する案件、AI開発のPoC案件など多岐に渡る案件を保有しています。

スキルフルなAIエンジニアであれば、比較的案件を選びやすい状況にあるため、自身の専門性や技術力を高めることができる案件を獲得することもできるしょう。

AIエンジニアとしてより活躍したいとお考えで、案件の詳細を見たい場合には、ぜひご登録ください。