PythonでAIを作るときに役立つライブラリ、サンプルコード例、練習方法などを紹介!
AIエンジニアやデータサイエンティストを目指すために、PythonでAIを作ることに挑戦している初心者もいるでしょう。ただ、AI作る方法がまったくイメージできず、開発に踏み出せない方もいるのではないでしょうか。
まずは、PythonでAIを作るときの土台に着目してみてください。AIを作るのに必要な事柄を把握するだけでも開発のハードルが下がります。プログラミングにも取り組みやすくなるでしょう。
そこで今回は、PythonでAIを作るときに知っておきたい基礎知識や、AIの例、ライブラリ、流れがわかるサンプルコードなどを紹介します。どうしても作るのが難しいときの対処法も紹介しているので、あわせて参考にしてみてください。
PythonでAIを作る前の基礎知識
初心者がPythonでAIを作るうえで最低限理解しておきたい基礎知識があります。
まず、Pythonの基本的なコーディングの文法スキル、開発に使えるツール、環境などを把握していないとプログラミングを始められません。
AIの意味を理解していなければ、AIが行うデータ処理や、作れるAIについて湧いてこないでしょう。
また、AIは数値データを用いて予測するシステムでもあり、微分や線形代数、確率・統計など、数学や統計学に関する知識も必要です。
AIの作り方を学ぶ前にAIやPython、統計学などの概要や学習方法をおさらいしたい方は下記の記事からご確認ください。
AIの勉強は初心者の社会人でも間に合う?何から始めるか迷うときのロードマップ、学習方法を公開!
データサイエンティストに必要なPythonとは?学習方法やR・SQLとどっちを学ぶべきかを解説!
統計検定とは? メリットや難易度、勉強時間、データサイエンティストを目指すための学習方法などを解説!
Pythonで作るAIの例
PythonでAIを作るうえで、そもそもAIでどのようなシステムを作れるのか、気になるところでしょう。
AIの代表的な例としては、需要予測システムや画像認識システムなどが挙げられます。
それぞれについて解説します。
需要予測システム
需要予測システムは、既存のデータを学習させることで、特定の条件における需要データを予測するシステムです。
たとえば、店舗であればこれまでの販売実績や気象情報などのデータを活用して、最適な商品発注数を予測するシステムが挙げられます。商品不足や廃棄量の増加などの課題を解決できるでしょう。
そのほか、タクシー会社であれば過去の運行データや気象情報、エリアの人口情報などを組み合わせ、地域におけるタクシー需要を予測するシステムも挙げられます。
必要なタクシーの数を正確に予測できれば、乗客の待機時間や空車のタクシーを減らして、売上を高められるでしょう。
需要予測の概要やできること、手法などを詳しく知りたい方は下記の記事もぜひお役立てください。
需要予測とは?何ができる?なぜAIを使うのか?手法・メリット徹底解説!
画像認識システム
画像認識システムは、コンピューターが画像に含まれる対象を認識するシステムです。
特定の物体が画像内に存在していることを認識したり、画像内に存在している対象の位置や個数を検出したりします。
たとえば、食べ物の不良品を検出させるシステムなどが例として挙げられます。
人が目視で不良品をチェックする必要がなくなるため、画像認識システムを導入すれば人件費を削減できるでしょう。
PythonでAIを作るのに役立つライブラリ
PythonでAIを作るにはコーディングが必要ですが、プログラミング量が多いとたくさん時間を要してしまいます。
その点、コーディング作業の効率化に役立つのがライブラリです。
ライブラリとは、コーディングで頻繁に使う機能を簡単に呼び出して使えるプログラム群です。AIを作るときもライブラリを活用することで、ゼロから機能を開発する必要がなくなり、コーディングの効率を高められます。
AIの開発でよく使うライブラリの例をまとめてみます。
ライブラリ | 内容 |
Numpy | Pythonで数値計算を行うための機能がまとめられたライブラリ。行列の掛け算、逆行列などの計算を素早く行える。 |
matplotlib | Pythonでグラフや図を描画するための機能がまとめられたライブラリ。AI学習の進み方や画像データを可視化したいときに役立つ。 |
Open CV | 画像や動画に関する処理機能がまとめられたライブラリ。動画から物体を検出することも可能。 |
scikit-learn | PythonでAIのアルゴリズムを使った学習、予測、モデルの評価などに必要な機能がまとめられたライブラリ。サンプルのデータセットも豊富に用意されている。 |
TensorFlow | Googleの主導で開発された機械学習のライブラリ。画像認識や異常検知、強化学習などで活用される。 |
Pytorch | Facebookの主導で開発された機械学習のライブラリ。テキスト生成モデルの作成や顔認証システム、物体検知システムなどで活用される。 |
このようにPythonでAIを作るときに活用できるライブラリは幅広く存在しています。一つでも多く把握しておくことで開発をスムーズに進められるでしょう。
なお、PytorchやTensorFlowに関しては資格試験でも扱われることがあります。たとえば、AIの専門資格であるE資格では、前提のフレームワークとしてPyTorchとTensorFlowを利用した実装が扱われており、試験問題が表示される前にいずれかを選択するルールとなっています。
E資格について詳細を知りたい方は下記の記事もぜひご覧になってください。
E資格とは? 取得メリットや難易度、勉強方法、G検定との違いなどを解説!
PythonでAIを作る方法のプロセスとサンプルコード例
初心者が、PythonでAIを作ることができると聞いても、イメージが湧かない方がほとんどでしょう。
PythonでAIを開発できることを実感するには、具体的なコーディングを把握する必要があります。
ここでは、PythonでAIを作る方法のプロセスについて、サンプルコード例を含めてご紹介します。
ライブラリの呼び出し
PythonでAIを作るにはライブラリを活用すると効率的であることをお伝えしましたが、利用するにはルールがあります。
一般的にライブラリを使用するときには、ライブラリを呼び出しなければなりません。
【サンプルコード】
import numpy
importのあとにライブラリを記述して呼び出すと、各種機能が使えるようになる仕組みです。
「import numpy as np」のように記載することで、その後のコーディング処理で別名を使ってプログラミングを簡略化することもできます。
入力データと出力データの格納
需要予測のAIでは、モデルに学習する入力データと出力データを用意します。
たとえば、気温とドリンクの販売データを学習させるのであれば、〇度のときに〇個売れるといったデータをインプットします。
Numpyの機能を使えば配列によるデータ整理が可能です。
【サンプルコード】
temp_input = np.array([20, 23, 25, 29, 30, 33]).reshape(-1, 1)
drink_output = np.array([120, 130, 145, 170, 180, 200])
温度を入力データとして格納し、ドリンクの販売本数を出力データとして格納できます。
データセットの読み込み
ライブラリを活用することで、AI予測モデルの実装に必要な標準実装のデータセットを読み込むこともできます。
たとえば、scikit-learnライブラリでは、アイリスデータセットが用意されています。アイリス(iris)はアヤメ科アヤメ属の単子葉植物の総称です。データセットには3種類の品種の花弁とガクの長さが含まれています。
【サンプルコード】
iris_data = load_iris()
load_iris()という関数を使ってデータセットを取得しているサンプルコードです。
予測モデルの作成
ライブラリを活用すれば予測モデルを構築できます。たとえば、scikit-learnライブラリのLinearRegressionという機能を用いれば、線形回帰モデルを構築可能です。
線形回帰は、既知データから関連する別の未知データを予測するデータ分析手法として知られています。入力データに対する出力データの直線的な変化を予測可能です。
【サンプルコード】
skmodel = LinearRegression()
skmodel.fit(temp_input, drink_output)
fit機能によってモデルに学習データを与えられます。
データを用いた予測の実施と結果の表示
predict() を使えば、モデルに新たな入力値を与えて予測値を表示できます。predictは英語で「予測する」「予報する」「予知する」などを意味する言葉であり、単語からも機能がイメージしやすいでしょう。
予測値を計算したあとはprintで出力可能です。
【サンプルコード】
temp_test = np.array(21).reshape(-1, 1)
drink_test = skmodel.predict(temp_test)
print("21℃におけるドリンクの予測販売数は", drink_test[0] )
21度のテストデータから21度のときに売れるドリンクの予測販売数を割り出し、結果を表示させられます。
画像の読み込み
画像認識システムのAIを作るときに画像の読み込み処理も必要になります。
OpenCVというライブラリを使えば、cv2.imread()によって画像認識をするときの読み込みも行えます。
【サンプルコード】
import cv2
image = cv2.imread('gazou.jpg')
OpenCVを使うにはcv2という表記でインポートします。
括弧内に読み込みたいファイル名を記載します。JPEGやPNGなどさまざまな画像フォーマットの読み込みに対応可能です。
画像内から物体を検出
OpenCVというライブラリでは画像内から特定の物体を検出することもできます。
たとえば、OpenCVには顔の特徴を学習したモデルが用意されており、モデルを使って顔の範囲を数値データとして検出できます。
【サンプルコード】
face = cv2.imread('kao.jpg')
kao_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
faces_detect = kao_cascade.detectMultiScale(face, 1.1, 3)
顔の画像と顔の特徴を学習したモデルを読み込んでから、detectMultiScaleという機能で顔を検出しています。
顔だと予測できる範囲について、左上のx座標、y座標、顔の幅、顔の高さを変数に格納する仕組みです。
最終的に読み込んだ画像について、顔の部分を枠で囲って出力させることも可能です。
PythonでAIを作るときの練習方法
PythonでAIを作るときのプロセスの一部をサンプルコードの例とともにご紹介しました。部分的ですが、AIを作るときのイメージが湧いてきたのではないでしょうか。
サンプルコードを参考にプログラミングをいじることも重要ですが、それだけでは本格的にAIを完成させるレベルには到達できません。実用的なAIを作れるようにするためには実践が不可欠です。
ここではAIエンジニアやデータサイエンティストを目指す方が、本格的なAIを作るために試したい練習方法をご紹介します。
コンペに参加してAIを作る
Pythonで社会に役立つAIを作るのに最適なのがAIコンペです。AIコンペでは、企業や団体から寄せられた課題を解決するAIを作って実用性の高さを競い合います。
一般的に企業や団体が提示するデータセットを利用してAIを作ることができます。車の運転画像などから速度を推論するアルゴリズムを作成する課題がよい例です。
AIコンペでは、社会課題の解決に直結するAIの作成が求められるため、サンプルコードの模倣だけでは得られない実力を習得できるでしょう。
AIコンペには各種プラットフォームを利用することで気軽に参加できます。世界的に知名度の高いKaggleや日本で登録者数が多いSIGNATEなどが有名です。
KaggleとSIGNATEの概要を知りたい方は下記の記事でご確認ください。
Kaggleとは? メリットや使い方、勉強法などを解説!【初心者向けのコンペ一覧も掲載】
SIGNATEとは?始め方や勉強方法、Kaggleとの違いがわかる比較情報を解説!
AIゲームを作る
Pythonで1つのAI作品を作ることでコーディングスキルを磨く方法も検討できます。たとえば、AIアルゴリズムを搭載したゲームを作るのがよい例です。
誰もがルールを理解しやすい将棋ゲームにAIを実装する練習が挙げられます。
将棋に強いAIを作るという目的を掲げれば、試行錯誤を繰り返してAIの作り方を深く習得していけるでしょう。
将棋に限らずオセロのAIアルゴリズムを作ることも検討できます。興味の湧く対戦ゲームを選んでAIを実装してみてください。
PythonでAIを作るのに役立つ本
PythonでAIを作る方法を体系的かつ実践的に学ぶには本も役立ちます。
AIの基礎知識をおさらいしつつ、ライブラリの活用や具体的なソフトの実装を通して、AI開発を学べます。
PythonでAIを作るのに役立ちそうな本をいくつかピックアップしてご紹介するので、独学に向けた手引書を探している方は検討してみてください。
Pythonで学ぶAI開発入門 ライブラリを活用したAIの作り方
Pythonのライブラリを活用してAIを作る方法について解説した本です。
本記事で紹介したscikit-learnやPyTorch、TensorFlowといったライブラリについて紹介しています。
機械学習や画像認識、時系列データ分析、言語処理といったAIプログラミングを学べる内容です。
AIの技術や概念、用語の意味などがわかる内容となっており、PythonでAIを作る前に基礎知識からおさらいするのにも適しているでしょう。
Pythonで学ぶAI開発入門 ライブラリを活用したAIの作り方
強い将棋ソフトの創りかた Pythonで実装するディープラーニング将棋AI
将棋AIのしくみ、強い将棋AIを作る方法を解説した本です。
ディープラーニングの基本、開発ツール、PyTorchなどを学び、Pythonで将棋AIを作るために将棋ライブラリ、ソースコード、モジュールインストール、AIモデルの実装などを学べる内容となっています。
実際に実装した将棋AIを使った対局の流れまで紹介していて処理結果を試せる点が実用的です。
自分で変更を加えてアイデアを試すなどすればAIを作る練習になるでしょう。
強い将棋ソフトの創りかた Pythonで実装するディープラーニング将棋AI
PythonでAIを作るためのサンプルコードを効率的に知るテクニック
AIを作るにはここまで紹介した以外にも必要なサンプルコードを収集する必要もあります。
基本的にPythonでAIを作るときのサンプルコードは書籍やWebサイトなどで確認できます。
ただ、サンプルコードを知るために書籍を購入するのはコストがかかり、Webサイトでは自分が知りたいサンプルコードが見つからないこともあります。
そこでおすすめなのが生成AIツールで質問を投げかけてみることです。
たとえば、「Pythonで対話型AIを作るときのサンプルコードを表示して」というようにプロンプトを入力すると、簡易的なプログラムを表示してくれます。
「#対話パターンを定義」「#チャットボットのインスタンスを作成」「#ユーザーとの対話を開始」など、コーディングの工程まで表示されるため、プログラムの内容を理解しやすいです。
PythonでAIを作るときにコーディングが思い浮かばない場合は、生成AIツールに気軽に質問してみるとよいでしょう。
なお、生成AIツールの回答は必ずしも正しいとは限りません。初心者の方はあくまで理解を補助するためのツールとして利用することをおすすめします。
PythonでAIを作るときに気になるQ&A
PythonでAIを作るための練習方法、本、サンプルコードの調べ方などがわかり、実践できそうな気がしてきたのではないでしょうか。
ただ、PythonでAIを作るにあたって、細かい疑問が残っている方もいるかもしれません。
PythonでAIを作るときによくある疑問についてQ&A形式でお答えします。
Q1.Pythonのコーディング環境を整えるのが難しいときは?
A1.グーグルのColaboratoryがおすすめです。
グーグルのColaboratoryはPythonを記述して無料で試せるコーディングツールです。
GoogleアカウントがあればWebブラウザからアクセスして、すぐにでもコーディングをして実行できます。
本格的にAIを作る前に、まずはPythonの動作から少しずつ試すのに使ってみてはどうでしょう。
Q2.AIを作るのに使えるプログラミング言語はPythonだけ?
A2.Pythonだけではありません。
C言語やJavaScript、R言語などさまざまなプログラミング言語でAIを作ることができます。
ただ、プログラミング言語は習得の難易度やAIを作るときの相性などが異なります。言語によってはAI開発に適したライブラリを利用できないケースも少なくありません。
学習時間を無駄にしないためによく比較して選びましょう。
PythonでAIを作るのが難しい場合はメンタリングも検討
PythonでAIを作るのが難しく、挫折してしまう方もいるでしょう。
自分だけではAIを作れない、AIを作る仕事に就けないと感じた方は、実際にAIやデータサイエンスに詳しい専門家に相談するのがおすすめです。
ビッグデータラボでは、AIの作り方やデータサイエンスに詳しい現役のデータサイエンティストから講習を受けられるメンタリングプログラムを提供しています。
自分でAIを作る、あるいはAIを作る仕事に就くといった目標に向かって、最短で成果を出すための学習スケジュールを提案できます。
無料相談を受け付けているので、AIを作る方法を詳しく知りたい方、AIエンジニアやデータサイエンティストを目指したい方などは、ぜひ一度お気軽にお問い合わせください。
まとめ
今回は、PythonでAIを作るのに必要な基礎知識やライブラリ、サンプルコード例などをご紹介しました。
PythonでAIを作るときは基本的にライブラリを活用しますが、サンプルコードを確認するだけでもライブラリの使い方がわかってきます。
いきなりPythonでAIを作るのが難しいと感じる方は、ひとまずサンプルコードを収集して、部分的でもよいので処理のイメージをつかめないか、探ってみるとよいでしょう。
どうしてもAIを作るのが難しい場合、何から勉強すべきか迷う場合は、専門家からメンタリングを受けることも検討してみてください。
- PythonでAIを作るときに役立つライブラリ、サンプルコード例、練習方法などを紹介!
- PythonでAIを作る前の基礎知識
- Pythonで作るAIの例
- 需要予測システム
- 画像認識システム
- PythonでAIを作るのに役立つライブラリ
- PythonでAIを作る方法のプロセスとサンプルコード例
- ライブラリの呼び出し
- 入力データと出力データの格納
- データセットの読み込み
- 予測モデルの作成
- データを用いた予測の実施と結果の表示
- 画像の読み込み
- 画像内から物体を検出
- PythonでAIを作るときの練習方法
- コンペに参加してAIを作る
- AIゲームを作る
- PythonでAIを作るのに役立つ本
- Pythonで学ぶAI開発入門 ライブラリを活用したAIの作り方
- 強い将棋ソフトの創りかた Pythonで実装するディープラーニング将棋AI
- PythonでAIを作るためのサンプルコードを効率的に知るテクニック
- PythonでAIを作るときに気になるQ&A
- Q1.Pythonのコーディング環境を整えるのが難しいときは?
- Q2.AIを作るのに使えるプログラミング言語はPythonだけ?
- PythonでAIを作るのが難しい場合はメンタリングも検討
- まとめ
- 関連記事・コンテンツ