ラベル machine learning の投稿を表示しています。 すべての投稿を表示
ラベル machine learning の投稿を表示しています。 すべての投稿を表示

2018年7月20日金曜日

Coursera machine learning コースを始めました。edX UCバークレーFoundations of Data Scienceとの違いなど(オンライン学習、機械学習、mooc)

edX UCバークレー データサイエンス基礎(Foundations of Data Science)コースに続き、有名なCoursera machine learningコースを始めました。現在、week2が終わったところです。

Coursera machine learningコース
https://www.coursera.org/learn/machine-learning

スタンフォード大学のAndrew Ng教授の人気講座で、ブログ記事などで評判を見かけ、やってみることにしました。すでにいろんな方が講座の内容などを紹介されていますので、ここでは主にedX UCバークレーコース(以下、edX Data8)との違いを書いてみたいと思います。

受講は基本的には無料、終了証の発行には8680円(日本円)が必要になります。これはedX Data8と同じで、Courseraの方が少し安いです。

edX Data8の方は、開講期間が決まっていて一斉にスタートするのに対し、Courseraコースはいつでも開始可能です。ただし、受講のペースは決まっていて、1週間の課題を○○日までに送信するようにというアナウンスが出ます。



オンライン学習では一定のペースで続けることが難しくなってくるので、こういう締め切りがあるのはいいことだと思います。(すでに締め切りに追われていますが。。。)

edX Data8ではdiscussionを見ると自分が疑問に思ったことについて誰かが質問していて、それに対する回答も多く寄せられており、一緒に勉強している感がありましたが、Courseraは一斉にスタートするわけではないためか、discussionはあまり活発に動いていないようです(そもそも、コードをdiscussionに載せることが禁止されている)。

代わりに、ブログ等での解説記事はたくさんあるので、こちらを参考にできます。

edX Data8コースとの最大の違いは、日本語字幕があることでしょうか。



講義動画に日本語字幕を出せます。ダウンロードも可能。これは機械翻訳ではなく、ボランティアの有志で付けられているそうです。各単元で翻訳者が違っていて、時々分かりにくかったり、字幕がずれていたりすることもありますが、専門用語も日本語で書かれているので後で調べる際にもとても役に立ちます。

edX Data8の方は英語のみなので、やはりハードルは高いですね。

講義は、Andrew教授がスライドに書き込みを入れるスタイルで進んでいきます。



評判どおり、平易な言葉で解説されていて大変分かりやすいです(理解できているかはまた別問題)。week1では、行列の足し算などの計算から復習がありました。難しいと思うところもありますが、その都度、ここは覚えなくていい、難しいから理解できなくてもいいという言葉もあり、励みにしながらとりあえず進めています。

edX Data8では、講義もjupyter notebookのpythonを動かしながら進むので、動画を見ながら一緒に手を動かすことができるのですが、Courseraの方は通常の学校などの授業と同様、講義を聴く感じになっています。



講義動画の途中に、ところどころで動画が止まり上記のようなクイズが出題されます。動画を見ているだけでは何となく聞き流してしまうので、このクイズは理解度を深める上でとてもよい仕組みだと思います。

プログラミング課題では、OctaveまたはMatlabを使います。Octaveはフリーソフト、Matlabは有料ですがオンライン版でコース受講中に使える無料パスがあるようです。私はOctaveをインストールしました。edX Data8ではpython、jupyter notebook等の環境構築が必要なかったので、この点ではedX Data8の方が楽です。

GNU Octave
https://www.gnu.org/software/octave/

上記からGNU Octaveをインストールしました。バージョンは最新版で4.40です。コースの注意書きで4.0はインストールするなとありましたが、いまのところ普通に動いているようです。



Octaveの画面。Octaveは行列計算に特化した感じで、とてもシンプルな言語になっているようです。week2の講義資料にOctaveのチュートリアルがあり、このチュートリアルを見ながら練習しました。pythonでやったらいいのにとも思いましたが、Andrew Ng教授によると、pythonなどを使うよりもOctaveの方がスムーズに操作・理解できるとのことです。

edX Data8でもpythonのpandas等の普段使うモジュールではなく、より簡易化した独自モジュールを使って演習をしているので、同じような考え方なのだと思います(edX Data8では特定のプログラミング言語を学ぶのではなく、データサイエンスの基礎を学ぶのだとの記載あり)。

このCourseraコースでは1週間で動画講義と項目ごとのテスト、最後にプログラミング課題という構成になっています。プログラミング課題は全て英語で、ほとんど図もないpdfで記載されていて、ちょっと戸惑いました。課題のpdfではヒントも少なく、1週間分の講義内容を課題にしているため忘れている部分もあったので、動画講義の進行に合わせて、プログラミング課題も少しずつ進めたほうがいいかもしれません。

課題についてはgithubなどに回答例がたくさんあります。他の人のコードを写すのは禁止とされていますが、分からなければ参考にするのもいいと思います。コードを見ると、そういうことかと理解できるところがありました。(ただし、間違っている例もあるので要注意)

以上、長くなりましたが、全体としてこのコースは機械学習の理論を学ぶのに大変よいと思いますが、数学的な話が主で手を動かしながらという感じでもなく、モチベーションが高くないと続けるのが少し難しい気がします。

まだweek2が終わったところなので、どこまでできるか分かりませんが、出来るところまでやってみようと思います。


参考:
Coursera machine learningコース
https://www.coursera.org/learn/machine-learning
edX UCバークレー データサイエンス基礎講座

https://www.edx.org/professional-certificate/berkeleyx-foundations-of-data-science
プログラミング学習:edx UCバークレー データサイエンス基礎講座の紹介(python)
https://eneprog.blogspot.com/2018/04/edx-uc-python.html
プログラミング学習:edx UCバークレー データサイエンス基礎講座、第2弾受講中(python)
https://eneprog.blogspot.com/2018/06/edx-uc-2python.html

追伸:edX UCバークレー データサイエンス基礎コース 第3弾、機械学習コースが2018年7月24日に始まります。こちらも受講申し込み済みです。

Foundations of Data Science: Prediction and Machine Learning
https://www.edx.org/course/foundations-data-science-prediction-uc-berkeleyx-data8-3x

//SyntaxHighlighter CDNより https://cdnjs.com/libraries/SyntaxHighlighter // 対応言語