テクノロジー

Pythonの機械学習を学びたい君へ。おすすめの入門用サイト・本まとめ

Pythonの機械学習を学びたい君へ。おすすめの入門用サイト・本まとめ

今や、「機械学習」や「人工知能」という単語はプログラマではない一般の人でも知られていますよね。プログラムの経験があまりない人には、核融合や最先端のロボットと同じように世界最先端の研究所でしか作れないような印象があるかもしれません。

機械学習は画像認識や自動翻訳、自動運転など、10年前までは想像もできなかったようなことができるので、難しいものというイメージになってしまいがちです。ですが実際は、本屋に行けばたくさんの機械学習に関する書籍が並び、インターネットには機械学習のサンプルコードがたくさん散らばっています。

機械学習は、プログラミング初心者でもしっかりと勉強すれば作成することができる最先端技術です。まずは、機械学習の分野で最も人気が高いPythonについて勉強し、さらにPythonで機械学習の機能を追加する「ライブラリ」について学びましょう。

それでは今回は、Pythonによる機械学習の入門方法について解説します。

Pythonとは

プログラミングのイメージ

Pythonは1991年に登場した「きれいでシンプル」がウリのプログラミング言語です。プログラムがシンプルできれいに書けるのでPythonでのプログラムの作成は容易ですし、他の人が読みやすいコードになります。

では、少し具体例を挙げましょう。プログラミング入門者が初めて作るプログラムと言えば、「Hello, world」と表示されるものです。C言語を初めとした他の言語では、初心者にはよくわからないけど書かなくてはいけない“おまじない”と呼ばれるコードを何行も書く必要があ流ので、大変ですよね。しかしPythonならprint(“Hello, world”)と書くだけで済みます。

またPythonが読みやすいということは、プログラムの読み書きのしやすさだけでなく、書き間違いによるバグが減ることで安全性も高めます。これは案外無視できない要素で、自作したプログラムを動かしたらなぜかパソコンが動かなくなってしまったなんてトラブルが起こる可能性が大きく減るでしょう。

さらに、Pythonの大きな特徴の一つに「動的型付け」があります。ここではプログラムを作成すると、変数に値を代入するというシチュエーションが発生したとしましょう。

動的型付けではない「静的型付け」の場合、その変数には数値・文字・日付いったい何が何個入る予定なのかをいちいち宣言しなければなりません。これに対して、動的型付けでは、そういった宣言が不要で変数に好きなものを何個でも入れられます。
「静的型付け」と「動的型付け」のどちらの方が良いかについては様々な議論があり、結局のところ使用者の好みによりますが、Pythonは動的型付けによって、とても柔軟にプログラムを書けます。

機械学習にPythonが使われる理由とは

シンプルなイメージ
Pythonが生まれて約30年が経ちますが、今ほどの人気が出たのはここ5~6年です。人気のキッカケはPythonにたくさんの機械学習関連のライブラリが追加されたことでした。

ライブラリとはPythonの標準機能にはない機能を追加する拡張キットのようなもので、機械学習関連のライブラリを追加するPythonにて機械学習のプラグラムが実行できるようになります。

機械学習のプログラムは複雑な計算をしなければいけないため、プログラムも複雑なものになってしまいますよね。このため、少しでも読み書きしやすいプログラム言語を探したところPythonが適任だったので、Pythonに機械学習のライブラリが追加されました。

要するに、Pythonの文法のシンプルさとそれに伴う機械学習ライブラリの豊富さが、機械学習にPythonが使われる理由だと言えます。

実際にPythonで機械学習をやるときに役立つライブラリ

ライブラリのイメージ
Pythonで機械学習をする場合、特に有名なライブラリがTensorFlow, Keras, Pytorch, scikit-learnの4つです。以下にそれぞれの特徴をまとめておきます。

TensorFlow

TensorFlowはGoogleが開発した機械学習ライブラリで、機械学習の中でも特にディープラーニングの作成に向いています。また、ディープラーニングを応用した画像処理、音声認識、自動翻訳など実用的な機能も公開され、TensorFlowを利用したアプリを作成することも比較的容易。そのためディープラーニングを学びたければTensorFlowを利用するのがオススメです。

Keras

KerasはTensorFlowを始めとしたいくつかのライブラリ上で動作するライブラリです。Keras単体では独立しせず、TensorFlowの機能の一部のような立ち位置です。Kerasはディープラーニングを可能な限りシンプルに記述できるため、ディープラーニング入門者にオススメです。難しいと思っていたディープラーニングがわずかな行数で記述できます。

Pytorch

PytorchはFacebookが開発した機械学習ライブラリで、特に自然言語処理の分野が得意です。自然言語処理とは、例えば自動翻訳に必要な言葉の理解を数値に置き換えて解釈する機能のことです。最近は大学などの研究者がPytorchを利用が多くなり、機械学習の中でも特に最先端の部分について学びたい場合はPytorchを選びましょう。

