今天去面試,感覺面試的題目很靈活,不是很好答。記下來,好好琢磨一下。有看到的可以探討一下。
1.模型在測試集上效果很好,但是在實際數據上表現很差,這是什么現象?現象的名字叫什么?怎么解決?
感覺與過擬合的定義不一致,因為測試集我們只測試一次,說是過擬合有點問題。最后我給的答案是測試數據與實際數據分布不一樣。
測試數據使我們訓練的目標,但是實際數據分布不一致相當於設立了新的目標,這樣會導致在測試數據集表現很好但是實際數據表現很差。
我在思考這樣一個問題:我們訓練的數據集應該是從我們要解決的實際問題中獲取的數據集或者相聯系的問題獲取的,中間有噪聲可
能會導致訓練與實際數據稍有不同,但是這一點點干擾會導致訓練好的模型在實際中表現很差嗎?
2018-11-19
今天思考了下載訓練集訓練的很好,在測試集也測試的很好,說明模型具有一定的泛化能力,在實際數據測試結果很差,說明泛化能力不夠,
可以認為是對於整個數據集過擬合;嚴重的情況就是實際數據與數據集並不符合同一分布,那樣的話你在數據集學習的再好也沒什么用。
說明這是過擬合現象的還有一種情況,就是測試集的不當划分根本沒有體現出測試集的作用,或者測試集與訓練集很有很多重合的數據,導致測試的結
果並不准確,學習的模型根本過擬合,根本沒有泛化能力,對於實際數據效果就會很差了。我覺得數據集不服從同一分布的情況還是少的,畢竟是從要解決
的問題上獲取的訓練數據,與實際數據之間是有聯系的;更多情況從其他方面查找分析問題,查找問題所在,並想出解決方法。對於數據不服從同一分布的
問題很難解決。
2.如何分辨兩組數據服從同一分布還是不服從同一分布呢?
這里,我們要分清楚同一分布與同一類型分布。以高斯分布為例,兩組數據都服從的是高斯分布,可能均值,方差不同,但是都是服
從同一類型的分布。兩組數據都服從的是高斯分布,均值,方差都一致,服從同一分布。
我們在訓練集訓練,最后在測試集測試,我們希望訓練集,測試集都服從的是同一分布。這樣在訓練好的時候,可以在測試集上獲得
很好的效果。但是如果訓練集和測試集服從同一類型分布,則在訓練集上訓練好的模型,還需要微調才能在測試集上取得好的效果。
這里不知道理解的對不對?這是我與別人溝通之后思考出來的答案。那么如何判斷兩組數據服從同一分布呢?至少判斷為同一類型
分布,這樣在訓練好的模型才能在測試表現不錯。當時面試時沒回答出來,現在想想可以使用直方圖或者其他可視化工具可視化這兩組
數據,大致觀察其分布是否一致。這里應該是判斷同一類型分布,因為同一分布需要分布描述參數完全一致,看是沒法看出來的。還有個想
法是計算兩組數據相對應類別類內方差,判斷是否屬於同一類型分布。關於類內方差我是聽面試官說的,但是具體了解也不清楚這個概念,
網上資料很少。
3.貓狗分類效果很差,貓錯分為狗,狗錯分為貓,解決步驟是什么?從哪些方面思考?
貓狗分類效果很差,是在哪一步判斷很差的。一般是訓練集驗證集模型效果很好,發現測試集的分類效果差,這個是按照過擬合的解決方案,當然也要考慮數據的分布類型不一致,即測試集和訓練集的分布類型不一致。
另外一種判斷就比較糟糕了,處於訓練階段整個模型就比較糟糕。下面就以第二種情況做分析。
既然訓練的模型效果不好,從兩方面考慮:一個是數據,一個是模型。
先從數據思考,數據的准確性和數據的規模;
數據的准確性可以抽取一部分貓狗數據和其對應的標簽進行查看,查看圖片是貓的標簽是貓,正確的數據和正確的對應標簽才能指導模型的訓練學習。
排除掉數據的錯誤后,可以思考數據的規模。或許現有的數據規模較小,提供的信息認為貓和狗非常相似,無法分辨,考慮加入新的具有判別信息的貓狗圖片,提供額外的信息為分類貓狗提供判斷依據。
接下來思考的可能是使用的分類網絡不好,相對於數據可能出現了欠擬合問題,可以嘗試更改網絡直至過擬合,先把訓練集訓練好,才能思考測試集的效果的事;也可能是網絡架構的原因,經典的分類網絡
有很多,可以考慮換個分類網絡;也可能是網絡沒有訓練好,沒有收斂,沒有找到最優解等問題,可以考慮使用別人的預訓練模型,自己微調一一般會得到一個比較好的分類效果。
4.如何精煉准確的介紹SVM。
SVM即支持向量機,是二分類模型,其目的是在特征空間上尋找一個具有最大分類間隔的線性超平面,進行數據分類。
