初心者からでも深層学習のプログラムを動かせるようになるUdemyの講座
AI(人工知能)やDeeplearning(深層学習)は、人間の仕事を楽にしてくれる非常に便利なツールです。
AlphaGOという囲碁のプログラムが人間の棋士に勝ったことから非常に大きな話題となり、現在AIブームが来ています。
ニュースにもAIの情報がたくさん流れているため、関心を持っている人は多いでしょう。
でも、これまでプログラミングをしたことがないと、ちょっといじってみようと思っても、難しいでしょう。
ただ、最近はPythonのライブラリにAI関連のものが充実してきているので、どんなことをやればいいかがちょっとでもわかれば比較的簡単にプログラムを動かすところまではいけます。
そんな「AIのプログラミング、特に流行りのDeepLearning(深層学習)に関心はある」けれど、プログラミングに自信がない、あるいは過去挫折したことがある、というような人にうってつけの講座が、Udemyにあります。
それが、「初心者必見!Pythonでニューラルネット・深層学習を完全攻略」です。
「初心者必見!Pythonでニューラルネット・ 深層学習を完全攻略」を受けてみた中身の紹介と感想
この講座は、大きく2部構成です。
Python入門、人工知能入門です。
Python入門:環境整備から、関数・オブジェクト指向の考え方まで
Python入門では、Pythonというプログラミング言語が一体何なのか?という初歩の初歩から、オブジェクト指向のプログラミングの考え方まで学ぶことができます。
ここで、一通り、Pythonのプログラミングで考えるコンセプトを抑えることで機械学習のプログラミングの理解もサクサク進めることができます。
プログラミング初心者は、ここをじっくり学習して、「オブジェクト」や「インスタンス」と言った概念を取得してから次に進んだほうがわかりやすいでしょう。
定番のAnaconda(アナコンダ)のインストール
Anacondaはデータ分析や機械学習のプログラミングをするのに使う、ライブラリやツールがまとまっているパッケージです。
このAnacondaがあるおかげで、初心者でも自分でライブラリを探して、インストールして、設定して、、、
という複雑なステップを省略することができます。データ分析や機械学習の学習に専念できるとってもありがたい存在です。
とはいえ、Anacondaはあまりに有名なので知っている人も多いかもしれません。
そういう人は、スキップして大丈夫です。
Spyder(スパイダー)を使ったプログラミング
Anacondaには、いくつかPythonの開発環境が含まれています。
今回は、.pyファイルを使うことができ、かつIPythonというコンソール型の環境を含んでいるSpyderを使って講座が進みます。
データ分析だとJupyter notebook(ジュピターノートブック)を使うことも多いですが、これだと.pyのファイルを生成するのに、一手間かかります。
そのため今回は統合環境として簡単に使えるSpyderを用いています。
Pythonの基本的な処理の学習
ニューラルネットや深層学習をプログラミングする前に、まずはPythonの基本的な使い方をマスターします。
ここで学ぶ処理は非常にシンプルなものからスタートして、簡単な課題をこなしていきます。
Pythonのプログラミングについて説明する「説明編」と、
実際にPythonのプログラムを作り動かしてみる「実践編」で構成されています。
説明編と実践編の構成からもわかるように、1つ1つの項目を概念の説明から、実際に動かすところまでかなり丁寧に進んでいきます。
難しかったな、と思ったら、何が難しかったのかを簡単にメモして、もう一度振り返って見るのがおすすめです。
ポイントさえ絞れば理解が早くなるように、講義の構成もできています。
扱う内容は、
変数、繰り返し、分岐、
といった、ごく基本的な内容から、
データ構造、関数、モジュール、オブジェクト
といった、ニューラルネットや深層学習のプログラミングでたくさん使う内容までカバーしています。
特に後半のデータ構造・関数・モジュール・オブジェクトは、
自信がない人は、繰り返し見て理解をしていったほうがいいでしょう。
どの講座もサンプルコードも複数用意されています。そのため、とりあえず実行することができ、Pythonの学習を楽しくすすめることができます。
人工知能入門:機械学習と深層学習と、Tensorflow+Kerasのプログラミングまで
いよいよ、人工知能と、機械学習、深層学習(ディープラーニング)とステップバイステップで学習していきます。
人工知能の概念から、機械学習とは何かという話の説明を一通りした後に、実際のプログラミングに入っていきます。
なぜ、深層学習(ディープラーニング)がこれだけ盛り上がっているのか、過去にどのような経緯があったのか、というのを理解することで、より一層、今のAIブームが何故起きているのかがわかるでしょう。
機械学習:教師あり学習、教師なし学習、強化学習について
ニューラルネットの概念とパーセプロトロン
ニューラルネットに使われる数学の演算を実際にやってみる
ニューラルネットを構成するパーセプロトロンの中にはベクトル演算がたくさん出てきました。
「ベクトル」や「行列」というと、高校数学で出てきて、概念がよくわからず苦手になったという人も多いでしょう。
理系で物理などを扱っていると、非常に便利な概念です。
機械学習ではこのベクトル演算をたくさん行います。
ここでも概念の説明の後に、サンプルコード付きで、実際の処理を実行してみます。
数字がたくさん実行されますが、その処理を数式で表してみるとどうなるのか書きながら追ってみたほうが、概念の理解は進むかもしれません。
実践編でよくわからなかったら、その数式をもとに、説明編を振り返ってみるのが良いでしょう。
いよいよTensorflow+Kerasで深層学習をプログラミングする
TensorflowとKerasはAnacondaの初期状態で使うことはできません。
そのため、パッケージのインストールが必要です。これも丁寧に実施します。
定番のあやめの分類でニューラルネットを試してみる
Scikit-learnという機械学習ライブラリに、サンプルデータとして「あやめ(Iris)」のデータが入っています。
そのため、「あやめ(Iris)」の特徴量をデータ処理して、あやめの分類をする、という課題が機械学習の学習ではよく出てきます。
ここでは、あやめの分類をTensorflowとKerasを使って実行してみます。
データを表示したり、処理してみたりと、だんだん裏側で何が行われているのかはわかりにくくなっていきます。
これも、なにをやっているのかよくわからなくなったら説明編を振り返って概念を復習していきましょう。
MNINSTでCNNを使った手書き文字の画像処理をする
ここまで来ると、プログラムもだいぶ長く、複雑になってきます。
しかし、Kerasがなかったらもっと複雑怪奇なプログラムを書かないといけません。
かなり、TensorflowやKerasといったライブラリの威力を感じられるのではないかと思います。
この講座自体、難しい理論的背景に習熟する、というよりは、まず動かしてみてどのようなことができるのかを体験してみる、ということに焦点を当てています。
もし、より学習を深めたいときには、
課題のパラメータをいじって挙動を変化させてみたり、
サンプルコードを見ないで1から自分でプログラムを書いてみたりするといいでしょう。
教えてもらうとわかるけれど、自分でやると難しいな、というポイントがたくさん出てくると思います。
これを1つ1つ埋めていくのが良い学習法だと思います。
まとめ:「初心者必見!Pythonでニューラルネット・ 深層学習を完全攻略」が向いている人は?
ゼロから作るDeeplearningを一通り自力で読んで一通り実装できる人は、もしかするとあまり受ける必要がないかもしれません。
しかし、Pythonでどんなことができるのかいまいちピンとこない、
AIに仕事を奪われるのが怖いけど実際何が行われているのかに興味がある、
仕事でAIを使っていきたいが取っ掛かりがない、
というような人には非常に親切な口座になっています。
サンプルコードも豊富で、理論の説明も丁寧です。
ぜひ、「初心者必見!Pythonでニューラルネット・深層学習を完全攻略」を受けて、ニューラルネット・深層学習を実行してみたり、TensorflowやKerasと言ったライブラリの威力を感じてみてください!