AI活用支援

 NeuroneWorksでは、何かAIを利用できないかと漠然とお考えの方や、人員削減や具体的な課題に対してAIを活用できないかとお悩みの方に対して、AI活用支援を行います。支援の内容につきましては、以下でご紹介するAI活用方法におけるあらゆるシーンでのご支援をさせて頂きます。また、一般的なAIについて概要をお知りになりたい方は先にこちらをご覧ください。

NeuroneWorks

AI活用方法について

 AIの活用を行うためには、大きく6つのステップを踏む必要があります。この6つのステップは一度行ったら完了ではなく、ステップをまたがって繰り返したりステップ内で繰り返し行うことで期待する結果に近づいていきます。言い換えれば、一度トライして上手く行かなかったからあきらめてしまうのではなく、その結果をノウハウとして根気よく繰り返すことが重要です。以下にその6つのステップについてご紹介します。

1.ターゲットを定める

 ここでのターゲットとは、AIの結果としてどのような結果が欲しいのかを具体的なゴールのイメージを持つことを言います。例えば、機械の異常を検知したい場合、異常と判断したら単にアラーム通知を出すのか、もしくは異常個所を特定してその情報を通知して欲しいのか、異常を事前に予知して警告を出すのか等の具体的なイメージとその結果のアクションをどうするかを明確にします。結果のアクションではAIが出力した結果が間違っている場合も想定することが重要です。このアクションをイメージすることでAIの正解率が何%以上であれば活用効果があるといったAI活用の目標値を明確にすることができます。
 次にAIに入力するデータを明らかにします。ここでは、必要と思われる全てのデータを抽出することが重要です。現状で入手困難と思われる情報でも必要と考えらえるものを列挙します。例えば、機械の異常検知に関して現状では現場の作業員の触感が重要な要素となっているような場合です。作業員にヒアリングして触感の情報が必要と考えられる場合は、そのデータ化や入手方法についてはここでは考えることなく必要な情報として抽出しておくことが重要です。

2.データを集める

 必要と考えられる情報について、どこからどのような手段で収集するかを全ての情報ごとに明らかにします。基幹システムから直接収集できるデータ、手書きなどの文書のみで残されたデータ、作業員の触感などデータとなっていないもの等のいろいろなデータに対して、その入手方法もしくはデータ化の方法を決定します。その決定に従い、例えば文書データについては手書き文字認識システムの利用、作業員の触感については、圧力センサーや温度センサーなどを使ったIoTシステムの導入などの具体的な手段で、必要な全てのデータをデジタルデータとして収集します。

3.データを作る

 収集したデータをAIに与えるためには、データ変換、正規化、アノテーション等いくつかの加工が必要です。データ変換は、年月日の日付データを該当日からの差分日数に変換したり、正規化は、100~10000の範囲の値を0~1までの値に置き換えたり、アノテーションは、画像のどの部分が認識して欲しい部分かなどを画像ごとにラベル付けしたりすることです。さらにAIの現状においては教師なし学習より教師あり学習の方が効果が得やすいため、教師あり学習を行う場合が多いと思いますが、その場合はAIが結果として出力して欲しいデータを教師データとして用意する必要があります。さらに、機械の異常検知のような場合は、異常を示すデータが正常時のデータより極端に少ないケースが一般的ですが、AIの構築には教師データとしてある程度の異常データある方が良い結果が得られています。そこで作為的に正常データに手を加えて異常データを作り出すようなことも必要になります。
 これらの作業は、初期作業として外部に委託することもできますが、今後収集されるデータをさらにAIの能力向上に利用することを考えるとできるだけシステム化しておくべきだと考えます。

