AI開発の基礎知識: 種類、開発プロセス、必要な注意事項
この記事を通じて、AI開発の基本をしっかりと理解し、自分自身のプロジェクトや研究に活かす第一歩を踏み出しましょう。
【関連記事】
目次
AI開発とは?AI開発のユースケース
人工知能は、コンピュータサイエンスの一分野で、通常人間の知能を必要とするタスクを実行できるスマートマシンを構築することに関するものです。
ここでは、AIの具体的な活用事例をご紹介します。
- 製造業におけるAI:製造業の進化は、人工知能とロボティクスの導入で見ることができます。AIの力を借りれば、故障の検出と解決が容易になります。エラーを検出するようにプログラムされ、被害を克服するための解決策が供給されます。
- 自動運転車:人工知能は、文字通り自動運転車産業の未来を牽引しています。これらの車にはセンサーが搭載され、車の周りで何が起こっているかを常に記録し、AIを使って適切な調整を行います。これらのセンサーは、車の速度、道路状況、歩行者の有無、他の交通状況など、ミリ秒単位で何千ものデータを取得し、AIがそのデータを解釈して適切な行動を取るのを支援します – すべて瞬時のうちに。
- スマートアシスタント:SiriにAirPodsを探すことを手伝ってもらったり、Amazon Alexaに電気をつけてもらったりしたことがあるなら、おそらく最も一般的な人工知能のひとつに接したことがあるはずです。
- マーケティングチャットボット:チャットボットのようなAIを搭載したツールは、現在、中小企業でも広く利用できるようになっています。これは、売上を上げる目的で、ウェブサイトやアプリで見込み客や顧客とのやりとりを自動化するために、コンピュータ・プログラムを採用したマーケティング手法です。マーケティングチームや営業チームがオンラインであるかどうかに関わらず、マーケティング戦略にチャットボットを活用することで、企業はいつでも、どのような状況でも、顧客を適格に判断し、対応することができるようになります。
- 顔認証システム: 顔認証は、AIのアプリケーションの一つです。生体認証の高度な形態の1つで、データベースから画像やビデオに含まれる顔の特徴を使って、人を認識・確認することができます。行方不明者の捜索や盗難防止に活用されています。
AIの種類
人工知能は、その特徴や能力から、以下の7種類に分類されます。
Types of Artificial Intelligence | AIの種類 |
Based on capabilities | 能力ベース |
Narrow AI | Narrow AI(ナローAI) |
General AI | General AI(一般的なAI) |
Super AI | Super AI(スーパーAI) |
Based on functionalities | 機能ベース |
Reactive Machines | リアクティブ・マシン(Reactive Machines) |
Limited Memory | リミテッド・メモリー(Limited Memory) |
Theory of Mind | 心の理論(Theory of Mind) |
Self-awareness | 自己認識(Self-awareness) |
AIには、能力に応じて3つのタイプがあります。
- Narrow AI(ナローAI):(Weak AI_弱いAIとも呼ばれます)単一の狭いタスクに限定され、その制限を超えて実行することはできません。認知能力の単一のサブセットのスペクトルに沿って進歩します。Apple SiriやGoogle翻訳などがNarrow AIの開発の一例です。
- General AI(一般的なAI):(Strong AI_強いAIとも呼ばれます)人間ができるあらゆる知的タスクを理解し、学習することができます。機械が様々な文脈で知識や能力を利用することを可能にします。強いAIは、AI研究者によってまだ達成されていません。
- Super AI(スーパーAI):スーパーAIは人間の知能を超え、どんな仕事も人間よりうまくこなすことができます。スーパーAIの考えによると、AIは人間の感情や経験に非常に近いところまで進歩し、それを理解するのみならず、自分自身の感情、ニーズ、信念、欲望を呼び起こします。それが存在するかどうかはまだ推測の域を出ません。
機能の面では、4つのタイプのAIがあります。
- リアクティブ・マシン(Reactive Machines): 記憶を持たず、過去の経験を将来の行動の指針にしない人工知能の第一形態がリアクティブマシンです。現在のデータのみで動作します。彼らは周囲の世界を知覚し、それに反応します。リアクティブ・マシンは、特定のタスクを与えられ、そのタスク以上の能力を持ちません。
チェスのグランドマスター、ガルリ・カスパロフ(Garry Kasparov)を負かしたIBMのディープ・ブルー(Deep Blue)は、チェス盤の駒を知覚し、それに反応することができるリアクティブ・マシンです。ディープ・ブルーは過去の経験を参照することも、練習によって上達することもできません。
リミテッド・メモリー(Limited Memory): リミテッド・メモリー AI列車は、過去のデータから意思決定を行います。このようなシステムのメモリは一時的なものです。この過去のデータを一定期間使うことはできますが、自分の経験のライブラリに追加することはできません。この種類の技術は、自動運転車に使われています。
- 心の理論(Theory of Mind): 心の理論AIは、高度な技術を代表するもので、概念としてのみ存在します。このようなAIは、環境の中にある人や物が感情や行動を変化させることを徹底的に理解する必要があります。人々の感情、情緒、思考を理解する必要があります。この分野では大きな進歩が見られますが、このようなAIはまだ完全には完成していないのです。
ハンソン・ロボティクス社(Hanson Robotics)の「ソフィア」(Sophia)は、心の理論AIが実装された例です。ソフィアは、目の中にあるカメラとコンピュータのアルゴリズムによって、目が見えるようになっています。視線を合わせたり、人を識別したり、顔を追ったりすることができます。
- 自己認識(Self-awareness):自己認識AIは仮説としてしか存在しません。これらのシステムは、人間の感情を感知し、その内部特性、状態、状況を理解します。これらのマシンは、人間の脳よりも高い知能を持つようになります。
AI開発プロセス
要件を用意して、AI開発会社やAI開発者や専門家のチームにAIアプリの構築を依頼するだけでも良いのですが、やはりAI開発のプロセスを意識しておくと、プロジェクトをコントロールするのに役に立ちます。
ステップ1:ユースケースを定義する
AIソフトウェア開発の最初のステップは、AIに解決させたい問題や課題を正確に定義することです。これが具体的であればあるほど、AIソフトウェア開発で成功する可能性は高くなります。
ステップ2:データの有効性を検証する
AI開発の次のステップは、必要な分析を行うために必要なデータを取り込み、監視するためのシステムとプロセスが整っているかどうかを確認することでしょう。議論とデータの取り込みには多くの時間がかかります。その結果、適切なデータが、適切な量、適切な機能または変数で利用可能であることを保証する必要があります。そうすることで、AIソフトウェアの開発プロセスを迅速に進めることができます。
ステップ3:基本的なデータ探索を行う
AIモデルを構築するための演習をスキップしたくなるかもしれません。しかし、まず基本的なデータ探索を行い、AIのデータの仮定と理解を確認することが重要です。これは、データが発生した事象を正しく表現しているかどうかを判断するのに役立つため、非常に重要です。
このステップにより、組織はAI開発における重要な変数や特徴を決定することができ、それはAIやMachine Learning(マシンラーニング/ 機械学習)モデルを構築するための重要なインプットとなり得ます。
ステップ4:AIまたはMachine Learning(ML)モデルの構築と検証のための方法論を定義する
仮説を検証し、その実行を強化するためには、最も重要な変数または特徴を特定するためのテストを実行することが不可欠です。AIまたはMLソフトウェア開発モデルを成功させるためには、機能エンジニアリングを成功させることが必要です。したがって、AIまたはMLモデルを構築するための方法論の定義を追及するアルゴリズムより専門分野の専門家の方が重要になります。
AIやMLの特定のモデルを絞り込むためには、様々なアルゴリズムからの出力を評価、比較、分析しやすくする性能指標を定義する必要があります。
AIまたはMLモデルを検証するための方法論を定義するプロセスでは、データを2つのセットに分割します。1つはトレーニングセットであり、もう1つはテストセットです。トレーニングセットはアルゴリズムの学習に役立ち、テストセットは評価のために使用されます。サンプリングのプロセスは、アルゴリズムの複雑さによって異なります。 すべてが正しい方向に向かっていることを確認するために、発見された事実を検証することが重要です。
ステップ5:Data-Driven AI(データドリブンAI)とModel-Driven AI(モデルドリブンAI)のどちらを選ぶか
AI開発で迫られる決断は、Data-Driven AIとModel-Driven AIのどちらを選ぶかです。Data-Driven AIの目的は、これまで受けたトレーニングや、数多くの質問と答えのペアを見た上で、正しい答えを特定できるシステムを作ることです。一方、Model-Driven AIの目的は、明確な表現とルールによって知識を獲得し、意思決定を可能にすることです。
ステップ6:AIソフトの導入におけるキーステップを理解する
企業でAI開発を実行するためには、3つのキーステップがあります。それらは以下の通りです。
- AI戦略の構築:これは、AIで実現したい事を明確にする戦略であります。AIソフトウェアのエンドユーザーは、戦略の中で認識されるべきです。
- AI準備の確認:AI準備のためのロードマップを見直し、AI導入のための計画を構築します。これには、データの収集と保存、データの品質、データのセキュリティ、およびAIのユースケースによって影響を受けるであろう既存のビジネスプロセスなどの分野の見直し含まれることがよくあります。
- 概念実証 (Proof-of-Concept)の提供:これは、実際の状況下でAIソフトウェアがどのように動作するかを確認するために必要です。ソフトウェアのプロトタイプの使い勝手を評価し、精度、データアクセス、ユーザーエクスペリエンス(UX)に関する問題点を迅速に洗い出すためのテストです。
ステップ7:クラウド上でのAIソフトウェア実装を確実にする
機械学習の学習には多大なコンピューティングリソースが必要なため、MLを導入しようとする人は、その技術をサポートするのに十分な性能のサーバーを購入し、大きな投資をする必要があるため、なかなか導入に踏み切れませんでした。しかし、クラウド技術の登場により、この問題はほぼ解決されました。このため、MLのコンピューティングニーズを、負荷をかけずに満たすことができるようになったのです。このようなサービスは、Microsoft AzureやAWSのようなオンデマンドのクラウドコンピューティングプラットフォームによって提供されています。
ステップ8:AIソフトウェアのテスト
AI開発プロセスのもう一つの重要なステップは、ソフトウェアが円滑かつ正確に機能するかどうかテストすることです。
ステップ9:ソフトウェアの自動化とロールアウト
ソフトウェアの作成、検証、テストが完了したら、ソフトウェア開発のためのAIまたはMLモデルを本番環境にロールアウトする必要があります。最初の数週間から数カ月は、限定的なロールアウトから始めましょう。モデルの性能について良いフィードバックが得られるようになったら、ロールアウトをより広範囲に行うことができるようにします。
ステップ10:AIソフトウェアの再トレーニングを頻繁に行う
AIソフトウェアソリューションは、構築した後に放棄することはできません。 AIは人間と違い、2つのことを同時に学習することができないからです。AIは、教育されたタスクのみを実行します。AIに別のタスクを実行させるには、必要なトレーニングを施さしなければなりません。したがって、AIソフトウェアの開発プロセスには、定期的な再教育が含まれていなければなりません。
AI開発プロジェクトに必要な注意事項
AI開発言語
ほとんどのプログラマーにとって、Pythonは最高のAI開発言語です。Java、C++、JavaScriptも有力な候補ですが、AI開発にはPythonが最も万能な選択肢でしょう。
Python | Java | Javascript | C++ | |
コードの長さ | 短い | 長い | 中程度 | 長い |
パフォーマンス | 遅い | 早い | 遅い | 早い」 |
タイピング | 動的 | 静的 | 動的 | 静的 |
難しさ | 簡単 | 中程度 | 中程度 | 難しい |
AIコードベース | 多い | 一部 | 一部 | 一部 |
AI開発環境
AI開発では、大量のデータを扱うため、システムを運用できる開発環境も必要です。具体的には、ビッグデータを保存するためのストレージや、機械学習やディープラーニングを実現するための十分な演算能力を持つコンピュータを準備することが必要です。このサービスは、Microsoft Azure、AWSなどのオンデマンド型クラウドコンピューティングプラットフォームで提供されています。クラウドコンピューティングは、初期費用やハードウェアのセットアップを行うITチームを必要としないので、AIプロジェクトにとって魅力的な選択肢です。
AI開発フレームワーク
AIフレームワークは、データサイエンティスト、AI開発者、研究者に、モデルを迅速に設計、トレーニング、検証、およびデプロイをするためのビルディングブロックを提供します。ここでは、ビジネスで検討すべきAIフレームワークのトップ2を紹介します。
- Scikit Learn: PythonベースのAIおよび機械学習ソリューションで、かなり深刻な問題および深刻ではない問題のためのメソッドをたくさん含みます。そのほかの機能は次のとおりです。
- 多くのタスクを中断することなくこなせること
- Pythonの最も重要なライブラリの2つを拡張:NumPyとSciPy
- バンチング(bunching: 束ねる)やリラプス (relapse: 逆戻りする) のような、AIやデータマイニングの計算手法を幅広く持っている
- TensorFlow:Googleの製品であるTensorFlowは、JavascriptとAPIを使ってブラウザ上で直接機械学習モデルを実行するオープンソースのツールキットである。
- すぐにデバッグできる使い勝手の良いツールである
- TensorFlowは、Keras APIとデータ入力パイプラインの助けにより、複雑なトポロジーを修正することができる
- モバイルや組み込みシステム向けの学習済みモデルやデータセットが組み込まれ
まとめ
CMC Japan は、この記事により、あなたがAI開発に自信を持ち、意欲的に取り組むことができるようになることを願っております。AI開発には困難が伴うことは間違いありませんが、ステップバイステップのAI導入戦略を熟知し、採用することで、そのプロセスを容易にすることができます。