【Udemyのレビュー】みんなのAI講座ゼロからPythonで学ぶ人工知能と機械学習

2023年2月19日

Photo by Rubaitul Azad on Unsplash

今回はいよいよニューラルネットワークによる機械学習の講座です。

前回の講座【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –ではPythonを使った単回帰分析を学びました。

この講座では単回帰分析を数学の微分の知識を使って解く方法がわかりやすく解説されています。

言い換えると、単回帰分析を解くための公式を微分を使って導き、その公式をPythonに実装したわけです。

 

しかし、これはコンピュータが自動で学習するという機械学習ではありません。

人が考えた公式に当てはめてPythonで計算したにすぎません。

今回の講座を受講することにより、コンピュータが学習する機械学習をPythonで実装できるようになれます。

しかも、ニューラルネットワークと機械学習の理論からPythonへの実装までを学べるという贅沢な内容になっています。

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

【Google Colaboratory対応】初心者向けの人工知能と機械学習のコースです。プログラミング言語Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!文字認識や株価分析なども行います。

 

全体を通しての感想

今回で5つめのPythonの講座でしたが、初めて挫折を味わいました!

今までのどの講座も演習問題がついていて、自分でコードを書いて試行錯誤しながら進めるという形式なのですが、管理人は面倒くさがりなので受講中は視聴するのみ、自分で手を動かすことは全くしませんでした。

その代わり、全部視聴し終わってから身の回りで似たような応用問題を探してきて、Pythonを使って自分でコーディングしてみるということで自分の理解度を確かめていました。

今までは、このやり方で問題ありませんでした。

 

ところが今回は苦戦しました。

自分でどんな応用問題を解いたのかは次回の記事で紹介しますが、視聴してわかったつもりでも、実は全然理解していなかったことを思い知らされました。

プログラミングというのは自分で苦労しないと身につかないものだと改めて感じました。

 

一番わかりにくかったのはクラスの考え方です。

オブジェクト指向を理解している人ならすんなり理解できるかもしれません。

これを理解していなかった管理人は苦労しましたが、それを乗り越えたときはニューラルネットワークから機械学習までを理解でき、しかも一通りPythonでコーディングできるようになりますので、受講しがいのある講座だと思います。

 

個別章のレビュー

Pythonの基礎

Pythonが初めての人でもわかるようにプログラミング環境の設定から解説しています。

今までの講座ではJupyter Notebookを使っていましたが、本講座ではGoogle Colaboratoryを使っています。

あとはお決まりの変数、四則演算、Bool演算、if文、for文、関数の解説と続きます。

そして曰く付きのクラスの説明です。

これについては2021年4月26日に__ini__メソッド__call__メソッドの解説が追加されています。

難しいといったフィードバックが視聴者からあったから補足ということで追加したのでしょうか?

いずれにせよクラスの理解は難しいため、他のサイトでも調べるなどして理解を補強しながら進めることをお勧めします。

 

必要な数学の学習

この章では数学とはいってもシグモイド関数の理解を主目的としているようです。

これはニューラルネットワークの活性化関数として使われる代表的な関数で、すべての値を0から1までに変換するものです。

 

まずは、数値計算に必要なライブラリーであるNumpyの説明や、matplotlibを使ってグラフを描画する方法から始まります。

続いて、シグモイド関数に出てくるネイピア数についてPythonでグラフを描きながら解説しています。

ネイピア数を使った指数関数である\(y=e^{x}\)の微分が同じ関数になることもPythonを使って実験しています。

 

一方、ニューラルネットワークのバックプロパゲーションに必要なシグモイド関数の微分については軽くしか触れられていませんので、自分でネットを調べて理解を補強した方がいいかもしれません。

 

ニューラルネットワーク

ニューラルネットワークの考え方を、単一ニューロンから中間層を含んだ多層ニューラルネットワークまでわかりやすく解説しています。

その上でPythonへの実装の仕方までを70分の短時間で網羅しますので、大変中身は濃いです。

一歩一歩丁寧に解説されてはいますが、管理人は一度では理解しきれませんでした。

管理人は章末にある演習問題を面倒くさいと思って飛ばしてしまったのですが、やった方がいいと思います。

きっとコードと睨めっこしながら格闘することになるでしょう。

 

scikit-learnというライブラリーに入っているIrisデータセット(花の種類による2つの特徴データをまとめたもの)を使いながら、ニューラルネットワークがどのように推定しているのかとか、それをPythonでどのようにコーディングするのかを理解することができます。

 

機械学習

前章では適当に決めたパラメータによってニューラルネットワークが花の種類を分類するので、結果は間違っています

この章では機械学習により、どういうアルゴリズムで間違ったパラメータを正しい値に自動修正するかを学び、それをPythonで実装します。

このアルゴリズムのことをバックプロパゲーションというのですが、少し難しいです。

管理人はもともと知っていたのでバックプロパゲーションの理論は2倍速で視聴しましたが、それをPythonでクラスを使って実装するところが難しかったです。

例として示されているコードを解説を聞きながら追っているときは理解したつもりになるのですが、自分で応用問題を試してみると理解していないことに気づかされます。

シグモイド関数を他の活性化関数に変えてみたり、中間層の数を変えてみたりすることで理解が進むと思います。

 

管理人は以前の記事単純パーセプトロンをExcelに実装して2値分類問題を解いてみた。をPythonで実装してみることによって悪戦苦闘しながらも何とか理解することができました。

Pythonで単純パーセプトロンの2値分類問題を機械学習させて解いてみた

 

機械学習ライブラリの活用

ここではサポートベクターマシンの2値分類問題をPythonに実装して解く方法を解説しています。

サポートベクターマシンの理論から解説されています。

サポートベクターマシンは特に非線形になるとExcelで計算することは大変面倒くさいのですが、scikit-learnの中に既にサポートベクターマシンのアルゴリズムが入っていますのでとても簡単に実装できてしまいます。

事例としてIrisデータセットに入っている花の分類の他、8✕8の画素で表現された数字の分類や、過去4日間の株価の動きから次の日の株価が上がるか下がるかを予測する問題を取り上げています。

 

この章はニューラルネットワークや機械学習の章と違って、たった1行のコードでサポートベクターマシンの学習ができてしまうため難しくありません。

 

まとめ

ニューラルネットワークを使った機械学習の理論からPythonへの実装までを網羅した大変中身の濃い講座です。

「回りくどい説明は要らないから最短距離で教えてくれ」

という方には向いていると思います。

管理人のような普通の人は、わかりづらいところはネットで検索して理解を補強することと、面倒くさがらずに自分で手を動かしてコードを書くことが必要だと思います。

悪戦苦闘した先では、一段階レベルアップした自分を実感することでしょう。

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

【Google Colaboratory対応】初心者向けの人工知能と機械学習のコースです。プログラミング言語Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!文字認識や株価分析なども行います。