最終更新日:
ディープラーニングなどのAI開発において、最もよく使われているプログラミング言語はPythonです。Pythonを用いれば比較的簡単に、わかりやすくAI開発の勉強ができます。
また、Pythonは教材や書籍が充実しており、独学にも向いている言語だと言えます。
この記事では、プログラミング初心者を対象に、PythonでAI開発するための勉強方法を3つのステップに分けて紹介していきます。
目次
Pythonとは?
「Python」は、いま最も注目を集めているプログラミング言語と言っても過言ではありません。
従来のC言語などのプログラミング言語に比べて、少ないコード数でシンプルかつ分かりやすいソースコードを作成できるので、プログラミング初心者におすすめの言語です。
また、Pythonの最大の特徴として、「ライブラリの豊富さ」が挙げられます。以下の豊富なライブラリを用いることで、数値計算やデータ分析、ゲームやアプリの開発など幅広い用途でPythonを活用することができます。
なぜAIにPythonなのか
もともとPythonはAI開発のために作られた言語ではありませんでした。では、なぜPythonは特にAI開発に向いているとされるのでしょうか。
Pythonがおすすめの理由
最も大きな理由として、多言語に比べて外部ライブラリが圧倒的に充実していることが挙げられます。それぞれが独立しているライブラリを組み合わせることで、自分の目的にあったAI開発が可能です。
例えば、webアプリケーションとAIを組み合わせたサービスを開発したい場合、Pythonのライブラリを駆使するだけで作業を完結させられます。
また、ライブラリが充実しているということは、競争が厳しく、速いスピードで新たなライブラリの開発が行われているということです。
ライブラリのアップデートも頻繁で、最新の研究の成果がいち早く反映されます。
AI分野で用いられるPython以外の言語
では、AI開発の分野で用いられている他のプログラミング言語をPythonと比較してみましょう。どの言語にもメリットとデメリットがあり、Pythonより優れている点があります。
R
R言語は、統計解析に特化したプログラミング言語です。統計分析を理論的に理解したい人や、データ分析を専門にしたい人におすすめです。
ただし、AIの分野で多くの人はPythonを用いています。統計分析が得意なR言語に対して、Pythonは機械学習やディープラーニングの分野に長けているからです。
C/C++
C言語とそれを拡張したC++は、様々なプログラミング言語の基礎となっている言語です。したがって、PythonのAI関連のライブラリは大部分がC/C++で書かれています。
C言語はアセンブリ言語(機械語)に翻訳してから実行されるため、処理速度が非常に速いという強みがあります。しかし学習難易度は非常に高く、わざわざC/C++でAIを開発するメリットは少ないように感じます。
Julia
Juliaは2012年にオープンソース化された比較的新しいプログラミング言語です。Pythonよりも実行速度が速く、計算処理や数値解析の分野を得意にしています。現在はまだ開発のための情報や学習環境が充実しているとは言えませんが、今後AI分野で活躍が期待される言語です。
おすすめの学習ステップ1:Pythonの学習
まず、Pythonの基本から習得しましょう。条件分岐(if文)やループ処理(for文、while文)といった基本の文法であれば短期間ですべてを学習することが可能です。
もちろん、他のプログラミング言語を学んだことのある人は理解が早いでしょうが、プログラミング言語の学習自体が初めての人でも、Pythonなら簡単に学習できます。
基本文法の勉強方法
私のおすすめの勉強方法は、オンライン講座・youtube動画・本といった様々なアプローチで繰り返し勉強して知識の定着を図るという方法です。以下におすすめの教材を紹介します。
おすすめの学習ステップ2:データ処理の学習
Pythonの基本文法を習得した次は、データ処理に進みましょう。データ処理は「前処理」とも言われるように、AIを用いてデータ分析をする前にそのデータを調査・整形するプロセスです。
そして、これがAI開発において最も重要かつ時間のかかる工程となります。
おすすめの環境
Anacondaという開発環境のパッケージに含まれている「Jupyter Notebook」は、データ処理でよく用いられるツールです。
Jupyter Notebook
Jupyter NotebookはPythonのコードを1つずつ実行しながら動作を確かめることができます。
データ処理のためのコードを書きながら表やグラフを表示させて結果を確かめられるため、AI開発をするうえで下書きのように用いることが可能です。
Udemyの記事を参考にJupyter Notebookをインストールしてみてください。
データ処理とは
データ処理は、AIを用いた分析にかける前に必要な一連のプロセスです。AIはあくまで分析ツールなので、分析以前のデータ処理は人の手によって行われます。そのため、データ処理はがAI開発者の技量や個性の出るところでもあります。
データ処理のおすすめライブラリ
Numpy
Numpyはベクトルや行列の演算といった数値計算のためのライブラリです。中身はC言語(やFortnan)によって実装されているため、大量のデータであっても短時間で処理することができます。
Pandas
Pandasはデータ操作をするうえで便利なライブラリです。データを連結・分割したり、データの平均や標準偏差といった統計的特徴を捉えたりすることが簡単にできます。また、外れ値の処理といったクリーニングの段階でも活躍するでしょう。
Pandasは、以下のようにテーブルデータ(エクセルで用いられるような縦×横の形のデータ)を見やすく表示できます。
matplotlib
matplotlibはグラフ描画ライブラリです。複雑なデータも、グラフに描出することによって傾向や偏り、特徴を把握できるようになります。
データ処理の勉強方法
Numpy, Pandas, Matplotlibの扱い方は、Chainerチュートリアルのコラムが参考になります。
- NumPy 入門 — ディープラーニング入門:Chainer チュートリアル
- Pandas 入門 — ディープラーニング入門:Chainer チュートリアル
- Matplotlib 入門 — ディープラーニング入門:Chainer チュートリアル
また、おすすめの書籍や動画は以下の通りです。
Pythonによるデータ分析入門(Wes McKinney 著)
Data Analysis with Python – Full Course for Beginners
おすすめの学習ステップ3:機械学習、ディープラーニングの実装
いよいよAIを用いた分析へと進みます。機械学習・ディープラーニングのコードを作ることを「モデルを作成する」と言います。
基本的にAI開発は、データ処理をしてAIモデルを作成し、そのモデルの精度が悪ければ原因を分析してまたデータ処理をやり直す、といった工程の繰り返しになります。
おすすめ環境
AIを用いた分析、特に複雑なディープラーニングを動かすためには、高性能なGPUを搭載したPCが必要です。Googleが提供する開発環境「Google Collaboratory」は、Googleが所有しているGPUに無償でアクセスできます。
Google Colaboratory
Google ColaboratoryはJupyter Notebookを基盤としているため、Jupyter Notebookと操作感がほぼ同じです。ただし一部コマンドがJupyter Notebookとは異なります。
また、無料版では1つの実行処理に12時間の時間制限があります。
機械学習とは
機械学習という言葉はAIを用いた分析手法全般のことを指します。分析にかけるデータの特徴や種類に応じたさまざまな手法が考案されています。機械学習の手法は「教師あり学習」「教師なし学習」「強化学習」の三区分に分類されます。
▼機械学習について詳しくはこちら
機械学習のおすすめライブラリ
scikit-learn
scikit-learnは、さまざまな機械学習アルゴリズムを短く簡潔なコードで実装できるライブラリです。大抵の機械学習アルゴリズムはscikit-learnに収録されています。また、機械学習の勉強用のサンプルデータが付属しているため、機械学習初心者にもおすすめです。
下のチートシートを参考にすることで、膨大に実装されているscikit-learnの機械学習アルゴリズムのうち、どの手法を選択するべきかを自分の持っているデータと照らし合わせて決められます。
OpenAI Gym
OpenAI Gymは、非営利団体OpenAIの開発したオープンソースの強化学習ライブラリです。倒立振子の制御やロボット制御など、様々な強化学習の問題のシミュレーターが用意されています。
ディープラーニングとは
ディープラーニングは、層を重ねたニューラルネットワークによる機械学習手法です。特に大量の時系列データや画像・音声のビッグデータを分析することに適しています。
▼ディープラーニングについて詳しくはこちら
ディープラーニングのおすすめライブラリ
Tensorflow/Keras
Kerasは基本的なニューラルネットワークやCNN、RNNをサポートしているライブラリです。現在KerasはGoogleが開発したTensorflow内に統合されています。Tensorflowはディープラーニングを含めた機械学習サービスで活用されているライブラリです。
Tensorflowの公式チュートリアルでは、Google Colaboratory 上でディープラーニングの実装を簡単に学習できます。例えば、MNISTという手書き文字のデータセットを用いて、手書き文字を認識するプログラムを作成することが可能です。
Pytorch/Chainer
Chainerは、Preferred Networksが開発した日本発のオープンソースライブラリです。基本的な機械学習からニューラルネットワークまで、直感的かつシンプルに実装できます。
Chainer公式サイトのチュートリアルは、PythonでAI開発をするうえで勉強するべきことが体系的にまとまっています。データの前処理からAIの実装まで、AI開発の一連の流れを学習するのに最適です。
しかし、2019年12月にPreferred NetworksはChainerの開発を終了し、PyTorchに研究基盤を順次移行することを発表しました。
PyTorchはFacebook主導で開発が進められているディープラーニングライブラリです。Chainerの合流もあってPyTorchを用いたAIサービスが急速に普及した結果、PytorchとTensorflowはディープラーニングにおける二大フレームワークと言われています。
ディープラーニングの勉強方法
この分野はかなり専門的な内容であるため、日本語の教材が充実していないという問題があります。日本語の教材でおすすめのものは以下の通りです。
Able Programming氏の「初めて学ぶ深層学習」シリーズ
scikit-learn、Keras、TensorFlowによる実践機械学習(Aurélien Géron 著)
TensorflowやPyTorchは「Tensorの演算」という概念を理解する必要があるため、やや習得が困難です。また、もとから用意されているツールをカスタマイズしたいときには、かなり高度な数学の理解が要求されます。
PythonによるAI開発を一通り理解したならば、数学や統計といったAIの理論的な部分に目を向けていくとさらにその理解が深まることでしょう。
オンライン講座の紹介
Aidemy
Aidemyは個人・法人に向けたAI・機械学習講座を提供しています。Pythonの未経験者であっても、カリキュラムに沿った学習を続けることでAIを用いたデータ分析、Webアプリケーションの実装までを学ぶことができます。
Udemy
Udemyは世界最大級のオンライン学習プラットフォームです。一流の講師陣による有料講座が充実していることに定評があります。動画で隙間時間に勉強できるため、まとまった勉強時間を確保するのが難しい社会人に人気のサービスです。
Coursera
Courseraは、無料で世界中の大学の講座を受けられるサービスです。特に人気の高い講座は、スタンフォード大学のAndrew Ng教授による「機械学習講座」です。
この講座では、60時間(11週間)で機械学習の基礎からニューラルネットワークの仕組み、その応用まで概観することが可能です。少々内容は高度ですが、AIの理論的な仕組みを余すことなくじっくりと学習できます。
KIKAGAKU
KIKAGAKUはAI・機械学習のオンライン講座を無料で提供しています。「キカガク流 脱ブラックボックスコース」では、プロの講師による充実した動画授業によって数学とプログラミングの観点からAIの理解を深められます。
▼KIKAGAKUについて詳しくはこちら
youtube
Able Programming氏の「機械学習講座」
Python for Data Science – Course for Beginners (Learn Python, Pandas, NumPy, Matplotlib)
まとめ
PythonによるAI開発はたくさんの教材があるため、学習環境が充実しています。オンライン講座や動画、書籍を活用することで、独学でもAI開発を学習することが十分可能です。
Pythonは独学に向いているプログラミング言語です。毎日コツコツ積み重ねることで、確実に知識は定着していきます。今回の記事を参考にして、ぜひ自分なりの勉強方法でAI開発の習得を目指してみてください。