4.AIモデルを作る

 AIの構築方法には、サービス利用型、フレームワーク利用型、独自開発型の大きく3つの構築方法に分類されます。それぞれの構築方法の特長は以下の通りです。

  • サービス利用型

 MicroSoftのAzureに代表されるような、既に構築済みのAIの活用サービスを利用する方法です。この方法は、既にAIが構築済みのため自ら構築する必要がない分、構築費が最小限で素早く利用することができます。ただし、マッチするサービスが無い、カスタマイズができない、利用費用が必要などの欠点があります。

  • フレームワーク利用型

 TensorFlowのようなAI構築のためのフレームワークを利用する方法です。フレームワークを利用することで比較的容易にAI構築が可能なため、多くのSierが何らかのフレームワークを利用してAI構築を行っています。現在多くのツールが提供されており、GUIのみで利用できるものからpythonなどのプログラム言語の知識が必要なものまであります。

  • 独自開発型

 Pythonのようなプログラミング言語を使って自らAI構築を行う方法です。上記2つと比較して最も自由度は高くなりますが、その分構築の難易度も高くなるため、研究開発や製品への組み込みを考えている場合以外はあまり選択されません。

 上記のようなそれぞれの特徴を理解した上で、目的を実現する上で最も適当と思われる方法を選択すべきと考えます。紹介した構築方法の自由度と難易度がどれくらいの差があるかを図で表してみると、1つのAIサービスは、ノンプログラム型の数十ブロックに相当し、ノンプログラム型(ここではSony社製Neural Network Console)の1つのブロックはプログラム型(ここではKeras)の数十行に相当し、プログラム型の1行は独自開発型(ここではPython言語)の数十行に相当します。このように左に行くほど自由度は増しますが、それに伴い構築の難易度が上がることが理解できると思います。
注:ここでは、フレームワーク型をプログラム型とノンプログラム型に分けています。

5.学習させてみる

 データが集まりAIモデルの構築が完了したらいよいよ学習ですが、まずその前にデータを学習用のデータと試験用データに分類、例えば1万件あれば9000件と1000件といったように分類します。学習用データでAIの繰り返し学習を実施し、学習の収束を確認した上で試験用データで学習済みのAIの出力結果を評価します。試験データで試験した結果が想定した正解率に達しない場合は、その原因としてデータに問題がある、構築したAIモデルに問題がある等が考えられるので、ステップ1に戻り新たなデータを追加する、ステップ2に戻りデータの数を増やす、ステップ3に戻りデータの変換方法を変更する、ステップ4に戻りAIモデルを変更する等を行い、正解率が目的を達成するまで試行錯誤を繰り返します。

6.学習結果を利用する

 目的の正解率を達成した学習済みAIモデルをステップ1で想定した活用法に沿った形でシステム化します。機械の異常検知であればパトライトを点滅させ管理者へアラーム通知を行う、検品であれば異常製品を除くように機械に制御信号を送る、受注予測であれば受注予測データを管理者へ通知するなどシステムとして完成させます。また、忘れてならないのは、学習済みAIモデルのバージョンアップです。いつまでも過去のデータで構築したAIモデルではなく、常に新しいデータを含めて再学習を行い学習済みAIモデルのバージョンアップを図る必要があります。これを手動ではなく自動で行うのか、毎週行うのか月1回行うのか等を検討してシステム化すべきかどうかを判断することになります。

NeuroneWorks

AI活用事例

 ここではAI構築の手順について、製品製造業のベテラン営業マンのノウハウを新人営業担当のお客様対応に活用することを事例に考えてみます。

1.ターゲットを定める

 ベテラン営業マンのノウハウで新人営業担当に対して何を支援したいのか。ここでは、ベテラン営業マンのノウハウをAIに学習させ、お客様からの問い合わせに対して価格提案と納期についてAIが新人営業担当に通知することをターゲットとします。まずは、ベテラン営業マンがどのような情報をもとに判断しているかをヒアリングにより聞き出します。その結果、お客様情報として、重要顧客か、お客様の経営状況は健全か等、製品情報として、製品の売れ行き、在庫状況、製造期間等、生産情報として、生産工程の負荷状況等の多くの情報をもとに、値引きしてよいかの判断や少し余裕を持った納期とすべきといった判断をしていることが分かりました。

2.データを集める

 必要な情報が何かが明らかになりました。次にこれらの情報をどこからどうやって収集するかを検討します。まず最も入手しやすい情報としては、社内情報システムから抽出する方法です。顧客データベースからお客様情報を、製品データベースからは製品情報をといった具合です。システム化されていない紙媒体の情報については、ITツールを使ったり外部委託したりしてデータ化する必要があります。また、生産工程の負荷情報が現場の感覚から感じたあいまいな情報であったとすると、現場の製造装置にセンサーを付けて負荷状態としての稼働情報を収取しなければならないかもしれません。データの収集で注意すべき点は、それぞれのデータの時間軸を合わせることです。この例では、ベテラン営業マンがお客様へ回答した時点の情報はどの情報かを時間軸で合わせておく必要があります。その1つの価格・納期回答に関わるその時点の全てのデータが、AIの1つの学習データ単位となります。

