AI開発のはじめかた
作成日:2021/01/17
AI 開発のはじめかた
ディープラーニングを中心とした機械学習が実用域に入りつつあり、さまざまな分野でAIを活用した製品やシステムが登場し始めています。
このようなAI開発では、さまざまなプログラミング言語が使われていますが、いま最も人気があるのが Python です。
今回は、Python を使ったAI開発のはじめかたを紹介します。
Python とは
今から30年ほど前にリリースされた Python は、高い実用性とともにプログラムの「読みやすさ」、「わかりやすさ」が重視されたプログラミング言語です。
さらに拡張性も高いことからさまざまな用途・目的で使われるようになりました。
「読みやすさ」、「わかりやすさ」を実現するため Python の文法はシンプルです。
裏を返すと、プログラミングとは切っても切り離せない「バグ」を作りにくく、信頼性の高いプログラムが作りやすい特徴を持っています。
動画共有サイトの「 YouTube 」やSNS「 Instagram 」といった、著名なサービスでも使われていることは、その実用性と信頼性の高さを裏付けていると言えるでしょう。
また、Python 本体、そして周辺のライブラリの多くがオープンソースで使えることも魅力の一つでしょう。
つまり、当初はコストを掛けずに学習や開発ができるハードルの低さも Python の人気の理由だと思います。
機械学習と Python
機械学習では行列式などの数値計算を多用しますが、実は Python 自体はあまり高速に数値計算を行うことができません。
しかし、特徴の一つである高い拡張性を生かして、高速なC言語などで作られた数値計算ライブラリを使うことができます。
「わかりやすさ」からあまりプログラミングが得意ではない研究者などが Python を多用するようになったため、ライブラリも充実し、今では科学技術計算や機械学習のライブラリが最も充実したプログラミング言語と言われています。
代表的な機械学習関連のライブラリ(いずれもオープンソース)
- NumPy( https://numpy.org/ )
行列やベクトルなど多次元配列を高速で実行できるライブラリ。
C言語で作られている。
- SciPy( https://scipy.org/ )
数値解析ライブラリ。
Numpy をベースに作られ、統計や最適化、積分、線形代数、フーリエ変換などのモジュールが提供されている。
- scikit-learn( https://scikit-learn.org/ )
Python の機械学習ライブラリ。
さまざまな機械学習アルゴリズムが実装されている。
- TensorFlow( https://www.tensorflow.org/ )
Googleが開発した機械学習のライブラリ。
Python をはじめ、さまざまなプログラミング言語で使える。
- PyTorch( https://pytorch.org/ )
Facebook が開発した Python のディープラーニングライブラリ。
GPU を使った演算が可能。
- Matplotlib
Python と NumPy のためのグラフ描画ライブラリ。
また、NVIDIA 製 GPU を Python から使うソフトウエアとして、NVIDIA から CUDA(実行環境)と cuDNN(ディープラーニング用ライブラリ)が提供されており、GPU を使った高性能の機械学習システムを構築することもできます。
Python による AI 開発環境
このように Python は機械学習のシステムを開発するライブラリが充実していますが、Python そしてこれらのライブラリを容易に使うことができる開発環境を簡単に構築できるのが「 Anaconda( https://www.anaconda.com/ )」です。
Anaconda を使って開発環境を構築すれば、上記のような機械学習に関するツールやライブラリがあらかじめインストールされて、すぐに使うことができます。
また、機械学習だけではありませんが、プログラミング環境として Microsoft がオープンソースで提供しているコードエディター Visual Studio Code( https://azure.microsoft.com/ja-jp/products/visual-studio-code/ )もおすすめです。
「 機械学習 」学習のヒント
Python 、そして機械学習のプログラミングについては、それぞれ本が書けるほどのレベルなので本稿では触れませんが、最近ではインターネットで Python や Python を使った機械学習が学べるコンテンツも増えてきていますので、以下に紹介します。
Python 学習のコンテンツ
- Python.jp<Python Japan> ( https://www.python.jp/index.html )
日本における Python の総本山的存在。
Python の公式ドキュメントの日本語訳や、Python 環境の構築方法、入門講座など Python 学習の入り口として充実したコンテンツがそろっている。
- 京都大学 学術情報リポジトリ KURENAI
「 プログラミング演習 Python 2021 」( https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/265459/1/Version2021_10_08_01.pdf )
「 プログラミング演習 Python 2021 コラム編 」( https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/265459/2/Version2021_10_08_02.pdf )
京都大学が全学共通科目として実施しているプログラミング演習( Python )の教科書として作られたものです。
Python プログラミングの入門書として非常にわかりやすく書かれています。
Python を使った機械学習のコンテンツ
- 東京工業大学 情報理工学院
「機械学習帳」( https://chokkan.github.io/mlnote/ )
東京工業大学情報理工学院の機械学習の講義で使われた講義ノートです。
機械学習の理論とともに、NumPy、 Matplotlib、 scikit-learn、 scipy、 PyTorch などのライブラリを使って、Python による機械学習の実装の基礎を学ぶことができます。
いかがでしょうか。
この他にも、さまざまなPython をつかった機械学習の書籍やコンテンツは数多く提供されています。
冒頭にも述べたとおり、Python による機械学習のハードルは大変低くなっています。
今回紹介したコンテンツなどを参考に、まずは簡単なモデルから始めてみてはいかがでしょうか。
横河レンタ・リースでは、機械学習システムの開発に最適なAIサーバーのレンタルを始めました。
比較的低廉なコストで高性能の GPU を搭載したサーバーをご提供しています。
本格的に機械学習システムを開発するフェーズに入られる際には、ぜひご検討ください。