![見出し画像](https://assets.st-note.com/production/uploads/images/72167366/rectangle_large_type_2_728eeba7dbf52fc71ec4e4aa0387c437.jpeg?width=1200)
OMSA入学前にやったことと、やれば良かったこと。
こんにちは紅油です。私は2022/1に、Georgia TechのオンラインコースであるOnline Master of Science, Analytics(OMSA)に入学しました。
現在は基礎科目を受講し、平日は2-3時間くらい、休日は5-6時間くらいを使って勉強をしています。
今回は入学するにあたりやったことと、やっとけばよかったことを共有したいと思います。今後の入学準備の助けになれば嬉しいです。
バックグラウンド
前の記事でも紹介しましたが、私は現在外資系消費財メーカーで働く社会人です。
最終学歴は国立大学大学院(理系修士)ではあるものの、専攻が農学のためコンピュータサイエンス系のバックグラウンド知識は全くありません。
入学前にやったこと
入学前にやったことについては、下記の記事を参考に選びました。
下記のData Scienceコースを受講しました。UC SanDiegoが公開しているオンラインコース「Python for Data Science」です。
特にPythonのData Science系ライブラリについての内容があり、思い出すのに非常に役立ちました。
私が入学前に行ったのはこれだけです。
その結果、クラスが始まった現在非常に苦労しています。。
みなさんは同じ轍を是非踏まないでほしいと願い、自分がこれは事前にやっておけばよかったなあ、、と今更ながら思うものをこちらに共有しておきます。
やればよかったこと
一年目は基本的に基礎科目が中心になると思います。授業では機械学習に用いる代表的な手法を理論から紹介し、宿題でプログラミングを用いて実践するという流れです。
授業では最低限の数学の知識、統計の知識、そしてプログラミングの知識が必要になると思ってください。
これは入学前のオリエンテーションでも言われていますが、本当です。
最低限大学レベルの知識がないとそもそも使われている記号の意味などもわからず、話す内容も英語のため完全に置いていかれます。
ここからは、授業でも頻出の必要最低限の知識について触れていきたいと思います。
やればよかったこと1: 数学の知識
オリエンテーションでも言われている、微積分(偏微分・全微分含む)、行列(ベクトル)は必須です。
各機械学習の手法について数式を用いて説明がされるのですが、その時に勾配降下法、損失関数について理解ができていないと全く何を言っているのかわかりません 笑。
機械学習のパラメータ推定には必須なので当たり前なのですが、、理解していなかったです。
最低限、線形回帰・ロジスティック回帰などのパラメータ推定方法については自分でどう導出すればいいか理解していることが望ましいかと思います。(損失関数の微分計算時に偏微分などが必ず必要になるので、大学レベルの数学が理解できていないと歯が立ちません)
やればよかったこと2: 統計の知識
ロジスティック回帰のときに用いる最尤推定法なども機械学習においては必須の知識です。
どういうものかを知っておくことは当たり前ですが最尤推定法を用いて損失関数を計算するなどもできることが望ましいかと思います。
分類のトピックの時にかなり助けになるはずです。
もちろんその他の基礎統計知識(分散、標準偏差、正規分布..)については知ってて当たり前という前提でしれっと進められてしまうので心配があれば復習しておきましょう。
やればよかったこと3: プログラミングの知識
言わずもがなですが、PythonのData Science系ライブラリは出るため、わからない方はなんでもいいのでData Science系の本やオンラインコースで勉強しておくのがいいと思います。
Pythonに加え、一部講義ではRも用います。
一応使ったことがなくても大丈夫!とはシラバスで言っているものの、基礎的な情報がわからないとデータの前処理などに時間がかかってしまい宿題がかなりの負担になってしまいます。
データの取り込み方法、特定の行・列の追加/削除方法、簡単なグラフ描画方法などの前処理については知っておくだけでかなり楽になるはずです。
参考書籍・サイト
最後に私が今追いつくための勉強に使用している参考書・サイトを下記に共有します。
ちなみに機械学習を学ぶ上で登竜門とされている「はじめてのパターン認識」や「パターン認識と機械学習(上・下)」などは現時点で理解できるはずもなく、、
本当に導入となる基礎数学から教えてくれるような参考書籍を集めました。
やさしく学ぶ機械学習を理解するための数学のきほん
社会人になってから全く数学に触ってない人にはこちらがオススメです。私もそうでした。
まずはこの本にある簡単な線形回帰などの式を通して勾配降下法などの概念を学ぶことができ非常によかったです。
2人の登場人物の対話形式で話が進み、式の変形もかなり丁寧に書いていただいていると思います。
最短コースでわかるディープラーニングの数学
基礎的な数学知識から代表的な機械学習手法での実装方法とその理論まで掲載されており、非常に勉強になりました。
数学分野は題名の通りディープラーニングに必要最低限のものがピックアップされており、授業でも参考になる知識がたくさんありました。
まずは2-6章(基礎編)で基礎数学を確認し、7章以降(実践、発展編)で機械学習手法への適用方法を理解するのがいいと思います。
この本のいいところはかなり順を追って書いているためつまづいても自分のわからないポイントが何章を読めば書かれているのかが非常にわかりやすいです。
わからない時は必ず基礎編まで戻りどう導出されているのか計算式が理解できるようにしておくことをおすすめします。
私は現在この本を何度も何度も復習をし、回帰・分類のパラメータ推定の導出が自分でできるよう勉強を続けています。
(難しめ)機械学習のエッセンス
上2冊に比べると内容はかなり高度になります。ただし機械学習の実装時に気をつけるべきことや、数理最適化についても触れられておりここまで理解できると授業も、かなり楽になると思いました。
また、ライブラリを用いるのではなく、自分でアルゴリズムをPythonを用いて実装できる点についても理解を深める一助になっていると思います。
私はまだ本書の機械学習アルゴリズムについて2-3割しか理解できていません。。。
PyQ
有名だと思いますがPythonの勉強用サイトです。
個人プランだと3040円/月かかりますが、Pythonの基礎の基礎からData Science系ライブラリの使い方などまで広範にカバーされておりすごく勉強になります。
トピックが多いため、Progateよりは難しめです。
Python中級くらいまでと、Pythonデータ処理中級あたりまでやっておくといいのではと思います。
データサイエンス100本ノック(構造化データ加工編)
データ分析の前処理について必要最低限の知識100本を実際にコードを書きながら進んでいくコースです。なんと無料。
PythonのほかRの模範解答もあり、両方の言語で理解を深めることができます。
この知識をつけておくと宿題のデータ前処理にかかる時間もかなり削減できる実感がありました。
Docker環境に実装していくのですが、やり方については下記のサイトを参考に進めてみてください。
For Mac
For Windows
最後にはなりますがAdmissionが事前に言っていた通り、講義は手加減なしの非常にRigorous(厳しい)な内容でした。
数学など忘れてしまっている人は是非これらの事前準備はされておくことを強く、強くお勧めします!!!