1. 程式人生 > >《機器學習》練習題與解答

《機器學習》練習題與解答

1. 小剛去應聘某網際網路公司的演算法工程師,面試官問他“迴歸和分類有什麼相同點和不同點”,他說了以下言論,請逐條判斷是否準確。
1)迴歸和分類都是有監督學習問題
[單選題] [必答題]

   ○ 對
   ○ 錯

參考答案對。

解析:這道題只有一個同學做錯。本題考察有監督學習的概念。有監督學習是從標籤化訓練資料集中推斷出函式的機器學習任務。

有監督學習和無監督學習的區別是:

機器學習演算法的圖譜如下:

在迴歸問題中,標籤是連續值;在分類問題中,標籤是離散值。具體差別請看周志華《機器學習》書中的例子,一看便懂:

2. 背景同上題。請判斷
2)迴歸問題和分類問題都有可能發生過擬合 [單選題] [必答題]

   ○ 對
   ○ 錯

答案:對

解析:這題有兩個同學做錯。過擬合的英文名稱是 Over-fitting(過擬合)。為了說清楚“過”擬合,首先說一下“擬合”

【擬合的幾何意義】:

從幾何意義上,擬合是給定了空間中的一些點,找到一個已知形式未知引數的連續曲線或曲面來最大限度地逼近這些點。一個直觀的例子,是下面的電阻和溫度的例子。

我們知道 在物理學中,電阻和溫度是線性的關係,也就是R=at+b。現在我們有一系列關於“溫度”和“電阻”的測量值。一個最簡單的思路,取兩組測量值,解一個線性方程組,就可以求出係數a、b了!但是理想是豐滿的,現實是殘酷的!由於測量誤差等的存在,我們每次測量得到的溫度值和電阻值都是有誤差的!因此,為了提高測量精度,我們會測量多次,得到多組的值,這樣就相當於得到二維平面上的多個點,我們的目標是尋找一條直線,讓這條直線儘可能地接近各個測量得到的點。

擬合的數學意義:

在數學的意義上,所謂擬合(fit)是指已知某函式的若干離散函式值{f1,f2,…,fn}(未必都是準確值,有個別可能是近似甚至錯誤值),通過調整該函式中若干待定係數f(λ1, λ2,…,λn),使得該函式與已知點集的差別(最小二乘意義)最小。

【說說過擬合】

古人云“過猶不及”。所謂“過”擬合,顧名思義,就是在學習的集合(也就是訓練集)上擬合的很不錯,但是有點過頭了,什麼意思?他能夠在學過的資料上判斷的很準,但是如果再扔給它一系列新的沒學習過的資料,它判斷的非常差!比如古時候有個教書先生教小明寫數字,“一”字是一橫,“二”字是兩橫,“三”字是三橫。然後,小明說,老師你不用教我寫數字了,我都會寫。老師很驚訝,那你說“萬”字怎麼寫,結果小明在紙上寫下了無數個“橫”。。

用臺灣大學林軒田老師的話說,過擬合是“書呆子”,“鑽牛角尖”。如果用過於複雜的模型來刻畫簡單的問題,就有可能得到“聰明過頭”的結果。比如下面預測房子的價格(price)和size之間關係的問題(來源於andrew ng的ppt)

  通過五組資料,我們通過肉眼直觀地看,可以初步判斷房屋的價格和size之間是二次函式的關係,也就是中間這幅圖所擬合的情況。而右邊這幅圖中,自作聰明地用了一個四次函式來擬和這五組資料,雖然在已知的五個資料上都是100%準確,卻得出了“當房子的size大於某個值時  房子的價格會隨著房屋面積增大而越來越低”這樣的荒謬結論!這樣的是過擬合。左邊這個用一條直線來擬合  但是擬合的誤差很大 也不置信,這叫“欠擬合”。

     在周志華老師的書中,舉的例子是這樣的:

       發現了沒有?周志華老師用的是“是不是樹葉”這樣的分類問題舉例,andrew ng用的是“房價和房屋面積的關係”這樣的迴歸問題舉例。這說明,分類和迴歸都有可能過擬合。

3. 背景同上題。請判斷
3) 一般來說,迴歸不用在分類問題上,但是也有特殊情況,比如logistic 迴歸可以用來解決0/1分類問題 [單選題] [必答題]

   ○ 對
   ○ 錯

答案:對

解析:Logistic迴歸是一種非常高效的分類器。它不僅可以預測樣本的類別,還可以計算出分類的概率資訊,在一線網際網路公司中廣泛的使用,比如應用於CTR預估這樣的問題中。這裡我們不詳細說明其原理,後續課程會講到。很多人對它的名字會產生疑問,掛著“迴歸”的頭,賣的是“分類”的肉,彆扭的慌。

      其實我們不用糾結它到底是“迴歸”,還是“分類”,非得二選一。可以參考一下百度百科 關於“logistic迴歸”的詞條

