ML blog

備忘録を兼ねた IT 系のブログでございます。

Apache Sparkや機械学習: 海外オンライン講座の受講感想

機械学習Apache Spark に関して、最近流行りの海外オンライン講座を幾つか受けてみました。 コースをお探し中の方の参考になるかもしれませんので、以下に感想を残しておきます。

視認性には優れませんが、受けた講座順に時系列で記します。  
 

Implementing Predictive Analytics with Spark in Azure HDInsight

EDX, by Microsoft

2016年4月に受講したのですが、講座ページの公開は修了していて、現在は以下講座に変わっているようです:

www.edx.org

新旧講座でどこが変わっているか違いを見たのですが、新たにR言語統合が加わったりかなり変更があるようです。 旧講座が私にとって初めてのオンライン講座受講だったのですが、いきなり時系列分析分野の ARIMA の知識を前提とした展開だったり、Final Exam の難易度もやや高く、不合格となった学生からのコメントもフォーラムで目につきました。他の講座で基礎を固めてから受講すべき講座との感想も持ちつつ、分散処理と機械学習分野の大まかな雰囲気を整理するには役立った講座と思います。Azure で Spark ! など新鮮な驚きもあり、以降 Microsoft 系の講座を多く受けることになりました。  
  
 

Introduction to R for Data Science

EDX, by Microsoft、2016年5月受講

www.edx.org データサイエンス分野では R が共通言語のようで、統計検定試験でも出題に出てきていたので、受講しておくことにしました。 こちらの講座の課題は、DataCamp の演習環境を使用するもので、R言語の文法になれるために非常に役立ちました。やはり一度手を動かして触っておくと、後で忘れたと思っていても楽に思い出せるようです。 www.datacamp.com   
 

Programming in R for Data Science

EDX, by Microsoft、2016年5月受講

www.edx.org 基礎から回帰分析、SQL DB接続、作図(ggplot2)など一通り紹介がありました。ggmap による地図統合など視覚的にインパクトもあり楽しめました。ただ、講師の方の英語の発音は非ネイティブスピーカーの私にはやや聞き取り難かったです。その後 R 言語を AzureML と組み合わせて使うプチ機会があったのですが、この講座と金先生の以下R本に目を通した上で、後は必要な実装詳細を都度Google検索で調べるなどの方法で、望む機能を実装することができました。

Rによるデータサイエンス-データ解析の基礎から最新手法まで

Rによるデータサイエンス-データ解析の基礎から最新手法まで

  
 

Principles of Machine Learning

EDX, by Microsoft、2016年7月受講

www.edx.org この講座での一番の収穫は、Azure ML Studio で手軽に機械学習モデルを構築できることと、その具体的な方法や作法を理解できた点です。マウスで視覚的にモデルを組み上げられるよう配慮されていて、面倒と思いがちな作業に対する心理的な負担がかなり軽減されます。Python や R 言語など既存のコードやスキルも使い続ける点でオープン性にも気を配っていることが感じられます。SVM なんかもドラッグアンドドロップで使えるようですが、台湾大学のChih-Jen Lin(林智仁、LIBSVM の作者)先生のホームページに来年まで Microsoft 訪問とあった理由もこの辺でしょうか。こんなプラットフォームまで出てきて、昨今の機械学習や AI のトレンドがもし本物であれば一気に大衆化しそうですが、どうなのでしょうか。講座では Adaboost が予測性能が最も高いアルゴリズムの一つとして取り上げられており、Adaboost の説明は直感的な理解を助けてくれる点で良かったです。演習は R と Python が用意されており、両方やってみた結果、R の Python との違いや向き不向きを比較体感することができました。  
 

Applied Machine Learning

EDX, by Microsoft、2016年8月受講

www.edx.org 時系列(ARIMA)や地理分析(variogram)の2単元では非常に多くを学べました。他の講座でこのあたりを詳しく扱っているものはあるのでしょうか。AR と MA の違いは直感で理解できるようになりますし、背景を理解した上でパラメータチューニングについて説明があります。講座の先生も言及していましたが、トレンドや季節変動の時系列の分解を初めて目の当たりにすると手品を見せられた気分になりますが、種明かしとしての背後で動いている仕組みを丁寧に説明してくれます。地理分析の理論的な紹介は時系列の単元ほど直感的ではありませんが、応用できる場は多くありそうで想像を膨らませてくれる内容でした。こちらは単元によって R と Python を向き不向きで使い分けていて、時系列や地理分析は R を使っています。  
 

Introduction to Apache Spark

EDX, by カリフォルニア大学バークレー校、2016年7月受講