3.データを作る

 収集したデータはどのようなデータでしょうか。例えば、顧客の重要度は「A」、「B」、「C」といった文字コードで格納されているかも知れません。これをAIに学習させるためには、0~1の値にデータ変換しなければなりません。具体的なデータ変換の方法は、「A」を1、「B」を0.5、「C」を0としても良いですし、3つのデータ領域を使って、「A」を1カラム目、「B」を2カラム目、「C」を3カラム目として、「A」は100、「B」は010、「C」は001とする方法もあるかもしれません。取集したすべてのデータに関してデータ変換を行う必要があるかを検証して0~1までの値にマッピングします。データ変換の方法は自由ですが、このデータ変換の結果によって学習が早く進んだり進まなかったりと影響が出る可能性あるので、センスが求められる部分でもあります。また、最近のAI構築ツールの中には、このデータマッピングを自動で行ってくれるアプリケーションもあるので、そういったツールを使えば作業が軽減される可能性もあります。

4.AIモデルを作る

 どのようにAIモデルを構築するかを決めなければなりません。運よくAzureのようなAIサービスが既にある場合、どうすれば利用できるか、利用費用はどれくらいかかるかを調査検討します。上手くヒットしないか方針が異なるような場合、例えば自社で上手く行けば構築したAIシステムを将来他社向けにサービス提供してみたいと考えている場合などは、将来の運用費やライセンス費用を検討しておく必要があります。自らAI構築を行う場合はフレームワークを活用したAIモデルの構築を行うことが一般的ですが、自社製品に新たなサービスとして組込みを検討したい場合などは、独自開発になるかもしれません。この事例では、フレームワークを活用したAIモデルの構築となりますが、フレームワーク型にもGUIで構築できるものからプログラムを組む必要があるものまで沢山の種類があるので、その中から良いと思うものを選択して取り組むことになります。ここでAIモデルの入力には、データ変換したお客様情報、製品情報、生産情報、出力には、同じようにデータ変換した価格、納期情報とするAIモデルを構築します。具合的なAIモデルの構築には、中間層と呼ぶ入力と出力の間にあるものを何層にするかなど、試行錯誤を伴う部分がありますが、中間層など数を大きくすれば良いかと言うとそうはならないので、AIモデルの構築に知見のある人材の力を借りる必要があると考えます。

5.学習させてみる

 作成したデータを使ってAIモデルを学習させます。学習にかかる時間は、データ量、AIモデルの複雑さ、PCなど利用する環境の能力によりまちまちですが、想定以上に学習時間が掛かるようであれば、クラウド上のPGU利用サービス等を利用するなどの対策が必要です。学習の終了は、教師データとAIモデルの出力結果の差分により収束判定を行います。ここで、十分な収束が見られない場合は、必要なデータの欠落、学習用データ不足、AIモデルの不備等の原因が考えらるため、前のステップに戻って収束するまで試行錯誤により学習を繰り返す必要があります。AIモデル作成アプリケーションの中には、どのデータが学習にどの程度寄与しているのかしていないかを分析してくれるものもあるので、それらを活用してデータを見直す作業に役立てることもできます。

6.学習結果を利用する

 出来上がった学習済みAIモデルをステップ1でイメージした形で現場で活用するためのシステム構築を行います。ここで構築するシステムは、新人営業担当がお客様から営業案件を頂戴したときに、お客様名と製品名をAIに入力すると提案価格と納期回答が得られるシステムです。PCもしくは出先であればスマートフォンからお客様名と製品名を入力すると、システムがその時点の必要な入力情報としてお客様情報、製品情報、生産情報をAIに与え、その結果として入力したデバイスに提案価格と納期回答をリアルタイムに出力することでベテラン営業マンのノウハウを活用します。このように活用方法を最初から具体的にイメージしておくことで活用方法に適したAIシステムが構築できます。また、新人営業担当の教育という面では、AIの判断に入力した情報を結果の出力と同時に表示することも必要かもしれません。

NeuroneWorks

NeuroneWorksの取組について

 AI構築するために必要な6つのステップについて事例を含めてご紹介しました。他の事例として、来客予測、機械の異常検知等もご紹介できればと考えておりますが、こんな事例を知りたい等ご興味ある内容があれば個別にご紹介させていただきます。NeuroneWorksでは、AI構築をお考えの方への支援業務として、社員教育を含め、ご紹介したステップのどの段階でもご支援さえていただきますのでお気軽にお問い合わせください。