【乾貨】監督學習與無監督學習簡介

2021-02-23 專知

當我們希望將輸入映射到輸出時,監督學習通常將其作為分類任務去完成,監督學習中的常用算法包括邏輯回歸,樸素貝葉斯,支持向量機,人工神經網絡和隨機森林。在回歸和分類任務中,目標都是找到輸入數據中的特定關係,以便我們有效地生成正確的輸出數據。請注意,「正確的」輸出完全取決於訓練數據,因此儘管我們確實有一個ground truth,即我們的模型被假設為真,但這並不意味著現實世界中的數據標籤總是正確的,數據標籤的噪聲將明顯降低模型的有效性

進行監督學習時,需要綜合考慮模型複雜度與偏差-方差的關係。注意,這兩者是互相關聯的。

模型的複雜性是指你試圖學習的多項式函數的複雜程度。模型複雜程度取決於訓練數據的性質,如果數據量很少,或者在不同場景下,數據分布並不均勻,這時應該選擇低複雜度模型。這是因為如果在少量數據點上使用高複雜度模型將會導致過擬合。過擬合是指學習到的模型與訓練數據非常匹配,但難以泛化至其他數據上。想像一下,如果需要在兩點間擬合一條曲線,從理論上說可以使用任意複雜的函數,但在實踐中,我們僅僅會使用一條直線來擬合。

模型通常使用偏差-方差來進行描述。在任何模型中,偏差與方差間存在平衡,偏差是不同訓練集間誤差的變化。一般情況,高偏差、低方差的模型會有20%的錯誤率,而低偏差、高方差的模型會出現5-50%的隨機錯誤率,具體情況取決於訓練它的數據。偏差和方差通常是互相對立的,增加偏差通常會導致方差降低,反之亦然。在訓練模型時,具體問題和數據的性質將指導模型根據偏差變化規律作出選擇。一般而言,增加偏差(減少方差)會產生相對穩定的模型,這在某些任務中可能至關重要。此外,為了產生泛化性較好的模型,模型的選擇應該根據訓練數據的大小和複雜程度而定,通常應該使用低方差模型訓練小數據集,使用高方差模型訓練大型、複雜的數據集

為了方便大家更好地了解偏差和方差的含義,這裡摘自知乎的一段答案。(作者:知乎用戶)

首先明確一點,Bias和Variance是針對Generalization(一般化,泛化)來說的。

在機器學習中,我們用訓練數據集去訓練(學習)一個model(模型),通常的做法是定義一個Loss function(誤差函數),通過將這個Loss(或者叫error)的最小化過程,來提高模型的性能(performance)。然而我們學習一個模型的目的是為了解決實際的問題(或者說是訓練數據集這個領域(field)中的一般化問題),單純地將訓練數據集的loss最小化,並不能保證在解決更一般的問題時模型仍然是最優,甚至不能保證模型是可用的。這個訓練數據集的loss與一般化的數據集的loss之間的差異就叫做generalization error。

而generalization error又可以細分為Bias和Variance兩個部分。

首先如果我們能夠獲得所有可能的數據集合,並在這個數據集合上將loss最小化,這樣學習到的模型就可以稱之為「真實模型」,當然,我們是無論如何都不能獲得並訓練所有可能的數據的,所以「真實模型」肯定存在,但無法獲得,我們的最終目標就是去學習一個模型使其更加接近這個真實模型。

而bias和variance分別從兩個方面來描述了我們學習到的模型與真實模型之間的差距。


Bias是 「用所有可能的訓練數據集訓練出的所有模型的輸出的平均值」 與 「真實模型」的輸出值之間的差異;Variance則是「不同的訓練數據集訓練出的模型」的輸出值之間的差異。

這裡需要注意的是我們能夠用來學習的訓練數據集只是全部數據中的一個子集。想像一下我們現在收集幾組不同的數據,因為每一組數據的不同,我們學習到模型的最小loss值也會有所不同,當然,它們與「真實模型」的最小loss也是不一樣的。

其他答主有提到關於cross validation中k值對bias和variance的影響,那我就從其他方面來舉個例子。

假設我們現在有一組訓練數據,需要訓練一個模型(基於梯度的學習,不包括最近鄰等方法)。在訓練過程的最初,bias很大,因為我們的模型還沒有來得及開始學習,也就是與「真實模型」差距很大。然而此時variance卻很小,因為訓練數據集(training data)還沒有來得及對模型產生影響,所以此時將模型應用於「不同的」訓練數據集也不會有太大差異。

而隨著訓練過程的進行,bias變小了,因為我們的模型變得「聰明」了,懂得了更多關於「真實模型」的信息,輸出值與真實值之間更加接近了。但是如果我們訓練得時間太久了,variance就會變得很大,因為我們除了學習到關於真實模型的信息,還學到了許多具體的,只針對我們使用的訓練集(真實數據的子集)的信息。而不同的可能訓練數據集(真實數據的子集)之間的某些特徵和噪聲是不一致的,這就導致了我們的模型在很多其他的數據集上就無法獲得很好的效果,也就是所謂的overfitting(過學習)。