其中舉了一個富士康員工“自殺的日期”與“累計自殺人數”之間關係的例子,並通過logistic迴歸分析來擬合出一條曲線。這說明logistic迴歸本身也有一定的解決“迴歸”問題的能力,只是工業界都用它來解決分類問題。

4. 背景同上題。請判斷
4)對迴歸問題和分類問題的評價 最常用的指標都是 準確率和召回率 [單選題] [必答題]

   ○ 對
   ○ 錯

答案:錯

解析:本題有四個同學選錯。這道題的用意 是提醒大家注意,對迴歸問題的評價指標通常並不是準確率和召回率,從“房價與房屋面積之間關係預測”這個例子來說,一個已知資料點離預測的曲線之間的距離是多少時能夠判定為“準確”,距離為多少時判定為“不準確”?沒辦法區別。準確率對於度量回歸問題的效果其實並不適用。迴歸問題的誤差一般通過“誤差”來評估,比如RMSE等。在滴滴大資料競賽中 用的是這樣的一個指標

很顯然不是用的“準確率”來評定。

5. 背景同上題。請判斷
5)輸出變數為有限個離散變數的預測問題是迴歸問題;
輸出變數為連續變數的預測問題是分類問題; [單選題] [必答題]

   ○ 對
   ○ 錯

答案:錯

解析:說反了

6. 向量x=[1,2,3,4,-9,0]的L1範數是多少 [單選題] [必答題]

   ○ 1
   ○ 19
   ○ 6
   ○ sqrt(111)

答案:19

解析:這題錯了三個同學,其實很簡單。請記住:

L0範數是指向量中非0的元素的個數。 

L1範數是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則運算元”(Lasso regularization)。 

L2範數是指向量各元素的平方和然後求平方根。

7. 小明參加某公司的大資料競賽,他的成績在大賽排行榜上原本居於前二十,後來他保持特徵不變,對原來的模型做了1天的調參,將自己的模型在自己本地測試集上的準確率提升了5%,然後他信心滿滿地將新模型的預測結果更新到了大賽官網上,結果懊惱地發現自己的新模型在大賽官方的測試集上準確率反而下降了。對此,他的朋友們展開了討論,請將說法正確的選項打勾(不定項選擇題) [多選題] [必答題]

   □ 小芳:從機器學習理論的角度,這樣的情況不應該發生,快去找大賽組委會反應
   □ 小剛:你這個有可能是由於過擬合導致的
   □ 小月:早就和你說過了,乖乖使用預設的引數就好了,調參是不可能有收益的
   □ 小平:你可以考慮一下,使用交叉驗證來驗證一下是否發生了過擬合

答案:選擇第二項、第四項

解析:大家都同意第二項,是過擬合導致的。設定第四項的目的,是提醒大家,交叉驗證可以用於防止模型過於複雜而引起的過擬合。具體什麼是交叉驗證,請期待後續課程。

8. 關於L1正則和L2正則 下面的說法正確的是 [多選題] [必答題]

   □ L2範數可以防止過擬合,提升模型的泛化能力。但L1正則做不到這一點
   □ L2正則化標識各個引數的平方的和的開方值。
   □ L2正則化有個名稱叫“Lasso regularization”
   □ L1範數會使權值稀疏

答案:第二項、第四項

解析:同第6題

9. 判斷這個說法對不對:給定 n 個數據點,如果其中一半用於訓練,另一半用於測試,則訓練誤差和測試誤差之間的差別會隨著 n的增加而減小 [單選題] [必答題]

   ○ 對
   ○ 錯

答案:對

解析:訓練資料越多,擬合度越好,訓練誤差和測試誤差距離自然越小

八卦:親們,這道題曾經出現在《百度2016研發工程師筆試題》。

咱們有四個同學做錯

10. Consider a problem of building an online image advertisement system that shows the users the most relevant images. What features can you choose to use? [單選題] [必答題]

   ○ concrete, abstract
   ○ concrete, raw, abstract
   ○ concrete, raw
   ○ concrete

答案:B

解析:本題源於林軒田《機器學習基石》課件,給線上圖片廣告系統挑選特徵。

concrete user features,

raw image features,and maybe abstract user/image IDs

大致理解一下 特徵的幾種型別,請做錯的同學去看一下林軒田老師的視訊

11. 【附加題】考慮迴歸一個正則化迴歸問題。在下圖中給出了懲罰函式為二次正則函式,當正則化引數C取不同值時,在訓練集和測試集上的log似然(mean log-probability)。請判斷這個說法是否正確:隨著C的增加,圖中訓練集上的log似然永遠不會增加 [單選題] [必答題]