scikit-learn

scikit-learnはディープラーニングだけでなく、様々な機械学習を試したい場合にオススメです。サポートベクトルマシンやランダムフォレストといった手法やその基礎になる統計・データ解析の分野についても豊富な機能が備わっているので、scikit-learnをマスターすればデータサイエンティストになれるでしょう。ディープラーニングを中心に勉強したい場合にもデータサイエンスは必須になるので、scikit-learnはある程度使えるようになる必要があります。

【入門用】Pythonの機械学習を学ぶのにおすすめのサイト

Webサイトのイメージ

では、機械学習を学ぶのにおすすめのサイトについて解説しましょう。

TensorFlow 公式サイト

Pythonの機械学習を学ぶ際、最もオススメのサイトはTensorFlow公式サイトのチュートリアルです。TensorFlowを初めて使用する人向けにTensorFlowや機械学習について非常に丁寧に解説されているので、チュートリアルに従って読み進めていくだけで機械学習を実行することができます。

また、チュートリアルはPython環境のないパソコン端末でもブラウザ上で実行できるので、機械学習にちょっと興味があるなという方はぜひ試してみましょう。

PyQ

もう一つオススメのサイトは「PyQ」です。有料のサイトですが、機械学習だけでなくPythonの基礎から非常に詳しい解説が読め、解説に合わせた実践問題を解くこともできます。ライトプランなら毎月3000円程度で受講することができるので、Python初心者は毎月1冊参考書を買う代わりにPyQを受講することを強くオススメします。

会社員などでも空き時間をしっかりPyQに費やせば3ヶ月程度で十分な力をつけることができるのでコスパも非常に高い教材です。まずはPyQでPythonの基礎から機械学習までを学び、専門的な分野に到達したら書籍に移るとよいでしょう。

Pythonの機械学習を学ぶのにおすすめの書籍

本のイメージ
ではPythonの機械学習を学ぶのにおすすめの書籍を2点紹介します。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(オライリー・ジャパン)

まずは「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(オライリー・ジャパン)」です。タイトルの通り、機械学習ライブラリを使用せずディープラーニングをゼロから作成するので、ディープラーニングの構造について詳しく理解できます。

ただし、ディープラーニングの理論を中心とした話になるため、ディープラーニングをどんどん使いたいという人にとっては遠回りになるのでオススメしません。ディープラーニングの理屈を理解したい方や、ディープラーニングについての理解を深め、より高いレベルのディープラーニング作成を目指す方にはこの書籍が非常に役立つでしょう。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 | 斎藤 康毅 |本 | 通販 | Amazon
Amazonで斎藤 康毅のゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装。アマゾンならポイント還元本が多数。斎藤 康毅作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装もアマゾン配送商品…

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎(オライリー・ジャパン)

2点目は「Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎(オライリー・ジャパン)」です。こちらは先ほどの書籍とは異なり、機械学習の実装方法を中心とした内容になります。ディープラーニングを実践したいという方はこの書籍を読みましょう。

Amazon.co.jp: Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 : Andreas C. Muller, Sarah Guido, 中田 秀基: 本
Amazon.co.jp: Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 : Andreas C. Muller, Sarah Guido, 中田 秀基: 本

今回紹介した書籍は2点ともオライリー・ジャパンのものでした。オライリー・ジャパンのプログラミング関連の書籍は非常に質がよく、オライリー・ジャパンの書籍でしか得られない情報が載っていることが多々あります。書籍自体が分厚く、値段も少し高めですが、書籍の購入で迷った際にはオライリー・ジャパンのものを選ぶと間違いがありません。

まとめ

さて、今回はPythonや機械学習、またそれらの学習サイトと書籍について解説しました。ここまでの内容をまとめると、下記のようになります。

  • Pythonは「きれいでシンプル」な言語
  • Pythonで機械学習をするには「TensorFlow, Keras, Pytorch, scikit-learn」を活用する
  • TensorFlow公式サイトのチュートリアルで機械学習を学ぶのがオススメ
  • プログラミング初心者はまずはPyQで学ぼう
  • ディープラーニングの理論について学ぶなら「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(オライリー・ジャパン)」機械学習の実践について学ぶなら「Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎(オライリー・ジャパン)」など、オライリー・ジャパンの書籍は質が高いのでオススメ

ここまで読めば、あとはPythonで機械学習を始めるだけです!まずはTensorFlowのチュートリアルで機械学習の世界を体感するのも良いでしょう。

とにかくたくさんのプログラムを書いてみることが重要です。理論や基礎は後から付いてくるので、今すぐ機械学習のプログラムを書き始めましょう!

トップへ戻る
タイトルとURLをコピーしました