AIの開発環境について。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
プログラミング言語
- Python、R言語、C言語、Java、MATLABなど
- Pythonは最も人気が高く、汎用性が高い
- スクレイピング、画像認識、Web公開、サーバー環境構築、データ抽出など
- オープンソース
- 文法や書式がシンプルでわかりやすい
- 「ライブラリ」→便利なデータ処理の機能を用途ごとにまとめたツール箱
- シンプルなコードを書くだけで、高度な機能が実装できる
- 数値計算、データ解析、人工知能や機械学習の開発に特化した専門性の高いライブラリが豊富にある
- 「クローリング」・「スクレイピング」→ウェブ上から自動的にデータ収集し、体系的に格納する技術
- 欠損値補填や文字列データ数値化など、データ前処理をサポートする機能がライブラリに提供されている
- ウェブアプリケーションの開発にも使いやすい言語である
- フレームワーク(ウェブアプリケーション開発に活用する便利なテンプレートコードの集合体)が充実している
- ユーザーコミュニティが広い
Pythonのライブラリ
- ライブラリが充実しており、機械学習の実装に有利な周辺技術が整備されている
- 「スクリプト言語」であり、高速のコンパイル言語に比べ、処理速度が劣る
- ライブラリの多くは、C言語やFortranなど高速な言語で記述されている
- Pythonの書きやすさを損なわずに処理の高速化・効率化を図ることができる
- 「標準ライブラリ」→Pythonに最初から付属しており、日付データ・ファイル操作などの汎用的な機能を提供している
- 「外部ライブラリ」→AI、機械学習、ディープラーニング、画像処理などに特化した専門性の高い機能群を提供している
- 「NumPy」→多次元配列データを高速に演算することを得意とするライブラリ
- 「Pandas」→表形式データの処理に特化したライブラリ
- 「Matplotlib」→データを可視化するためのライブラリ、書式設定に対するカスタマイズ性も優れている
- 「scikit-learn」→機械学習モデルの実装の一連をサポートするもの
- 「TensorFlow」・「Keras」・「PyTorch」・「Chainer」→ディープラーニングの実装のためのフレームワークがよく整備されている
開発環境
- 「開発環境」→Pythonの開発バージョンの管理
- 構築フェーズ→特徴量作りやモデル最適化などの試行錯誤
- 実装フェーズ→性能が十分である学習済みモデルを本番環境にローンチ
- 「Jupyter Notebook」→ブラウザで動作するプログラムの対話型実行環境。セル単位でコードを書きセル単位での実行が可能。この仕組みが効率的な試行錯誤を可能に。
→「Anaconda」・「Google Collaboratory」などの専門環境で記述できる - 「テキストエディター」→一般的なPythonコードを記述し、一気に実行する