我的MIT微碩士SDS歷險ing(二)

Marvin Fan
10 min readDec 21, 2020

--

第一篇說到我自己接觸MIT微碩士的來龍去脈,

以及簡略的介紹了MIT微碩士項目,

如果還有不清楚的部份,

我推薦各位去微碩士的官網查看:

那這次我開始進入乾貨分享的部份吧,

累狗~

首先先介紹下,

基於個人潛在自我挑戰意識的緣故,

我選擇了

Statistic and Data Science

(統計與資料科學,簡稱SDS)

作為我的主項目,

每一個項目證書規定需獲得4+1門(4門課 + 最終測驗)的學分才能獲得,

以SDS為例,

有三門必修課程:

  1. Probability — The Science of Uncertainty and Data (機率論)
  2. Machine Learning with Python: from Linear Models to Deep Learning (機器學習)
  3. Fundamentals of Statistics (基礎統計學)

以及兩門選修課程擇一:

  1. Data Analysis in Social Science — Assessing Your Knowledge (資料分析與社會科學)
  2. Data Analysis: Statistical Modeling and Computation in Applications(統計模型與計算應用)

(選修第2門是2020年底新增的選修科目)

由於想爭取最短時間內完成學位認證,

在秋季課程排程的允許下,

我便膽大心也大得一次選了3門課來修,

分別是:機率、機器學習以及選修的資料分析與社會科學

殊不知,

這便是地獄之路的開始😂…

如果後續有朋友想要報名MIT的MS項目,

絕對要記得,

這個項目終究掛的是MIT的名字,

所以每個課程的紮實度都與大學甚至研究所的正式課程有過之而無不及,

以像我這種GMAT模擬考認證的低能兒來說,

平均一門課每週大約需要費時12~15小時不等。

而我這裡說的學習耗時,

其行為定義是不包含從事放空、看手機、洗澡、吃飯、睡覺等等等等任何與學習不相關的行為。

所以當我選擇了同時進行3門課,

意味著接下來我將必須固定每週花費40~45小時不等的時間在課程上,

同時也就意味著:

PS4…掰掰

Switch…掰掰

每週一電影…掰掰

週末假日…掰掰

正常睡眠時間…視作業情況掰掰

每週三次運動…無條件掰掰

不誇張的說,

在三門課開課後,

我的日常行為不需要再思考今天要做什麼,

能做的就是睡覺、看網課、做課堂練習、做作業、做project,

中間再穿插吃飯、洗澡,

最後才是處理公司業務、回客戶郵件。

歌單三個月沒時間更新,

花十分鐘看眼球央視一分鐘成了一件很奢侈的事情。

當然有時候身體跟腦袋真的頂不住的時候,

會選擇三門作業交完的隔天,

作為頹廢日放空一整天來累積罪惡感與危機感,

然後在隔天帶著滿滿的罪惡感加班趕進度,

日子就是這麼樸實無華且枯燥。

話題扯開了,

讓我們重新回到主題,先初步介紹微碩士的課程環境,以下都以SDS項目課程為主

全課程要求:

英文聽寫能力:大一程度

課至少要聽得懂看得懂對吧?所以對於英文聽力或閱讀還是有一點點小要求的。人人都說高三是人生英文能力的頂峰;可是我覺得個人大一時的英文才是進入到了應用的層面,包含足以閱讀五成的原文書內容,以及聽得懂Friends的部份對話內容。微碩士需要的英文能力,大概就跟這個差不多,遇到不會或不熟的單字再查就行了。關於寫的部份,應用場景主要在於討論區的討論以及課堂的意見反饋。不用過度擔心你的語法是否正確,詞彙是否華麗,要記得,在課程與討論區裡的,是來自世界各地的同儕,非英語母語體系的同學為多數,所以只要能溝通、正確表達語意就大致沒問題了。

數學能力:高中程度+大一微積分

個別科目需要用到的的數學最低限度大致跟高中程度差不多,對於三角函數有先天恐懼症的也不用過度擔心,其實用到的時候再去網上查詢或者複習相關知識點即可;微積分的部份,比較常見的是基本的微分、偏微分跟積分,分佈積分只有在推導部份結果的時候會用到;這方面我想沒有很難克服,哪怕你不會證明微積分公式,但你只要記得微積分的規則,就可以進行計算來讓大部分課程順利進行。

