知識・スキルを得る手段は、一昔前であれば大学、専門学校、などに通うこと、
個別で師事すること、あるいは本やサイトなどを見て独学で学ぶことでした。
しかし、今は、Khan AchademyUdacity、などオンラインラーニングが充実しており、
プログラミング、CG、機械学習、物理学、回路理論、デザイン、社会科学など
あらゆることが、オンラインで自分のリズムでインタラクティブに学べる時代となっています。

学校や独学は、ベースとして、これからも重要と思いますが、
できれば、連日記録的な猛暑の中でも単位のために大学に行ったり、
独学プログラミングで詰んでStackOverFlowを見ても「俺も同じことで悩んでいる」的な回答しかなく絶望
したり、
したくないですものね。

つまり、学びは、組み合わせ、オプションを持つことが重要かと思います。

今回は、オンラインラーニングサービス、courseraで、
Googleの提供する“Machine Learning with TensorFlow on Google Cloud Platform”コースを
修了したときの体験談を記載したいと思います。


| (1) Courseraとは

courseraとは、世界トップクラスの大学や組織などとのパートナーシップにより、
芸術、ビジネス、データサイエンス、コンピュータサイエンス、数学、社会科学など
様々なコースを提供するオンラインラーニングサービスとなります。

もともとスタンフォード大学の教授によって創設されましたが、
現在、様々な大学が講座を提供しており、また世界中から受講者がいるようです。
提供するコースは(アクティブかはわかりませんが)2700以上あるようです。


コースによりますが、無料で受けられるものもあるものの、
基本、(私が関心を持ったものは)有料のコースが多いように思います。
その分、コースを修了すると資格認定されるものも多く、
該当コースは、LinkedInや履歴書などへ記載できる修了書が提供されます。
さらに大学のコースは、学位が提供されるものもあります。

コースは、毎週のビデオと課題によって進行していき、
締め切りまでに、ビデオ閲覧および課題提出をすることが求められます。
※任意でディスカッションボードへの参加
大体、2か月〜3か月ほどの期間のコースが多いようです。


| (2) “Machine Learning with TensorFlow on Google Cloud Platform”コースについて
本コースは、タイトルの通り、
Googleのデータサイエンティストが、
GoogleCloudPlatformを用いた機械学習のノウハウを教えてくれるコースとなります。

近年のビッグデータ環境ではデータ分析は(特に画像・動画の解析の場合)膨大なストレージを要求されることが多々あり
いわゆるローカル環境での機械学習ではなく、
GoogleCloudPlatformの使い方を、特に機械学習に特化して学べる、というところがミソかと思います。

コースは下記の5つのコンテンツ、全9週分となります。
1. “How Google does Machine Learning” (1週)
2. “Launching into Machine Learning” (1週)
3. “Intro to TensorFlow” (3週)
4. “Feature Engineering” (1週)
5. “Art and Science of Machine Learning” (3週)

各コンテンツは、動画、実際にGCPを用いた演習、理解度テストクイズ、の3つからなります。
特に、GCPを用いた演習、が充実しており、GCPアカウントを演習用に付与され、
課金を気にせず、2時間ほどの時間制限付きで、演習用に自由に使うことができます。


なお、レベル感的には、アドバンスコース的な扱いでして、
Python/notebookを用いた機械学習の実装および、
DeepLearningの基礎がわかっているレベルが望ましいと思います。
逆に、GoogleCloudPlatformについては、全く触ったことがなくても問題ない設計になっています。
ページおよび、ビデオ上のインストラクションは非常に丁寧でして、
かつ、繰り返し、演習があるため、ほぼ迷うことはないと思います。

とはいいつつ、データサイエンティストとしての心構えも多く学ぶことができます。
内容について詳細に述べることは避けますが、たとえば下記のようなことを学びました。

「目的変数のバイアスに気をつける」
「予測モデルの説明変数の入手コストが重要」
「外れ値と欠損値に対する、MLと統計学の哲学の違い」
「新たな特徴量を作るときの留意点」
「あるデータセットで学んだモデルを別のデータセットに適用するときの流れ」


| (3) 修了するまで
基本的には土日にまとめて、ビデオ視聴、演習をしていましたが、
それだと、やや間に合わないため、平日もできるだけ少しづつ進めるスケジュール感となります。
期間中、旅行で演習ができないときなどは、
前倒しで早めにとりかかり、締め切り前に終わるよう、調整しました。

なお、他のコースにも言えるかもしれませんが、言語は全て英語となります。
しかし、リアルタイムでハイライトされる字幕が表示されており、英語の聞き取りが苦手な人も字幕を見ながら、
あるいは、特にわかりづらい箇所は、Google翻訳などをかけながら受講すれば、
ほぼ問題なく理解できると思います。これもオンラインラーニングの良いところだと思います。


また、courseraはアプリも提供されており、使い勝手も非常によいです。
むしろ字幕などは、アプリの方が、見やすいと思いました。
演習はさすがにPCでないと不可なものの、ビデオの視聴やクイズなどはスマホで進めることができます。
実際、スケジュール上、かなりギリギリな週などは、
移動中の電車や、外出先のカフェなどで、スマホアプリからビデオ視聴しました。
普段、kindleで漫画などを読んでいる通勤時間をcourseraの学習に使うと、
「へー、朝活しない人っているんだ、僕はもちろん朝活をしてるけど、
ビジネススクールに行くなんて前時代的なことはせず、
移動時間を、courseraのオンラインラーニングにあててライフハックしてるけどね」
とは全く思いませんでした。漫画大好きです。



| (4) 総括
現在、オンラインラーニングの市場・コンテンツはますます拡大しており、
多くの知識・スキルが、オンライン上のビデオと演習で、
これまでより安価に自分のライフスタイルに合わせて学べる時代となりました。

私自身、様々なオンラインラーニングを通して、プログラミング、機械学習を学びましたし、
Khan AcademyにてPixarが提供していた“Pixar in a box”
非常に楽しく、CGやアニメーションについて、手を動かしながら学ぶことができました。こちらもオススメです。

あとは、学んだ知識・スキルを実践で活用することですが
Kaggleなどでも、近年、画像系のコンペが多く見られますので、
GCPを活用した機械学習は大いに成果を発揮すると思います。

なおKaggle関連では“How to Win a Data Science Competition: Learn from Top Kagglers”というコースもありまして、
Kagglerの方は一見の価値ありかと思います。(私も受講しました)

振り返ってみますと、
最近では多くの時間をYoutubeやOpenrecのスプラトゥーン2の実況動画を観ることに費やしておりますが、
これはオンラインラーニングと言えるかは微妙かもしれません。

しかし、学びではあるのでしょう。