「AIを作るにはどうすれば良いのか」「作るためにはどのようなことから手を付ければ良いのか」など、AIの学習をしていくとこのような困りごとは絶えないでしょう。
AI(人工知能)の作り方は現役エンジニアでも学習の進め方を間違えれば、理解するのが困難になります。
それ故に1からAIを作成するのはかなりの難易度です。
しかし、自動車やスマートフォン、Webサービスなどさまざまな分野にAIは活用されています。
そこで今回紹介するのはAIを作成するために必要な知識と手順についてです。
AIを活用できるようになるための1歩目として参考にしてみてください。
目次
1.AIの基本
AI(人工知能/Artificial Intelligence)とは、「人間のような知的な作業をコンピュータに行わせるために人工的に作られたシステムやソフトウェア」を指す言葉です。
上記以外にもAIの定義には以下のようにさまざまな定義があります。
東京大学 堀浩一氏「人工的に作る新しい知能の世界」
慶應義塾大学 山口高平氏「人の知的な振る舞いを模倣・支援・超越するための構成的システム」
一般社団法人 人工知能学会設立趣意書からの抜粋「大量の知識データに対して、高度な推論を的確に行うことを目指したもの」
これは人間の知能や認識能力などには解明されていない未知の部分が多く、有識者や専門家の間での解釈が異なることがあるからです。
AIの要素
AIが人間の代わりに作業を行うためには主に以下の2要素が重要になります。
処理の手法を決める「アルゴリズム」
「アルゴリズム」をもとに処理を実装する「プログラム」
AIのアルゴリズム関連のおさえておくべき用語を以下に紹介します。
用語 | 概要 |
---|---|
ルールベース | 人間が決めた命令に従って処理を行う仕組み。 |
機械学習 | 膨大なデータからパターンやルールを学習し、予測や分類などのデータ分析を行う仕組み。AI技術で活用される手法の1つ。 |
ニューラルネットワーク | 人間の脳神経系であるニューロンの仕組みを参考にした手法。「入力層」「中間層(隠れ層)」「出力層」の段階的な処理を行うことで実現したもの。 |
深層学習(ディープラーニング) | ニューラルネットワークを活用することで、コンピュータが自動で学習し、データ分析を行えるようにしたもの。機械学習の手法の1つ。 |
これらの用語はAIに内包される要素です。
イメージとしては以下のようになります。
AI > 機械学習 > ニューラルネットワーク、ディープラーニング
AI > ルールベース
機械学習や深層学習などは線形代数などの数学の知識や統計学の知識も必要となるため、高度な学習が必要です。
もう1つのプログラムに関しては構文がシンプルで扱いやすい「Python」がよく利用されます。
Pythonには「scikit-learn」「TensorFlow」「Keras」などAI開発関連のライブラリが多数存在しており、WindowsやMac、Linuxなどの複数の環境で使用できるため、最近のAI開発では重宝されているのです。
最近ではプログラミングを記述せずとも、開発可能なサービスやソフトウェアが登場していますが、それに関しては後で紹介します。
AIを学ぶにも作るにも上記の要素を中心に進めることが重要であると覚えておきましょう。
2.AIを作るための4ステップ
ここからは個人でも企業でもAIを作成する際に必要な4ステップについて、触れていきます。
AIを作成する際の4ステップは以下の通りです。
活用目的の決定
データの収集
モデル作成
サービスへの組み込み
それぞれ詳しく解説していきます。
活用目的の決定
まず行うのは、「AIの活用により解決したい問題や課題の明確化」です。
例えば、「特定の要素(人物や物体)が写っているものといないものの分類」「業務における提携作業の代替」などになります。
これが大切なのは問題や課題が明確でなく、漠然とAIを作るとなっては「どのようなアルゴリズムでモデルを作成するか」「AIの学習や動作テストに必要なデータはどんなものか」「性能評価の方法はどうするか」などが定まらず、モチベーションやパフォーマンスの低下などが懸念されるからです。
問題や課題から目的を明確にすることで開発の指針も明確となり、必要となる要素が見えてくるようになります。
どこかの組織や団体に所属している場合は、すでに問題点や課題が判明しており、研究・開発の指針が決まっていたりするので、それに従いましょう。
データの収集
AIが学習に利用するデータは目的ごとに異なります。例えば、「画像から動物を種類ごとに分類するAI」の場合、分類したい動物の画像が大量に必要です。
この時、データが少なかったり、曖昧な画像データが多かったり、動物の種類に偏りのあるデータだったりするとAIの性能は著しく低い状態になります。人間が少ない知識や偏った知識ではより正確な分析や判断をすることができないのと同じです。
こういったときには無料のAPIやデータセットをインターネットで検索するなどして、活用するのも良いでしょう。Googleや楽天などの企業から国の機関まで複数の機関が提供してくれています。
モデル作成
必要なデータの準備ができたら、次に行うのはAIにおいて一番重要な部分である「モデル」の作成です。モデルとは、「AIが入力データをもとに予測や分析を行う中枢部分」を指し、モデルとAIはほぼ同一のものというイメージで差し支えありません。
モデルは機械学習やディープラーニングなどを活用して作成します。1つ前のステップで集めたデータはAIが予測や分析をできるように学習するための「トレーニングデータ」と性能評価をするための「テストデータ」に分けますが、この時にもそれぞれにデータの偏りが無いように注意が必要です。
この工程がAI開発における一番重要な項目で、ここでパラメータ調整や性能評価を繰り返して、より高性能なAIへと改良を繰り返すことになります。これを蔑ろにした場合には、偏った判断をしてしまう「過学習」やそもそも判断ができない「未学習」という状態を作ってしまう原因にもなり、再度作り直すことにもなるので注意しましょう。
サービスへの組み込み
モデルの作成が終わった後、作成したモデルをサーバーなどにデプロイ(展開)して、APIなどを使用して各種サービスからの実行をできるようにします。
一般向けのクラウドサービスなどで運用する場合にはアクセス状況などにより、メンテナンスや改良も視野に入れた運用が必要です。
また、サービスへ組み込んで終わりではなく、その後も継続的に性能評価を行い、想定外の動作が発見された際にはモデルに対して再度トレーニングを行うことでAIの性能向上を図りましょう。
関連記事
Pythonライブラリとは?使い方や調べ方、おすすめのライブラリなどわかりやすく解説
3.対話型AI(会話型AI)の作り方
対話型AI(会話型AI)とは
対話型AI(会話型AI)とは、「テキストや音声による双方向コミュニケーションが可能なAIシステム」です。このAIシステムではモデルに実装した「自然言語処理(NLP:Natural Language Processing)」によって、使用者が入力した文章の文脈を理解し、適切な会話になるように応答の生成を行います。
対話型AIが使用されるのは主にチャット形式でコミュニケーションを図る「チャットボット」と音声認識によってコミュニケーションを図る「ボイスチャット」です。入力ソースが異なるのみで基本的な処理は同じになります。
どちらもカスタマーサポートなどで活用され、よくある質問の自動応答や顧客情報の確認などをリアルタイムで行い、業務のコスト削減や効率化に寄与するのが目的です。また、対話型AIは顧客に関する過去の履歴から趣味嗜好などを学び、よりパーソナライズされた対応をさせることもできます。
Pythonでの対話型AI(会話型AI)の作り方
Pythonには自然言語処理特化のNLTKやjanomeなどのライブラリが充実しているため、対話型AIは比較的楽に開発可能です。
自然言語処理のライブラリには文脈を理解するための準備があり、GPTやBERTという言語モデルも使用できるものもあるため、活用することができれば高性能なシステムの開発も可能になります。
ChatterBotというチャットボットを作るのに便利なライブラリもあり、これにより自社サイトや自社サービスなどへのチャットボットを導入も容易です。
ライブラリにモデル構築に必要な要素があるため、使用方法を学習することでさまざまな場面で対話型AIの導入が期待できるでしょう。
ツールでの対話型AI(会話型AI)の作り方
Pythonを使用しなくとも以下のようなサービスを使用することで開発することもできます。
Cognigy
対話型AIのプラットフォームであり、作成したチャットボットやボイスチャットをプラットフォームで管理することも可能です。GUI画面での視覚的な操作が可能なため、初心者にも使いやすい仕様になっています。
KUZEN
チャットボットの構築が可能なプラットフォームでGoogleやMicrosoftなどとの連携も可能です。
hachidori
マーケティングや業務の効率化などで活用されているチャットボットツールで「シナリオタイプ」「フリーワードタイプ」「有人チャットサポートタイプ」の3つを組み合わせるなどして利用できます。
これらは利用料が発生するので、Pythonでの開発コストと比較するなどして利用について検討すると良いでしょう。
関連記事
PythonでAI開発!【初心者向け】ライブラリの紹介学習のヒント、未来展望など解説
4.自立思考型AIの作り方
自立思考型AIとは
自立思考型AI、または自律型AIは、他のAIとは違って作成後に人間による指示や対話を必要とせず、高難易度の作業を自己判断で行うAIシステムを指します。このAIシステムは導入後、自ら学習を行い、人間の力を借りずに最適化された動作が可能です。
ロボットやIoTの分野において、リアルタイムでのデータ分析による処理や対応が求められる場合に活用されています。また、新しい戦略や対処法の生成も可能なため、想定外の事態への対応も期待でき、人間が最小限の対応で柔軟な対応が可能です。
自立思考型AIの作成手順
自立思考型AIの作成手順は以下のようになります。
リアルタイムのデータ収集システムの準備
AIが状況を判断するためのデータを収集するためのセンサーやシステムを構築して、リアルタイムでの状況確認をできるようにします。
収集したデータを処理するアルゴリズムの作成
機械学習や深層学習(ディープラーニング)を用いて、AIの分析や判断といった意思決定のための能力を高めることで、自立した処理が可能な状態の作成が必要です。
試験環境へのAI導入
さまざまな状況でのAIの判断を評価するために試験環境での評価試験を行います。結果によっては、前工程の見直しや調整を行い、運用に向けた準備を進めることになるでしょう。
前述にもあるようにロボットやIoTといった物理的な要素がかかわる場合もあるため、人間や周りの環境に危害が加えられないように注意する必要があります。
関連記事
機械学習と深層学習(ディープラーニング)の違い|基礎から活用例をわかりやすく紹介
5.画像生成AIの作り方
画像生成AIとは
画像生成AIは、ニューラルネットワークを活用し、キーワードや基礎となる画像を用いて新しい画像を生成するAIシステムです。具体的には「文章から新しい画像を生成」「指定の内容での写真加工」「イラスト・写真の画風変更」などができます。
最近では、生成AIの活用により宣伝用の広告などはもちろんのことサイトに掲載する画像など、クリエイティブな活動に多大な影響を与えている状態です。
そういったポジティブな面に対して、画像生成AIにはリアルなフェイク画像が生成されたことで社会問題になった事例もあるため、著作権などには十分に注意して活用する必要があります。
Pythonでの画像生成AIの作り方
Pythonにはdiffusersという画像生成を行うのに便利なライブラリがあり、これらを活用することで画像生成が可能です。このライブラリにはHuggingFaceで無償提供された「Stable Diffusion」というオープンソースAIの処理が使用でき、それを活用することで文章から画像を生成できるようになります。
また、SimpleCVやNumpyなどの画像処理に関するライブラリもあるため、組み合わせることでより独自の生成AIも作成可能ですが、それには機械学習やニューラルネットワークの学習をしてモデルを作成できるようになることが必要です。
画像生成AIの技術とツール
画像生成AIモデルの手法や技術は複数存在するため、前述のように既存のAIを流用せずに作成する場合は以下のような技術を学んでいく必要があります。
VAE(変分オートエンコーダ)
トレーニングデータと類似の画像を生成したい時に活用するモデル、特定の画家や画風の作品を学習させれば、同じ画風の画像生成が可能です。
GAN(敵対的生成ネットワーク)
生成モデルと識別モデルの両方を組み合わせることでよりリアルな画像を生成するための仕組みになります。実在の有無も含めデータの特徴をもとにした画像変換が可能です
DALL・E
ChatGPTで利用できるOpenAI社が開発したモデルになります。GPTが持つ自然言語処理を使用することで文章の内容に沿った画像生成が可能です。
先ほど紹介した「Stable Diffusion」を使用したConoHaというサービスもあるので、そちらを使用してみるのも良いでしょう。
関連記事
CNN(畳み込みニューラルネットワーク)」とは?仕組みなどの基礎から活用例、将来性までわかりやすく解説
Pythonで使うおすすめテキストエディタ8選!選び方のポイントも解説
6.AI作成に使えるサービス・フリーソフト
Watson
IBMが提供するプラットフォーム「IBM Cloud」には、初めの30日間無料で利用できるAI(人工知能)API/サービス「Watson」があります。
AIアシスタントや自然言語処理、画像分析などさまざまなアプリの構築や実行が可能です。
参考リンク:(デモ動画) IBM i のデータ活用 – IBM Watson Analytics 連携編
DataRobot
DataRobotは、30日間の無料ライセンスが用意されている機械学習プラットフォームです。専門知識がほぼなくともさまざまなデータ分析や予測、画像認識などのモデルを作成することができます。
参考リンク:DataRobot
Prediction One
Prediction Oneは、SONYが30日間無料で提供しているデータ分析と予測を行えるソフトウェアです。プログラミングを利用しないデータ分析を可能とし、専門知識を必要とせずに初心者でも簡単に利用できます。
参考リンク:【AIによる予測分析】Prediction One 使い方説明
TensorFlow
TensorFlowはGoogleが開発したAI関連のツールであり、豊富なチュートリアルのおかげでAI開発初心者であってもスムーズに開発を始めることが可能です。これを使用してAI開発に慣れていき、今後のAI開発の足がかりにするのも良いでしょう。
参考リンク:TensorFlow
Microsoft Azure
Microsoft Azureはマイクロソフトが開発したツールで、機械学習や深層学習の導入や構築をサポートしてくれるツールやライブラリが豊富なため、比較的楽に実装を進められます。他のMicrosoft関連サービスと同様にわかりやすいインターフェースなので、普段からMicrosoft関連サービスを使い慣れている方にはいいかもしれません。
参考リンク:クラウド AI プラットフォーム | Microsoft Azure
7.まとめ
本記事はAIを作成するために必要な知識と手順という観点で紹介しました。AI開発に活用できるツールやPythonライブラリは多くありますが、そもそもの原理を知らないと活用までするのが難しいです。
自分や関わっている業務に必要な知識は何かをつかむための参考にして、これから学ぶべき内容に何があるのかを知っていくのが良いでしょう。
本記事が皆様にとって少しでもお役に立てますと幸いです。
「フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。
開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。
単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。