www.edx.org 講座シリーズ『Data Science and Engineering with Apache® Spark™ | edX』を構成する3講座のうちの最初のものでした。演習課題に Web サーバーのログ解析がありました。以下の資料に事前に目を通していたので、本講座の演習で手を動かすことにより、知識の固定化に役立ちました。

1.Spark のオンラインドキュメント

Overview - Spark 2.0.2 Documentation

2.入門書籍(日本語版も出ていたのですね)

Learning Spark: Lightning-Fast Data Analysis

Learning Spark: Lightning-Fast Data Analysis

  • 作者: Holden Karau,Andy Konwinski,Patrick Wendell,Matei Zaharia
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2015/02/27
  • メディア: ペーパーバック
  • この商品を含むブログを見る

3.志の高い有志様によるサイト
AMPcamp-ja (掲載コードを一通り走らせて勉強させて頂きました)  
 

Distributed Machine Learning with Apache Spark

EDX, by カリフォルニア大学バークレー校、2016年8月受講

www.edx.org この講座は少々苦労しました。上記の Spark シリーズ初回講座は受講終了期限まで3ヶ月ほどの猶予があったので、第2弾のこちらもゆっくり受講すれば良いと思いきや、実は受講期間が1ヶ月でした。気づいたときは受講期限が残り1週間。焦って手を付けたのもあり、また公開したての講座でしたので演習問題に一部不備があったりで、かなり手こずりました。最終的にはフォーラムでの他の受講生のやりとりを参考に完了できましたが、やや消化不良でした。機械学習の取扱についてはAPIを呼び出すだけでなく、アルゴリズムも理解させようと講座が組まれていましたが、Spark 特有の作法を明確に認識できるためにも、このあたりは以下で述べる Andrew Ng 先生の Machine Learning 講座を終えてから手を付けるほうが深い理解が得られると思います。PCA演習課題での脳活度プロットの美しさは見ものです。  
 

Big Data Analysis with Apache Spark

EDX, by カリフォルニア大学バークレー校、2016年8月受講 https://www.edx.org/course/big-data-analysis-apache-spark-uc-berkeleyx-cs110x

ビッグデータ分析と銘打っていますが、機械学習が中心の印象です(例えば本3講座シリーズにて、Spark のグラフ計算(GraphX)の紹介はありませんでした)。上記 Microsoft 講座でもありましたが、機械学習の各種アルゴリズムの性能比較が演習に取り入れられていて楽しめました。本講座の講師の方が過去に発電所の発電予測の案件を担当したとあり、演習でも発電所の予測が取り上げられていました。その中で、LinearRegression、DecisionTreeRegressor、RandomForestRegressor の予測比較では、RandomForest が良い成績を収めていました。他の演習では、Matrix Factorization、TF-IDF が取り上げられていました。  
 

Machine Learning

Coursera, by スタンフォード大学 Andrew Ng(吳恩達)先生、2016年9月受講

www.coursera.org 機械学習分野では鉄板の人気講座とのことです。こちらを最後に受けることになったのですが、それでも、それだからこそこの講座の素晴らしさを実感できました。まずアルゴリズムの「直感」を得ることを優先にした授業と内容の濃さは抜群でした。講座の紹介ビデオを見た時は、何やら人がよく頼りなさげなお兄さんがニコニコしている印象でしかなかったのですが、こちらが Deep Learning の猫の件でもあちこちで名前が出ている大先生なのですね。本当にすみません。香港人シンガポールの大学卒業→から今の地位を築くまでのサクセスストーリーとしての人生ドラマにも興味がわきます。こういう人が正当に評価される米国社会の懐の深さについても改めて敬服しました。Octave(Matlab)は Ng 先生が私を信じてと言っていたとおり、確かに使いやすかったです。

その他

機械学習とは切っても切り離せない統計学についても学んだのですが、オンライン受験が開始されるとアナウンスされていた統計検定受験を目標にしていました。この検定の問題はよく考えられた良問が多く、日本で統計学を普及させたいとの思いが伝わってくるものでした。受験した2級は近年難易度もやや上がっているようで、合格はできましたが、実力が得点に反映されるように難易度の高い問題もバランス良く散りばめられていて、高得点での合格には盤石の実力が必要との印象を持ちました。

www.toukei-kentei.jp

統計関連の学習には Khan アカデミーも使わせて頂きました。 www.khanacademy.org  
 

まとめ

海外オンライン講座は、作りにやや荒削りな部分が気になったことはあったものの、受講は大変有意義なものでした。ベンダー主催の講座では、知識だけでなく、実装に直結した作法まで面倒を見てくれます。無料でこのような知識をどんどん吸収できる時代に生まれた今の学生さんたちは本当に羨ましいです。ちなみに上記講座はすべて無料でも受講を完了できますが、私の場合は半数ほどは対価を払って Certificate (受講合格の証書)を入手しました。