今回は、これからPythonを勉強しようとしている人や、Pythonをインストールしたはいいけど、何からスタートしていいのか分からない人向けに、学習に必要なライブラリをご紹介します。
1.ライブラリとは
そもそもライブラリとは何だろうかと思う人もいるかと思います。
Pythonにおけるライブラリとは特定の処理をプログラムで設計し、パッケージ化することで、再利用可能なモジュールを作成することができるものです。
実際、すべての処理内容を1からコーディングするのって、かなり骨の折れる作業ですよね。Pythonのいいところは、圧倒的ライブラリが多いところです。
ライブラリが多いと何がいいかというと、書くコードが少なくて済むところです。そのため初心者からでも入りやすいプログラミング言語と言えるでしょう。
実際に、ここ最近はPythonの利用者も増えていますし、機械学習に最適な言語としてPythonは注目言語として挙げられています。
では、ライブラリの紹介に行きましょう。
2. 使い方をマスターするべきライブラリ
2.1 Numpy
Numpyはベクトルや行列演算を行うためのライブラリです。行列・内積・ベクトル・フーリエ変換など様々な場面で使用されます。Numpyの特徴として、行列計算が異常に早く簡単mにできてしまうところです。Numpyは機械学習プログラミングやAIプログラミングでは必須ライブラリと言っていいほど、頻繁に使用されるライブラリです、マスターして損はありません。
2.2 Scipy
Scipyは信号処理や統計など科学計算用のライブラリです。scipyの機能として配列計算や行列計算などがあるため、Numpyと比較されることが多いです。ちなみにNumpyと比較した時のScipyの違いは、Scipyは配列や行列計算に加え、信号処理や統計処理などの高度な科学計算に特化したライブラリであることです。
もしかしたらNumpyでカバーできない範囲のことを実行した場合、scipyを使用するとコードが少なくて済むのかもしれません。
2.3 Pandas
Pandasは、データフレームでデータを表示・扱うような機能があることが特徴です。簡単にいうと、Excelのシートをイメージしてくれるといいです。Excelのように格子状の表に色々なデータ型を簡単に作成することができるライブラリです。
またデータを表形式に表示してくれるだけでなく、データの整列、データ同士の結合、分割、欠損データの補完、データのグラフ化など様々な操作を行うことができます。その他にも数表や時系列データの操作するために、Pandasのデータ構造を使用されることが多いです。
参照:https://ja.wikipedia.org/wiki/Pandas
2.4 matplotlib
Pythonには色々なグラフを描画するライブラリが存在します。先ほど紹介したPandasにも表からグラフにするツールが備わっています。
matplotlibの特徴は、3次元グラフや画像データなど様々なグラフ形式に対応している点です。
3.使えて損はないライブラリ
3.1 os
osモジュールはosに関連した様々な機能を使用することができるモジュールです。主にファイルの操作やディレクトリの移動、作成、結合、削除ができます。さらに現在のpathやファイルやフォルダのpathを取得も可能です。
3.2 csv
こちらもpythonの標準モジュールで、主にscvファイルの読み込み、書き込みなど行うためのモジュールになります。
csvファイルは一般的なテキストファイルとは違い、カンマ区切りのテキストファイルですので、テキストファイルとして読み込むと、テキストをカンマごとに自分で分割して処理する手間が発生します。そこで、scvモジュールを使用すると、簡単にscvファイルの読み込みや書き込みを行うことができます。
4. 【番外編】初心者向け 機械学習ライブラリ
pythonを勉強し始めたなら、絶対に機械学習を勉強しておいたほうがいいです。これは間違いなく!今、どの産業にもAIという大きな波が到来しています。
今、自分の職場や周囲には、AIが浸透していないとは言っても、必ずこれから数年でAIは私たちの生活や職場になくてはならないテクノロジーになってきます。
みなさんは、AIを勉強して操る人になりますか、それともAIに操られる人になりますか。
ここからは機械学習を勉強してみたいという人に、必ずインストールしておくべき機械学習ライブラリを紹介します。
※おそらく下記のフレームワーク(ライブラリ)のどれか一つをマスターして使いこなせるといいですよ。全部使いこなせても損はしませんが、自分がやりたい・作りたいものにあったフレームワーク選びをするとより短時間で機械学習(Deep learning)を習得することができます。
4.1 Tensorflow
Tensorflowは2015年11月にGoogleが開発し、オープンソースで公開されている機械学習に用いるためのソフトウェアライブラリです。TensorflowはGithubを代表する機械学習リポジトリとしても知られています。
Tensorflowの特徴は、データの読み込み、処理、計算、出力などの処理にテンソルを使用している点です。
Tendorflowの特徴
テンソルを使用して処理を実行
Define and Run : ネットワーク固定
計算グラフ(ニューラルネットワークの構造)の構築してからプログラムの実行を行う。
現在最も使用されているフレームワーク。
4.2 keras
kerasはPythonで書かれたオープンソースのニューラルネットワークライブラリです。ディープニューラルネットワークを用いた迅速な実験を可能にするように設計されており、最小限・モジュール式・拡張可能であることに重点が置かれています。
要するに、機械学習で必要となる「アルゴリズム」の多くを実装しているのがkearsになります。
kerasの特徴
比較的、少ないコードで機械学習が実行できる
アルゴリズム・数学的論理の部分があらかじめコーディングされている
Define and Run : ネットワーク固定
計算グラフ(ニューラルネットワークの構築)の構築をしてから、プログラムの実行を行う。
4.3 Chainer
Chainerはディープラーニングの研究と開発を行うスタートアップ企業「Preferred Networks (PFN)」が開発した。プログラミング言語であるpythonで深層学習のプログラムを実装できるフレームワークです。
Chainerはバックプロパゲーションに必要なデータ構造をプログラムの実行時に動的に生成する特徴があります。複雑なニューラルネットワークの構造を必要とする深層学習で主に使用される。
Chainerの特徴
Deep learningのモデル・実行コードを直感的に記述できるPythonのフレームワーク
Define by Run : ネットワークは順伝播後に確定し学習する
計算グラフ(ニューラルネットワークの構造)の構築をデータを実行しながら行う。
4.4 Chainerのディープラーニング入門
Chainerからとんでもないツールが出ましたね。なんとChainerを使って無料でディープラーニングを学ぶことができるチュートリアルの提供を開始しました。
参照:https://tutorials.chainer.org/ja/
このチュートリアルで何が学べるかというと、数学の基礎(線形代数や統計など)や、Pythonプログラミングの知識、機械学習・ディープラーニングの理論や基礎・コーディングを学ぶことができます。
これはなんとも素晴らしい。。。
ヘタに参考書を購入するより、Chainerのサイトを使用したほうが、pythonから機械学習の基礎を学ぶことができるかもしれないですね。
今度このサイトで実際に演習してみなさんと情報共有したいと思います。
5. 最後に
今回は初心者向けに、pythonを必要なライブラリやモジュールを紹介し、さらにこれから機械学習を勉強したい人向けに色々なフレームワークを紹介しました。
少しでもみなさんの役に立てればと思います。
コメント