開発環境を整える

言語・ライブラリ・ツール・フレームワーク
このページで学ぶこと

AI・機械学習開発で使われるプログラミング言語、主要ライブラリ・フレームワーク、開発ツールをまとめています。G検定では各ツールの名前と用途を覚えておくことが重要です。

プログラミング言語の種類
AI開発ではどんな言語を使うの?
AI・機械学習ではPythonが圧倒的に主流です。Pythonはスクリプト言語に分類され、書いたコードをすぐ実行できるので、試行錯誤が多いAI開発と相性抜群です。
スクリプト言語(インタプリタ型)
  • コードを1行ずつ解釈しながら実行
  • 書いてすぐ試せる→試行錯誤に向く
  • 実行速度はやや遅い
  • 例:Python、R、JavaScript
コンパイル言語
  • コード全体を事前に機械語に変換してから実行
  • 実行速度が速い→本番システムに向く
  • コンパイルに時間がかかる
  • 例:C、C++、Java、Go
PythonがAI開発で選ばれる理由
データ収集:クローリングとスクレイピング
AI学習用のデータってどうやって集めるの?
Webからデータを集める方法としてクローリングスクレイピングがあります。似ていますが役割が違います。
クローリング
  • Webページのリンクを自動でたどって巡回する
  • 大量のページを効率的に発見・収集
  • Googleの検索エンジンもクローラーで動作
スクレイピング
  • Webページから必要な情報を抽出する
  • HTMLを解析して特定のデータを取り出す
  • Pythonの「BeautifulSoup」「Scrapy」が代表ツール
注意点

スクレイピングは対象サイトの利用規約robots.txtを確認する必要があります。法律面(著作権法・不正アクセス禁止法)にも注意が必要です。

ライブラリ(Library)
ライブラリって何?
よく使う機能をまとめて再利用できるようにしたプログラムの部品集です。ゼロからコードを書くのではなく、ライブラリを呼び出すだけで高度な機能を使えます。AI開発ではPythonのライブラリが特に充実しています。
データ処理ライブラリ
ライブラリ用途特徴
NumPy 数値計算 多次元配列(ndarray)を高速に処理。行列演算の基盤。ほぼ全てのAIライブラリが依存
Pandas データ分析・加工 DataFrame(表形式データ)を扱う。CSVの読み書き、欠損値処理、集計が簡単
Matplotlib グラフ描画 折れ線・棒・散布図・ヒストグラム等を作成。データの可視化に必須
機械学習ライブラリ
ライブラリ用途特徴
scikit-learn 機械学習全般 分類・回帰・クラスタリング・前処理・評価を網羅。APIが統一的で使いやすい。ディープラーニングには非対応
ディープラーニング・フレームワーク
ディープラーニングのフレームワークっていろいろあるけど、何が違うの?
主要なフレームワークを紹介しますね。現在はPyTorchTensorFlowが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等。先にグラフを定義してから実行)。

NumPy 2005 scikit-learn 2007 Chainer Define-by-Run初 2015 TensorFlow Google 2015 Keras 2015 PyTorch Meta 2016 Chainer終了 2019
開発ツール・環境
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の特徴
AI開発のツール全体像
データ処理 NumPy Pandas Matplotlib 機械学習 scikit-learn 深層学習 TensorFlow/Keras PyTorch 開発環境 Jupyter Notebook Anaconda Google Colab 管理 Git / GitHub Docker
G検定キーポイントまとめ