Unsplash今回はいよいよニューラルネットワークによる機械学習の講座です。–ではPythonを使った単回帰分析を学びました。この講座では単回帰分析を数学の微分の知識を使って解く方法がわかりやすく解説されています。言い換えると、単回帰分析を解くための公式を微分を使って導き、その公式をPythonに実装したわけです。これはコンピュータが自動で学習するという機械学習ではありません。人が考えた公式に当てはめてPythonで計算したにすぎません。今回の講座を受講することにより、コンピュータが学習する機械学習をPythonで実装できるようになれます。ニューラルネットワークと機械学習の理論からPythonへの実装までを学べるという贅沢な内容になっています。Colaboratory対応】初心者向けの人工知能と機械学習のコースです。プログラミング言語Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!文字認識や株価分析なども行います。今回で5つめのPythonの講座でしたが、初めて挫折を味わいました!今までのどの講座も演習問題がついていて、自分でコードを書いて試行錯誤しながら進めるという形式なのですが、管理人は面倒くさがりなので受講中は視聴するのみ、自分で手を動かすことは全くしませんでした。その代わり、全部視聴し終わってから身の回りで似たような応用問題を探してきて、Pythonを使って自分でコーディングしてみるということで自分の理解度を確かめていました。今までは、このやり方で問題ありませんでした。ところが今回は苦戦しました。自分でどんな応用問題を解いたのかは次回の記事で紹介しますが、視聴してわかったつもりでも、実は全然理解していなかったことを思い知らされました。プログラミングというのは自分で苦労しないと身につかないものだと改めて感じました。わかりにくかったのはクラスの考え方です。オブジェクト指向を理解している人ならすんなり理解できるかもしれません。これを理解していなかった管理人は苦労しましたが、それを乗り越えたときはニューラルネットワークから機械学習までを理解でき、しかも一通りPythonでコーディングできるようになりますので、受講しがいのある講座だと思います。個別章のレビューPythonの基礎Pythonが初めての人でもわかるようにプログラミング環境の設定から解説しています。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への実装までを網羅した大変中身の濃い講座です。「回りくどい説明は要らないから最短距離で教えてくれ」という方には向いていると思います。管理人のような普通の人は、わかりづらいところはネットで検索して理解を補強することと、面倒くさがらずに自分で手を動かしてコードを書くことが必要だと思います。悪戦苦闘した先では、一段階レベルアップした自分を実感することでしょう。Colaboratory対応】初心者向けの人工知能と機械学習のコースです。プログラミング言語Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!文字認識や株価分析なども行います。...ベイズ推定とMAP推定の違いを高校野球の勝率予測でわかりやすく解説2030年夏の甲子園、PL学園が圧倒的な強さで春夏連覇しました。...【マルコフ連鎖と遷移確率行列】5年後に太ってしまう確率は何%?ある病院では毎年行っている健康診断で肥満度の統計をとっています。...モーメンタム法のアルゴリズムをExcelに実装して具体例を解いてみた。【区間推定の使い方】タイヤの摩耗を具体例にわかりやすく解説します。TOP28【作業分析6】MMCモデル|最適なトラックドック数をSimpyでシミュレーション【作業分析5】トラックの待機台数の多さを人の表情でアニメーション(2)カンボジアの物流でお困りのことがあればお気軽にご相談下さい。学生時代にアジアの雑踏にハマる。誰もが羨むメーカーを退職し「旅するように働く」ことを目指し物流業界に転職。理工学と経営学のダブル修士。2023年1月からカンボジアのオートレスビーチ在住。