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

2018年9月24日月曜日

coursera machine learningコース修了しました。(機械学習,オンライン学習)

7月から始めたcoursera machine learningコースを修了しました。

Coursera machine learning コースを始めました。edX UCバークレーFoundations of Data Scienceとの違いなど

約3ヶ月かけて期限のぎりぎりで修了です。何とか終われたというのが感想です。

コースの内容はほかの方が詳しく書かれていますが、機械学習に必要なことは一通り習ったという感じでしょうか。主な項目は単回帰、重回帰、ロジスティック回帰、ニューラルネットワーク、サポートベクターマシン(SVM)、K-means、主成分分析(PCA)、異常値検知など。そのほか、機械学習が上手くいっているかの確認方法、こんなときにはこれを使う、ビッグデータを扱う場合などのコツも教えてくれています。

カリキュラムとしては、5週目までで単回帰からニューラルネットワークまで進み、かなりのスピードと分量でついていくのがやっとという状態でした。私は特に5週目のニューラルネットワークの誤差逆伝播法(Backpropagation)が理解できず、他のHPや本を見て参考にしました(今でも理解できているとは言いがたいですが)。ニューラルネットワークまでは自分でアルゴリズムを組んで実装しますが、その後は既存のライブラリを使ったりするので比較的簡単に感じました(Octave、行列の計算に慣れたというのもある)。

プログラミング課題はOctaveを使いますが、これは特に問題ではなかったです。とてもシンプルで理解しやすい言語だと思います。

機械学習では数学の知識が必要といわれていますが、このコースでは初歩の行列の計算(足し算、引き算、内積など)は最初に解説があります。その他は数式も出てきますが、理解できなくてもいい。覚えなくてもいい(覚える必要はない)などとコメントがありました。もちろん理解できたほうがいいですが、何となく分かった程度でもついていけます。

このコースでは基本的に日本語字幕がついていますが、何項目かは日本語なしのものもありました。日本語字幕は複数人のボランティアが担当して作成されているようで、質にムラがあります。日本語では分かりにくいときがあるので、その場合は英語スクリプトを確認したほうがいいです。

全体としてとてもよくできたコースだと思いますが、なんといっても講師のAndrew先生が人気の秘密だと感じました。これは難しいから理解しなくても大丈夫、僕も最近やっと分かったところだよ。ここまで良く頑張ったね。おめでとう。シリコンバレーの多くのエンジニアより君のほうが機械学習を分かっている。などというコメントがところどころにあり、この言葉に励まされながら受講を続けました。修了して最後の先生の言葉にはちょっと感動しました。

ほぼ感想になりましたが、オンライン学習というのはリタイア率が高く、修了まで続けるのは容易ではありません。興味が続くようなコース設計はもとより、励ましというか声かけ、コーチングが重要なのだと思いました(私はAndrew先生の励ましを受けてなんとか修了できた感じです)。日本のオンライン学習でもこれらの仕組みを取り入れて、続けやすい仕組みを整えてほしいと思います。

最後に。これから受講される方へ
さまざまなブログなどで紹介されている人気コースですが、分量も多く、やさしくはないです。ただ、難易度は3週目までと6週目までが山です。あとは全体に簡単になるので、まずは3週目までやってみることをお勧めします。機械学習とは何なのかという話を平易な言葉を使って解説されていて、興味深く続けられました。なんといってもAndrew先生の言葉と笑顔がよいです。ぜひ受講してみてください。

参考:
Coursera machine learningコース
https://www.coursera.org/learn/machine-learning
Coursera machine learning コースを始めました。edX UCバークレーFoundations of Data Scienceとの違いなど
https://eneprog.blogspot.com/2018/07/coursera-machine-learning-edx-ucmooc.html
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

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 // 対応言語