fast.ai の機械学習講座を受けた

    はじめに

    fast.ai ジェレミーハワード氏の実践機械学習講座。

    2017年に全世界で話題を呼んだ、Practical Deep Learning for CodersのMachine Learning版だ。

    今回も kaggle はフル活用

    fast.aiは課題の題材にkaggle のコンペを利用するところが面白い。

    それは、教育の哲学が、Top-Downで実施することを重視しているからだ。 理論よりも、まずは手を動かすことによって、楽しむ。

    今回も、以下のコンペが取り上げられる。

    Random ForestとLogisticRegression

    驚くことなかれ、Lesson1-7までずっとRandomForsetの解説がある。 一つの動画が1.5時間名て、10時間以上 RandomForestを解説する。 使い方から、仕組みまでさらい、さらにはスクラッチ実装まで。

    それをこえると、今度はPyTorchによるLogisticRegressionの解説が、6時間くらいある。

    Tree系、Linear系、合わせて16時間をCodeベースで丁寧に解説。

    授業内容

    シラバス

    Train vs test
        Effective validation set construction
    Trees and ensembles
        Creating random forests
        Interpreting random forests
    What is ML? Why do we use it?
    	What makes a good ML project?
    	Structured vs unstructured data
    	Examples of failures/mistakes
    Feature engineering
    	Domain specific - dates, URLs, text
    	Embeddings / latent factors
    Regularized models trained with SGD
    	GLMs, Elasticnet, etc (NB: see what James covered)
    Basic neural nets
    	PyTorch
    	Broadcasting, Matrix Multiplication
    	Training loop, backpropagation
    KNN
    CV / bootstrap (Diabetes data set?)
    	Ethical considerations

    Lesson1

    Random Forestをつかって、 Kaggleの Blue Book for Bulldozersコンペに挑戦。

    Lesson2

    Lesson1の続き。Random Forest の解説。決定木からバギングまで。

    また、validationを利用した、パラメータチューニングについて。

    また、Lesson2までを通じて一通りの機械学習コンペの作法を学ぶ。 kaggleからのデータダウンロード、前処理、Random Forest、提出。

    Lesson3

    Lesson1, 2で学んだ内容を、以下のコンペに適用してみる。 30thになれるので、モデルをどんどん改良してねとか。

    Corporación Favorita Grocery Sales Forecasting

    残りの時間は、再びBulldozersコンペに戻り、解析結果の解釈方法について話される。 feature importance, feature selectionの話。

    Lesson4

    メモするの忘れた。まだ Random Forest.

    Lesson5

    Validation戦略、主にクロスバリデーションとか。

    後半は、Random Forest のスクラッチ実装を開始。 RandomForestだけで、8時間くらいたっているのですが。。。

    確認したら、Lesson6,7も RandomForestだ。みっちり10時間以上だな。

    Lesson6

    Machine Learningとは、という話がここでようやくでてくる。この記事の説明。

    その後、今まで説明した概念を振り返り説明する。

    Lesson7

    Random Forest のスクラッチ実装。 RandomForestの実装は簡単で実はそこに利用されてるDecisionTreeが難しい。

    すみません、この動画は飛ばしてみました。

    この回で、ようやく RandomForestは終わり。次は、ニューラルネット。

    Lesson 8, 9, 10

    ニューラルネットワークの説明。PyTorch登場。MNISTの一層のネットワークによる分類を実装。

    yTorchをつかって、LogisticRegressionをスクラッチ実装していく。6時間。

    コードの一行一行を丁寧に解説していく。正則化などのテクニックも合わせて紹介される。

    しかし、この一連のPyTorchの実装は私は飛ばしました。

    Lesson 11

    前半は、PyTorchによるSDGの実装の振り返り。

    後半は、時系列データに対する扱いをということでRossmanコンペの解説だ。

    Lesson12

    Rossmanコンペの解説。

    表形式データに対して、昨今は ニューラルネットでのアプローチで あまりfeature enginneringしなくてもいい精度が出るとのこと。

    最後に、講座の振り返り。 Tree系はRandomForestsを、Linear系はLogisticRegressionをやったよね? フルスクラッチで実装もできたよね?じゃあ、大丈夫だ。

    そして、最後の最後にMachine Learningと倫理についてのお話。ここは飛ばしました。