この記事のポイント
- この記事は、AI(人工知能)の作成に関する工程やノウハウを解説しています。
- 具体的には無料で利用できるAIサービスの紹介や、プログラミング学習リソースについて述べています。
- AI開発に必要な基礎知識から実践的なスキルまでを網羅しています。
- 初心者でもAI開発のプロセスをイメージしやすいよう、段階的な解説を行っています。
- AI技術の可能性を探求し、自らのアイデアを形にするための情報が満載です。
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
AIおよび、生成AIの普及でAIに関心を持つ人は急増しています。
実際に、弊社でもAIに関心のあるエンジニアからの問い合わせを多く頂いており、日々AIの興味の高さを実感しています。
また、データサイエンティストや機械学習エンジニアという職種も生まれたことでAIを職業にしたい人も多いのではないでしょうか。
その一方で、実際にAIを学んで作ってみたいけど、「AIってどう作れば良いのかわからない」「そもそもAIって作れるの?」といった声が多いのも現状です。
AIを作る際にはAIとは何か、何を作りたいか、どう使えるものを作るのかなど多くのことを包括的に知る必要があります。
そこで本記事では、AIの作り方を徹底的に解説していきます!
目次
AI(人工知能)とは
まずAIを理解する上で、「そもそもAIとは何なのか」を知ることは重要です。AIとは、システム(コンピューター)が人間のように学習・理解・問題解決を行うように設計された技術の総称です。
以下の図のように機械学習、深層学習、生成AIを含みます。
AIとは
AIは、「General AI(汎用的なAI)」と「Narrow AI(特化AI)」の2種類に大別できます。一般的な AI は、SF 映画で描かれているものと同様に、さまざまなタスクや領域にわたって人間のような知能を備えたマシンを作成することを目的としています。
これは、AGIといわれることも多くあります。
【AGIとは何かを知りたい方におすすめ】
➡️AGIとは?従来のAIとの違いや活用領域、今後の課題を徹底解説
一方、Narrow AIは、「特定のタスクに優れたシステムの開発」に焦点を当てており、多くの場合、それらのタスクでは人間を上回ります。Narrow AI の例には、画像分類、顔認識、言語翻訳などがあります。
【AI全般の種類・できることについて知りたい方】
➡️AI(人工知能)の種類は?その分類・仕組みから、メリットや活用例も解説
作成できるAIの種類
AGIを早速作りましょう!というわけにはいかないので、最も利用頻度が多い機械学習・ディープラーニングの手法をご紹介します。
まずは機械学習とディープラーニングについて解説します。
機械学習
機械学習は 、明示的にプログラムしなくてもコンピューターがデータから学習し、特定のタスクのパフォーマンスを時間の経過とともに向上させることができます。機械学習アルゴリズムは、手作業でコーディングされた命令に依存するのではなく、大量のデータを使用してパターンを特定し、予測や決定を行います。
機械学習の主なアプローチです。
機械学習のアプローチ | 応用例 |
---|---|
決定木学習 | 電子メールのスパムフィルタリング、財務分析 |
クラスタリング | 顧客セグメンテーション、画像分類 |
強化学習 | ゲームの戦略、ロボットのナビゲーション |
ベイジアン ネットワーク | 医療診断、リスク評価 |
これらのアプローチは、それぞれ異なるタイプの問題解決やタスク実行に適しており、機械学習が幅広い分野で応用されていることを示しています。
ディープラーニング(深層学習)
ディープ ラーニングは、複数の層を持つ人工ニューラル ネットワーク (そのため「ディープ」という用語) を利用して、データの複雑な表現を学習する機械学習の一分野です。
深層学習アーキテクチャは、生の入力データを処理する相互接続されたニューロン層を備えた人間の脳の構造と機能 からインスピレーションを得ています。
深層学習アルゴリズムはデータから特徴を自動的に抽出し、モデルが画像認識、自然言語処理、音声認識などのタスクを驚くべき精度で実行できるようにします。
【関連記事】
➡️機械学習とディープラーニングの違いをわかりやすく解説!
良いAIを作るために必要な知識
精度の高い良いAIを作るには多くに知識・経験が必要になります。
データサイエンス協会では、以下の画像ののように3つの力であるデータサイエンス力、ビジネス力、データエンジニアリング力がデータサイエンティストに必要であると定義しています。
データサイエンティストに必要なスキル領域 (参考:データサイエンティスト協会)
これはAIを作る時にも同様の能力が必要です。イメージしやすい形で詳細を説明します。
データサイエンス力
データサイエンス力とは、その該当するデータを扱える数学的な能力を指します。
-
学際的な知識
AI開発には、コンピューターサイエンス、数学、統計、工学など、さまざまな分野の知識が必要です。機械学習、深層学習、ニューラルネットワーク、自然言語処理、コンピュータービジョンなどの概念を理解することが重要です。 -
アルゴリズムの設計と最適化
効率的なアルゴリズムを開発し、パフォーマンスとスケーラビリティを最適化することは、AI開発の重要な側面です。これには、アルゴリズムの複雑さ、最適化手法、および計算効率を理解することが含まれます。
データエンジニアリング力
データエンジニアリング力とは、該当するデータを扱えるような前処理、分析できる環境構築ができる力を指します。
-
プログラミングスキル
AIアルゴリズムの実装やAIアプリケーションの構築には、Python、R、Java、C++などのプログラミング言語の熟練度が役に立ちます。 -
データの処理と分析
AIシステムはデータから学習するため、データ収集、前処理、分析、解釈のスキルが不可欠です。効果的なAI開発には、データベース、データ構造、データ視覚化手法を理解することが重要です。
ビジネス力
AIを作るときに技術的背景のみではなく、その場面をリアルにイメージし、使えるAIを作れるの能力のことを指します。
- ドメインの知識
アプリケーションドメインによっては、ドメイン固有の知識があると有益な場合があります。たとえば、ヘルスケアAIアプリケーションでは、正確な診断と治療予測のために、医療の概念と用語を理解することで本当に必要なAIを作ることができます。
これらを習得していくことが、良いAIを作るための技術習得の近道となります。
AI(人工知能)の基本的な作り方4つのステップ
では、実際のAIの作り方をステップごとにご紹介します。
【ステップ1】どのように活用するか決める
AIを効果的に活用して生産性を向上するには、どのように活用するか見極めるのが重要です。ヒアリング、ニーズ検証を通じてどのようなAIを作りたいか決めていきます。
初めてAIを作ってみる方はニーズなど気にせず、ChatGPTに聞いてみるのも一つのてです。
【関連記事】
➡️ChatGPTをプログラミングに活用するコツを解説!対応言語や使用例も
また、計画ツールを利用して、スケジュールを管理し、時間配分を最適化し、タスクに効果的に優先順位を付けることもお勧めです。
Notionイメージ
Notionなどのツールは、ワークロードと習慣を分析して、生産性を向上させるためのパーソナライズされた推奨事項を提供します。
【ステップ2】必要なデータを集める
どんなAIを作るか決まったらAI開発用のデータを取得する必要があります。
とりあえずデータが何か欲しいという方はKaggleにあるデータを用いることや、以下のコードのようにランダムなデータセットを作成して模擬することも学習にはお勧めです。
# ランダムなデータセットの生成(ここでは仮のデータを使用)
np.random.seed(0)
temperature = 30 + 10 * np.random.randn(100, 1) # 外の気温(摂氏)
power_consumption = 150 + 3 * temperature + 20 * np.random.randn(100, 1) # エアコンの消費電力(ワット)
データ収集時の考慮事項
-
データ収集プロセス
データ収集は、分析、解釈、およびアクションのための情報を収集するプロセスです。企業にとって、正確で関連性の高いデータを収集するための明確な戦略を立てることが重要です。 -
データ収集の重要性
高品質のデータにより、企業は市場のダイナミクスを理解し、競合他社に先んじてステークホルダーに価値を生み出すことができます。特にAI開発の場合、AIモデルのトレーニングと改善には正確なデータが不可欠です。
AI開発のためのデータ収集方法
- AIモデルの構築
これには、高度なAIモデルの形成に必要な膨大な量のデータの蓄積が含まれます。たとえば、チャットボットや音声アシスタントなどの会話型AIシステムには、人間の対話を反映した高品質で関連性の高いデータが必要です。
AIトレーニングデータを収集する方法には、クラウドソーシング、パッケージ化されたデータセット、社内データ収集、自動データ収集、Webスクレイピング、生成AI、人間のフィードバックからの強化学習などがあります。
- AIモデルの改善
AI/MLモデルをデプロイした後は、そのパフォーマンスを継続的に向上させることが重要です。そのためには、データや使用状況の変化に対応するために、時間をかけて新しいデータを収集する必要があります。
新しいデータを使用して定期的に再トレーニングしないと、AIモデルのパフォーマンスが低下する可能性があります。
その他のデータ収集のユースケースと方法
- 研究の実施
研究には、特定の質問に答えたり仮説を検証したりするための体系的なデータ収集が含まれます。
一次データ収集方法にはオンライン調査、フォーカスグループ、インタビュー、クイズが含まれますが、二次データ収集にはレポートや調査などの既存のデータソースの使用が含まれます。 - オンラインマーケティング
オンラインマーケティングのデータ収集方法には、オンライン調査、ソーシャルメディアモニタリング、Web分析、電子メール追跡、競合他社分析、オンラインコミュニティやフォーラムへの参加、A/Bテストが含まれます。
- 顧客エンゲージメント
フィードバックフォーム、顧客サービスのやり取り、購入履歴の分析などを通じて、顧客エンゲージメントを向上させるためにデータが収集されます。
リスク管理とコンプライアンス: 企業はデータを収集してリスクを特定、分析、軽減し、規制基準へのコンプライアンスを確保します。
これには、法規制遵守データ、監査データ、インシデントデータ、従業員トレーニング記録、ベンダーリスク評価データの収集が含まれます。
【ステップ3】機械学習モデルを作成する
機械学習は、プログラムされずに経験から自動的に学習する能力を機械に提供する人工知能の一部です。この分野は、さまざまな領域で活用されており、素晴らしい可能性を秘めています。機械学習の専門家になるには、多くのプロジェクトに取り組み、実践的な経験を積む必要があります。
今回はモデル作成方法を見てみましょう。
まず、住宅価格と関連する特徴に関する情報を含むデータセットを読み込みます。
次に、データを特徴(X)とターゲット変数(y)に分割します。その後、train_test_split関数を使用して、データをトレーニングセットとテストセットに分割します。
そして線形回帰モデルを初期化し、トレーニングデータを使用してトレーニングし、テストデータで予測を行います。最後に、平均二乗誤差メトリックを使用してモデルのパフォーマンスを評価します。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
data = pd.read_csv('house_prices.csv')
X = data[['bedrooms', 'bathrooms']]
y = data['price']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print('Mean Squared Error:', mse)
Google colabで簡単に実装
以下は、線形回帰分析をGoogle Colab上で簡単に実行できるサンプルコードです。興味のある方はぜひお試しください。
➡️線形回帰モデルのサンプルコード
【使用方法】
画像内の四角で囲んである「再生ボタン」を押すことで、線形回帰分析を模擬的に実行することが可能です。
Google colabで線形回帰分析
実行結果はこのようになります。
結果イメージ
ローカルでの実装方法
ローカルで実装するにはPythonが利用できる環境を準備することが重要です。
Python入れてない方のために開発環境のセットアップ方法をご紹介します。
ローカル環境を構築することで、自分のPC上でPythonコードを実行し、プログラムを開発できます。
以下の手順で簡単にPythonの開発環境をセットアップしましょう。
1. 必要なもの・前提知識
- Windowsが搭載されたPC
- テキストエディタ(例:HTML & CSS の開発環境を用意しよう! を参考にしてください)
- Pythonの基礎的な知識(Progate Python 学習コース Ⅰ をクリアしていれば十分です)
- インストールするバージョン
Python 3.10.5
2. Pythonのインストール
- Pythonの公式サイトにアクセスします。
- 画面上部の「Downloads」という箇所にマウスを乗せると、メニューが表示されます。
- メニューの右側にある「Python 3.10.5」というグレー色のボタンをクリックします。
- ダウンロードが完了したら、そのファイルを開きます。
- 表示された画面の一番下にある「Add Python 3.10 to PATH」というチェックボックスにチェックを入れます。
- チェックをしたら、「Install Now」をクリックします。
- インストールが進行し、完了したら「Finish」をクリックします。
3. Pythonの使用確認
Pythonを用いるには「コマンドプロンプト」を使用します。PCの画面左下などにある検索バーに「コマンドプロンプト」と入力し、アプリケーションを開きます。
コマンドプロンプトが開いたら、以下のコマンドを入力し、Pythonが正しくインストールされているか確認します。
python --version
インストールされたPythonのバージョンが表示されれば、正常にインストールされています。
これでPythonの開発環境がセットアップされました!自分のPCでPythonのプログラムを実行してみましょう。
【ステップ4】Webサービスに組み込む
機械学習モデルをWebサービスとしてデプロイするためのいくつかのオプションを以下に示します。
Flask
- Flaskは、Python用の軽量Webフレームワークです。
- Flaskを使用してRESTful APIを作成し、機械学習モデルを公開できます。
- Flaskを使用すると、受信したHTTPリクエストを処理し、適切な応答を返すルートを定義できます。
- Flask-RESTfulやFlask-RESTPlusなどのライブラリを使用すると、API開発を簡素化できます。
Django
- Djangoは、Model-View-Controller(MVC)アーキテクチャパターンに従っているPython用の高レベルのWebフレームワークです。
- 機械学習モデルをDjangoプロジェクトに統合し、予測を提供するビューを作成できます。
- Djangoは、URLルーティング、フォーム処理、データベースアクセスなどの機能をすぐに提供します。
FastAPI
- FastAPIは、Python 3.7以降でAPIを構築するための最新の高速(高性能)Webフレームワークです。
- これは標準のPython型ヒントに基づいており、データ検証とドキュメントの自動生成が可能です。
- FastAPIは、async/await構文をサポートし、APIを迅速かつ効率的に構築できるように設計されています。
無料でAIが使えるWebサービス
初心者でも手軽に利用できる無料のWebサービスを紹介することで、AI技術の普及に貢献しています。ここでは無料でAI(人工知能)が使えるWebサービスを紹介します。
文書生成
- ChatGPT
ChatGPTは、OpenAIが開発した大規模な言語モデルで、自然な会話や質問応答、文章生成などが可能です。幅広い知識を持ち、日本語にも対応しています。
【関連記事】
➡️ChatGPTとは?その機能や日本語での使い方を徹底解説!
参考:OpenAI
- Microsoft Copilot
Microsoft Copilotは、GPT-4を搭載したAIアシスタントで、Office 365アプリケーションと連携し、文書作成、メール返信、データ分析などを支援します。月額料金制で提供されています。
【関連記事】
➡️GPT-4搭載!Microsoft Copilotとは?できることや料金をわかりやすく解説
参考:Microsoft
- Gemini
GeminiはGoogleが開発中の会話型AIです。自然な対話や質問応答、タスク実行などが可能で、検索機能との連携が特徴です。
【関連記事】
➡️Geminiとは?その概要や日本語での使い方、料金体系を徹底解説
参考:Google Deep Mind*
画像・動画の作成
- Stable Diffusion
高品質な画像生成が可能なオープンソースのAIモデル。テキストからの画像生成や画像編集、スタイル転送などが行えます。豊富なプロンプトの例が共有されています。
【関連記事】
➡️Stable Diffusionとは?その魅力やモデル、プロンプトの例を徹底解説
- MidJourney
MidJourneyは、DiscordやWebアプリ上で動作する画像生成AI。芸術的で独特なタッチの画像を生成できます。初心者にも使いやすく、プロのアーティストも活用しています。
【関連記事】
➡️Midjourneyとは?初心者もプロも魅了する画像生成AIを解説
参考:Midjourney
- Runway Gen-2
Runway Gen-2は、高解像度の画像や動画を生成できるAIツール。テキストからの画像生成、画像編集、動画生成などの機能を備えています。APIを介した利用も可能で、商用利用にも対応しています。
【関連記事】
➡️Runway Gen-2とは?その機能や料金、商用利用の可否を解説
参考:Runway
AI(人工知能)を更に活用するプログラミングの勉強方法4選
ここでは。AIをさらに活用するためのプログラミングの勉強方法を4つピックアップし、それぞれ解説していきます。
学習サイトで学ぶ
学習サイトで学ぶ
AIを学ぶための学習サイトは、手軽にアクセスできる教材や動画を通じて基礎から応用まで幅広く学ぶことができます。例えば、Python-izmやドットインストールPython入門などがおすすめされています。
代表的な学習サイトには、「Coursera」「Udemy」「edX」「Codecademy」などがあります。
プログラミングスクールで本格的に学ぶ
AIを本格的に学びたい場合は、プログラミングスクールでの学習が効果的です。スクールではPythonをはじめとするプログラミング言語をしっかりと身につけ、AIやディープラーニングの専門知識を習得することが可能です。
AIジョブカレなどがそのようなサポートを提供しています。
Githubプロジェクトベースの学習
AIを活用したプロジェクトに取り組むことは、実践的なスキルを身につける上で非常に効果的です。興味のある分野や問題を選び、AIを用いてソリューションを開発してみましょう。プロジェクトを進める過程で、必要な知識やスキルを随時学習していくことができます。
GitHubなどのプラットフォームを活用すれば、他の開発者とコードを共有し、フィードバックを得ることもできます。
- 事前学習済みTransformerモデルの微調整によるアーティスト風の歌詞生成
事前にトレーニングされたTransformerを微調整して歌詞を生成します。
- 説明: GPT-2モデルを微調整して、選択したアーティストのスタイルで歌詞を生成する方法を示します。この特定のタスクに合わせてモデルを微調整するための段階的な手順が示されています。
- 著者: アレクセイ・コルシュク
- 説明: TensorFlow 2を使用してT5モデルをトレーニングする方法について説明します。これには、SQUADデータセットを使用した質問と回答タスクの実装が含まれています。
- 著者: モハマド・ハリス
- 説明: TransformersとNlpライブラリを使用して、SQUADデータセット上でT5モデルをトレーニングする方法を示します。特に、パフォーマンスを向上させるためのTensor Processing Unit(TPU)のトレーニングを紹介します。
- 著者: スラジ・パティル
まとめ
AIの学習の道のりは長く、険しいことも多く期待される結果を実現するまでに時間と労力がかかります。その一方で学習ツールは多く提供されていて、多くのサービスでAIに触れ合うことは容易になっています。
この記事が、次のAI学習をより適切に組み立てるのに役立つことを願っています。