接下來粗略介紹我所選的三門課,後續會分別各針對每門課做詳細介紹。

(以下課程評估全採非科學性、無邏輯性,超主觀性的分析來作分享)

主要分享的有課前知識點、課程難易度(超主觀超不科學形式)、課程應用度(論是否涵蓋其他門課程所需的知識點,越高代表其他門課程或領域有越高的機率會應用到此門知識點。)

一、機率論——Probability — The Science of Uncertainty and Data

課前必備知識點:加減乘除法、多元多次方程式、自然對數、大一微積分

課程難易度:中

課程應用度:最高

如果大數據時代下的根基理論之一是統計學的話,

那機率論就是統計學的樑與柱。

機率論這門課教授了各種隨機變數(白話:不確定的數字)以及一些母體值與統計值的基本定義,這方面是我大學時期就從沒打好過的基礎,也是為什麼到了畢業仍舊對於統計依然一知半解的主因。

記得在讀統計系大一時,系上便同時存在有兩門課:基礎統計學、基礎機率論。但嚴格來說,這兩門課如果同時上的話,其實在基礎統計學的前半部部份與機率論是幾乎重疊的,因為講統計不能不講機率,而機率論學到最後才會開始進入統計的領域;如果一開始就把隨機變數期望值、變異數,跟樣本平均,標準差的概念交給你,我想任何一個領域新手都很難不會搞混,也很難體會。

而MIT的這門課,就是在我們身為一張白紙的狀態下,從隨機變數最基本的概念、期望值等等…一一循序漸進,且又十分深入得一步一步學,直到課程最後的三分之一才會進入一點點基礎統計的部份,也就是開始利用條件機率來透過樣本生成合理的估計統計值。

除了定義外,機率論也會花大約四分之一的時間,來教授一些常見的機率分佈跟條件機率的理論,但並不是全部統一一起教授,而是教到相關的觀念,才會把相關的機率分佈引導進來,這些我後面篇章再一一敘述。

最終成績:92

二、資料分析與社會科學《選修》(Data Analysis in Social Science — Assessing Your Knowledge )

課前必備知識點:加減乘除法、多元多次方程式、自然對數、大一微積分

推薦課前知識點:R語言-基本操作

課程難易度:中上

課程應用度:中

在課程最開始的時候,最先要克服的不是知識點的部份,而是教授歐系口音的問題…這門課主要會由兩位教授分別授課,在理論推導方面主要由美裔教授來授課,在聽她的課的時候,我的思路是非常的清晰且順暢;而在應用層面的課程,則由歐裔教授來授課,說真的,我覺得這位教授十分可愛,也感覺得到她對資料分析科學教學與分享的熱忱,但覺得很抱歉的是,她的課,因為口音跟用語的關係,我聽的十分吃力且難受,但總得來說,只要克服了這部分的障礙,她的課也是很有趣的。

資料分析與社會科學這門課,主要在教授當我們面對問題時,要如何去定義我們的問題,並且試圖從資料裡,找出數學科學上與問題相關的資訊(不知道這樣解釋到不到位),那這樣的過程裡,我們會需要用到什麼科學工具?沒錯,又是統計…

所以這門課的前三分之一甚至二分之一的時間,會讓我們從一開始回顧機率論的部份到後續延伸教導一些基礎統計學的知識點。(說老實話,要不是這門課在無形中又幫我把機率論再複習一次,而因此省下來些許時間可以用在其他兩門課程上,要我同時過三門課還真的有點玄。)

除了統計方面的知識點外,課程上也不乏教授一些運用R語言來建立統計模型的方式,以及做簡易的虛無假設檢定;當然,教授也會分享一些實際案例來給課堂上的學生作思考或參考。所以這裡才會建議上課前,可以先熟悉下R語言,不要像我一樣,因為R不熟,所以有時候得R跟Python來回切換跑。