因此,在實際的訓練過程中會用到validation set,會用到諸如early stopping以及regularization等方法來避免過學習的發生,然而沒有一種固定的策略方法適用於所有的task和data,所以bias和variance之間的tradeoff應該是機器學習永恆的主題吧。

最後說一點,從bias和variance的討論中也可以看到data對於模型訓練的重要性,假如我們擁有全部可能的數據,就不需要所謂的tradeoff了。但是既然這是不現實的,那麼儘量獲取和使用合適的數據就很重要了。

 

連結:https://www.zhihu.com/question/27068705/answer/82132134

相關焦點

  • 比監督學習做的更好:半監督學習
    然而,一個重大突破揭示了添加「無監督數據」可以提高模型泛化和性能。事實上,在非常多的場景中,帶有標籤的數據並不容易獲得。半監督學習可以在標準的任務中實現SOTA的效果,只需要一小部分的有標記數據 —— 數百個訓練樣本。在這個我們對半監督學習的探索中,我們會有:半監督學習簡介。
  • 監督學習/無監督學習/半監督學習
    監督學習:(數據有輸入有輸出),通過已有的一部分數據和輸出數據之間的相應關係,生成一個函數,將輸入映射到合適的輸出,在準確的說有監督學習就是訓練樣本中必須有標籤或者標記;無監督學習:(數據只有輸入),給定的訓練樣本中難以標註類別或者標註成本過高,這類沒有類別標註(未被標記)的訓練集建模模式稱為無監督學習
  • 機器學習實戰-監督學習、無監督學習
    上一篇:機器學習實戰-特徵選擇之遞歸特徵消除最近兩天收到同學的私信,對於算法中的一些監督學習,無監督學習不是很了解,也不知道從何下手,本篇小編就來介紹一下這三者是什麼東西。本文章節1、監督學習2、無監督學習3、兩者的區別4、兩者的使用場景監督學習監督學習,小編有個簡單的理解方式,按照這個順序來理解1、有兩撥人,一撥人是好人,一撥是壞人2、好人的行為特徵有:扶老奶奶過馬路,撿到一分錢交給警察叔叔,當志願者等等3、壞人的行為特徵有:偷東西
  • 什麼是無監督學習?
    這裡嘗試從科普的角度來解釋,無監督學習產生的原理和它與有監督學習的區別何在(技術大牛請忽略此文)。一、「無監督學習」不是告訴計算機怎麼做,而是讓機器自己【去學習】怎樣做。媽媽給小朋友看一張狗狗的圖片A,當他再看到狗狗圖片B時,小朋友通常會興奮地伸出食指喊:「這也是一隻狗!」。
  • Yann LeCun:用預測學習替代無監督學習
    Perez、Yann LeCun編譯:王楠、劉小芹【新智元導讀】日前,Facebook AI 實驗室負責人、紐約大學教授 Yann LeCun 受邀在今年的 NIPS 大會發表主旨演講,暢談深度學習最近技術進展。
  • 無監督學習的魅力
    無監督學習是機器學習算法裡非常撲朔迷離的一個類別,負責解決這些「沒有真實值 (no-ground-truth) 」的數據。本文會講到,無監督學習到底是什麼,和機器學習的其他算法有何本質區別,用的時候有哪些難點,以及推薦閱讀的傳送門。最簡單的理解方式,就是把算法想像成考試。
  • 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
    目前最常用的模型是 word2vec 和 GloVe,它們都是基於分布假設(在相同的上下文中出現的單詞往往具有相似的含義)的無監督學習方法。讓我們快速瀏覽一下目前研究出來的四種嵌入方法吧:從簡單的詞向量平均的基線到無監督/監督學習方法,以及多任務學習方案(如上文所述)。
  • 機器學習算法之有監督學習和無監督學習的區別
    在這篇文章中,我們將探討有監督和無監督學習,這是機器學習算法的兩個主要類別。一、監督學習如果你有關注有關於人工智慧的新聞,你可能已經聽說過AI算法需要很多人工標記的示例。這些故事指的是監督學習,這是機器學習算法中比較流行的類別。監督式機器學習適用於你知道輸入數據結果的情況。假設你要創建一個圖像分類機器學習算法,該算法可以檢測貓,狗和馬的圖像。
  • 深度 | 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
    目前最常用的模型是 word2vec 和 GloVe,它們都是基於分布假設(在相同的上下文中出現的單詞往往具有相似的含義)的無監督學習方法。儘管像平均詞嵌入這樣簡單的基線也能夠一直給出很好的實驗結果,但一些新的類似於無監督和監督學習以及多任務學習的方法,在 2017 年底 2018 年初出現在了人們的視野中,並且取得了令人矚目的性能提升。讓我們快速瀏覽一下目前研究出來的四種嵌入方法吧:從簡單的詞向量平均的基線到無監督/監督學習方法,以及多任務學習方案(如上文所述)。
  • 監督學習,非監督學習,半監督學習三者的區別是什麼,舉出一個最有...
    監督(supervised)=標籤(label),是否有監督,就是輸入數據(input)是否有標籤,有標籤則為有監督學習,沒標籤則為無監督學習。至於半監督學習,就是一半(一點點)數據有標籤,一半(極其巨大)數據沒標籤。——簡單一句話答案。
  • 重磅|伯克利《深度無監督學習》2020春季新課來襲!
    【新智元導讀】OpenAI顧問、伯克利加州分校人工智慧實驗室主任、機器人學習實驗室主任攜其博士生,為大家貢獻一門長達4個月的深度無監督學習課程,該課程是深度無監督學習的優秀課程,涵蓋了許多當前的最新水平,尤其是該課程使用了最新的模型更新研究生級課程。最近因為疫情,缺乏防護且人員密集的學校成為了重災區。
  • 自步對比學習: 充分挖掘無監督學習樣本
    本文介紹一篇我們發表於NeurIPS-2020的論文《Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID》,該工作提出自步對比學習框架及混合記憶模型,旨在解決無監督及領域自適應表徵學習中數據無法被充分挖掘的問題。
  • 監督學習、非監督學習和強化學習
    learning)、非監督學習(Unsupervised learning)與強化學習(Reinforcement learning),不過在沒有任何概念的前提下,只看定義很難理解它們,我試著用教育孩子的方式來解釋,如果有什麼疏漏之處,歡迎大家指正。
  • 海康威視提出:無監督圖像分類的深度表徵學習
    論文:https://arxiv.org/abs/2006.11480最近因為工作原因,對半監督和無監督論文比較感興趣,今天看到一篇講圖像分類無監督的文章"Unsupervised Image Classification
  • 「半監督學習系列」2. 半監督學習概述
    具體來說,半監督學習包括以下幾種不同的場景:· 半監督分類。也叫做對有標籤數據和無標籤數據(或部分標籤數據)的分類,是一種對監督分類問題的拓展。訓練數據由 1 個標記的實例通常我們會假設無標籤數據比有標籤數據多得多,i.e.u>>l。半監督分類的目標是得到一個分類器,這個分類器是通過對有標籤數據和無標籤數據訓練而得到的,它比我們單獨訓練有標籤數據得到的監督分類器更好。· 約束聚類。這是無監督聚類的一種拓展。訓練數據包括未標記的實例
  • 無監督學習才不是「不要你管」
    無監督學習是機器學習算法裡非常撲朔迷離的一個類別,負責解決這些「沒有真實值 (no-ground-truth) 」的數據。本文會講到,無監督學習到底是什麼,和機器學習的其他算法有何本質區別,用的時候有哪些難點,以及推薦閱讀的傳送門。無監督學習是什麼?
  • 機器學習-無監督學習
    它可以被認為是(多輸出)線性回歸的無監督版本,我們觀察高維響應y並從從觀測到的高維y中推斷出潛在的低維z,詳見12.1節。降維,特別是主成分分析,已經在許多不同的領域得到了應用。一些例子包括以下內容①在生物學中,通常使用PCA來解釋基因微陣列數據,以解釋這樣一個事實,即每次測量通常是許多基因的結果,這些基因的行為是相互關聯的,因為它們屬於不同的生物學途徑。
  • 吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習
    今天帶來第一周課程的筆記:監督式學習和非監督式學習。主要內容:監督學習和無監督學習單變量線性回歸問題代價函數梯度下降算法1-1. 監督學習Supervised Learning利用監督學習預測波士頓房價(回歸問題)大多數情況下,可能會擬合直線有時候用二次曲線去擬合效果可能會更好的
  • 監督學習、非監督學習、強化學習都是什麼?終於有人講明白了
    作者:小川雄太郎來源:大數據DT(ID:hzdashuju)01 術語整理本節概述機器學習及其三個分類(監督學習、非監督學習和強化學習)。02 監督學習、非監督學習、強化學習這裡對三種機器學習(監督學習、非監督學習和強化學習)分別進行介紹。首先說明監督學習。
  • Facebook Yann LeCun一小時演講: AI 研究的下一站是無監督學習(附...
    他在演講中提到三點乾貨:1. 無監督學習代表了 AI 技術的未來。2. 當前 AI 應用的熱點集中在卷積神經網絡。 3. 用模擬器提高無監督學習的效率是大勢所趨。演講完整視頻如下。但這些系統現在用的都是監督學習(supervised learning),輸入的數據被人為加上標籤。接下來的挑戰在於,怎麼讓機器從未經處理的、無標籤無類別的數據中進行學習,比方說視頻和文字。而這就是無監督學習(unsupervised learning)。