このページで学ぶこと
AI・機械学習開発で使われるプログラミング言語、主要ライブラリ・フレームワーク、開発ツールをまとめています。G検定では各ツールの名前と用途を覚えておくことが重要です。
プログラミング言語の種類
AI開発ではどんな言語を使うの?
AI・機械学習ではPythonが圧倒的に主流です。Pythonはスクリプト言語に分類され、書いたコードをすぐ実行できるので、試行錯誤が多いAI開発と相性抜群です。
スクリプト言語(インタプリタ型)
- コードを1行ずつ解釈しながら実行
- 書いてすぐ試せる→試行錯誤に向く
- 実行速度はやや遅い
- 例:Python、R、JavaScript
コンパイル言語
- コード全体を事前に機械語に変換してから実行
- 実行速度が速い→本番システムに向く
- コンパイルに時間がかかる
- 例:C、C++、Java、Go
PythonがAI開発で選ばれる理由
- ライブラリが豊富:NumPy、Pandas、scikit-learn、TensorFlow、PyTorch等
- 書きやすい:文法がシンプルで学習コストが低い
- コミュニティが大きい:情報・サンプルコードが豊富
- Jupyter Notebookとの相性:対話的にコードを書いて結果を確認しやすい
データ収集:クローリングとスクレイピング
AI学習用のデータってどうやって集めるの?
Webからデータを集める方法としてクローリングとスクレイピングがあります。似ていますが役割が違います。
クローリング
- Webページのリンクを自動でたどって巡回する
- 大量のページを効率的に発見・収集
- Googleの検索エンジンもクローラーで動作
スクレイピング
- Webページから必要な情報を抽出する
- HTMLを解析して特定のデータを取り出す
- Pythonの「BeautifulSoup」「Scrapy」が代表ツール
注意点
スクレイピングは対象サイトの利用規約やrobots.txtを確認する必要があります。法律面(著作権法・不正アクセス禁止法)にも注意が必要です。
ライブラリ(Library)
ライブラリって何?
よく使う機能をまとめて再利用できるようにしたプログラムの部品集です。ゼロからコードを書くのではなく、ライブラリを呼び出すだけで高度な機能を使えます。AI開発ではPythonのライブラリが特に充実しています。
データ処理ライブラリ
| ライブラリ | 用途 | 特徴 |
| NumPy |
数値計算 |
多次元配列(ndarray)を高速に処理。行列演算の基盤。ほぼ全てのAIライブラリが依存 |
| Pandas |
データ分析・加工 |
DataFrame(表形式データ)を扱う。CSVの読み書き、欠損値処理、集計が簡単 |
| Matplotlib |
グラフ描画 |
折れ線・棒・散布図・ヒストグラム等を作成。データの可視化に必須 |
機械学習ライブラリ
| ライブラリ | 用途 | 特徴 |
| scikit-learn |
機械学習全般 |
分類・回帰・クラスタリング・前処理・評価を網羅。APIが統一的で使いやすい。ディープラーニングには非対応 |
ディープラーニング・フレームワーク
ディープラーニングのフレームワークっていろいろあるけど、何が違うの?
主要なフレームワークを紹介しますね。現在はPyTorchとTensorFlowが2大巨頭です。研究ではPyTorch、企業の本番運用ではTensorFlowが強い傾向がありますが、どちらも幅広く使われています。
| フレームワーク | 開発元 | 特徴 | 現在の状況 |
| TensorFlow |
Google |
大規模本番運用に強い。TensorFlow Liteでモバイル・エッジ対応 |
企業での本番利用が多い |
| Keras |
François Chollet |
TensorFlowの高レベルAPI。コードが短く直感的に書ける |
TensorFlow 2.x に統合済み |
| PyTorch |
Meta(Facebook) |
動的計算グラフでデバッグしやすい。Pythonらしい書き方 |
研究分野でシェア1位。企業利用も増加中 |
| Chainer |
Preferred Networks(日本) |
世界初のDefine-by-Run方式(動的計算グラフ)を導入 |
2019年に開発終了。PyTorchへ移行推奨 |
Define-by-Run とは
Chainerが世界で初めて導入した、実行時にネットワーク構造を動的に構築する方式です。これにより柔軟なモデル定義とデバッグが可能になりました。PyTorchもこの方式を採用しています。対義語はDefine-and-Run(TensorFlow 1.x等。先にグラフを定義してから実行)。
開発ツール・環境
AI開発にはどんなツールを使うの?
AI開発では、コードを書いて結果をすぐ確認できる対話的な環境が重要です。Jupyter Notebookが代表的で、Google Colaboratoryを使えばブラウザだけでGPU付きの開発環境が無料で使えます。
| ツール | 種類 | 特徴 |
| Jupyter Notebook |
対話的開発環境 |
コード・実行結果・説明文をセル単位で混在できるノートブック形式。データ分析・AI開発の標準環境 |
| Anaconda |
パッケージ管理・環境構築 |
Python + 主要ライブラリ(NumPy、Pandas等)をまとめてインストール。環境管理(conda)付き |
| Google Colaboratory |
クラウド開発環境 |
Googleが提供するブラウザ上のJupyter環境。GPUが無料で使える。セットアップ不要 |
| バージョン管理(Git) |
ソースコード管理 |
コードの変更履歴を記録・共有する仕組み。チーム開発に必須。GitHub/GitLabが代表的なホスティングサービス |
Jupyter Notebookの特徴
- セル単位で実行:コードを小さな単位で実行し、すぐ結果を確認できる
- 可視化と一体:グラフや表をコードのすぐ下に表示できる
- ドキュメントと一体:Markdownで説明文を書ける→分析レポートがそのまま作れる
- 共有しやすい:.ipynbファイルとして共有。GitHub上でもレンダリングされる
AI開発のツール全体像
G検定キーポイントまとめ
- スクリプト言語(Python等)は1行ずつ実行。コンパイル言語(C等)は事前に機械語に変換して実行
- クローリングはWebページを自動巡回、スクレイピングはページから情報を抽出
- NumPy=数値計算(配列)、Pandas=データ分析(表)、Matplotlib=グラフ描画
- scikit-learnは機械学習の定番ライブラリ。DLには非対応
- TensorFlow(Google)とPyTorch(Meta)がDLの2大フレームワーク
- KerasはTensorFlowの高レベルAPI。簡潔にDLモデルを記述できる
- Chainer(PFN、日本発)は世界初のDefine-by-Run方式。2019年に開発終了
- Jupyter Notebookはコード・結果・説明をセル単位で扱える対話的開発環境
- AnacondaはPython+主要ライブラリの一括インストール・環境管理ツール
- Google Colaboratoryはブラウザ上のJupyter環境。GPUが無料で使える
- バージョン管理(Git)はコードの変更履歴を管理する仕組み。チーム開発に必須