有趣的是,這門課是同時兩個project的學生同時授課,而期末分數認定標準也因為project的不同,而有所不同,以SDS來說,我得考明年八月的期末考後(對,明年八月),成績許可才算是通過這門課程,而奇葩的是,授課的部分早在今年十一月底就已經結束了(雖然也是拜這門課授課部份最先結束的關係,我才能勉強考過另外兩門的期末…)。

最終成績:Null

三、Machine Learning with Python: from Linear Models to Deep Learning (機器學習)

課前必備知識點:矩陣、微積分、多變量分析(基本觀念即可)、迴歸分析(基本觀念即可)、線性代數、Python基本操作語法、機率論

推薦課前知識點:numpy

課程難易度:高

課程應用度:低

說真的,MIT這個項目之所以吸引我,很大一部分原因是因為這門課。在做數據處理或預測時,機器學習的詞常常會被提出來,然而現在市面上的相關課程,常常乾貨不足只教怎麼用module,學完依然一知半解,甚至有更過份的課程用跑跑投影片的形式來搞學費詐欺。我也在求學的過程中浪費了3、4000元的學費來買教訓,所以一看到MIT的這門課,我就心想再怎麼樣也不可能搞詐騙了吧。

然而這門課之紮實,在課前要求的第一個,稱之為“warm up”的作業中,就可以略見一二了。基本上我是在期限的兩天前準備著手開始,然而看到第一題的當下,我整個人就嚇傻了。每題所需要的知識量,都足以讓我停下來,花一兩個小時的時間,上網找資料、找教程…最後在期限前的兩個小時,才終於把所謂的暖身作業全部完成提交。而這樣的模式,基本上就一直維持到期末考前🤦‍♂️

你以為這門課只是教教你怎麼用python熱門模組來進行機器學習?不,請記住這是MIT的課…他基本不教你怎麼用模組,他的目標是要「讓你能自己寫模組」,只有一兩個project的一兩題,可能你用自己寫的模組你程式會跑不完的情況下,他才會教你怎麼使用pytorch這種強大好用到爆的模組…

機器學習最主要的目標之一,就是讓電腦能自主透過演算法以及訓練資料的迭代訓練方式,來讓電腦去對目標進行分類,進階一點便接著進行決策。而在數學上來說,這常常意味著需要運用大量的線性代數(在資料分佈上找出數學合理的切割面來進行分類)、矩陣(運用於多維度的運算)以及機率論(找出最有可能性的數字、或者給予的機率),用學生的話來說,就是一門相當硬的科目;但同時對於我們這些求職,呃不是,是求知若渴的社會人就意味著,這是一門乾貨十足的課。

課程中間穿插著近年流行的幾個基礎演算法的介紹以及核心觀念推導,包含了最基本的監督式學習下的:線性分類、多維度線性分類、神經網路學習,再到非監督式學習的:K-Means分類法、多常態分佈模型分類法、EM演算法、Q-Learning演算法;最後一個project再來個要你命三千,將Q-Learning分別結合線性模型、神經網絡模型來進行產生決策模型。

如果要比喻的話,上機率論的課,就像是教授給了你水、毛巾後,一步一腳印帶你逐步爬四獸山;上機器學習的課就像是教授給了你齊全的專業登山用具後,撂下一句我在玉山上等你之後就消失不見了。中間怎麼爬,工具怎麼用,你必須自己一步一步摸索,不會太在意中間你自己用的什麼過程,只在意你最後有沒有攻頂成功。(跟金·富力士對小傑撂下一句來找我吧差不多)所以目前上完的三門課中,以完成這門課的成就感為最大😂

最終成績:95

目前我所上過的三門課的簡易介紹就先寫到這邊,後續應該會分別對每一門去做更詳盡的介紹…(應該吧),接下來打算上的,就是年底新推出的第二門選修課程:Data Analysis: Statistical Modeling and Computation in Applications(統計模型與計算應用)。這門課會在明年的二月中左右開課,雖然它也是選修,但我覺得既然課程已經沒那麼緊湊了,也不影響最終考試的時間,那就好好得再接著學吧,正所謂技多不壓身嘛。

(To be updated….)

--

--

Marvin Fan

一個統計唸到被退學的統計人 Facebook: marvinfan email: yuhsien7831@icloud.com