無監督學習的魅力

2021-03-06 機器學習算法與自然語言處理

原作:Justin Gage
虛無之慄 編譯自 Algorithmia
量子位 出品 | 公眾號 QbitAI

如果你的一大坨數據沒。有。標。籤,怎麼辦?

無監督學習是機器學習算法裡非常撲朔迷離的一個類別,負責解決這些「沒有真實值 (no-ground-truth) 」的數據。

本文會講到,無監督學習到底是什麼,和機器學習的其他算法有何本質區別,用的時候有哪些難點,以及推薦閱讀的傳送門。

最簡單的理解方式,就是把算法想像成考試。卷子上的每道題對應一個答案,得分高低就要看你的答案和標準答案有多接近。不過,如果沒有答案只有問題,你要怎麼給自己打分?

把這一套東西挪到機器學習上來。傳統的數據集都有標籤 (相當於標答) ,邏輯是「X導致Y」。

比如,我們想要知道,推特上粉絲更多的人,是不是收入也更高。那麼,input是粉絲數,output是收入,要試著找出兩組數據之間的關係。

每顆星是一個數據點,機器學習就是要畫出差不多能連起那些點的一條線,以此解釋input和output之間的關係。但在無監督學習裡,並沒有output這個東西

我們要做的是分析input,也就是粉絲數。但沒有收入,或者Y。就像是考試只有題,沒有標答一樣。

其實,也不一定是沒有Y,可能我們只是沒有辦法獲得收入數據。不過這都不要緊,重要的是不需要畫出X和Y之間的那條線了,不需要找它們之間的關係了。

那麼,無監督學習的目標是什麼?如果只有input沒有output,我們到底該怎麼辦?

聚類(Clustering)

任何行業都需要對用戶的理解:他們是誰?是什麼促使他們做出購買的決定?

通常,用戶可以按照某些標準分為幾組。這些標準可簡單如年齡如性別,也可複雜如用戶畫像、如購買流程。無監督學習可以幫我們自動完成這個任務。

聚類算法會跑過我們的數據,然後找出幾個自然聚類 (Natural Clusters) 。

以用戶為例,一組可能是30多歲的藝術家,另一組可能是家裡養狗的千萬富翁。我們可以自己選擇聚類的數量,這樣就能調整各個組別的粒度 (Granularity) 。

有以下幾種聚類方法可以選用:

· K-Means聚類,把所有數據點劃分到K個互斥組別裡。複雜之處在於如何選取K的大小

· 層次聚類 (Hierarchical Clustering) ,把所有數據點劃分到一些組別、和它們的子組別裡,形成像族譜一樣的樹狀圖。比如,先把用戶按年齡分組,然後把各個組別按照其他標準再細分。

· 概率聚類 (Probabilistic Clustering) ,把所有數據點按照概率來分組。K-Means其實就是它的一種特殊形式,即概率永遠為0或1的情況。所以這種聚類方式,也被親切地稱為「模糊的K-Means」。

這幾種並無本質區別的方法,寫成代碼可能就長這樣——

任何聚類算法的output,都會是所有的數據點、以及它們所對應的組別。這就需要我們自己來判斷,output代表怎樣的含義,或是算法到底發現了什麼。

數據科學的魅力即在於,output加上人類的解讀,便會產生價值。

數據壓縮 (Data Compression)

在過去的十年間,設備的計算能力和存儲能力都增強了許多。不過,即便在今天我們依然有理由,讓數據集儘可能小、並儘可能高效。這意味著,只要讓算法去跑一些必要的數據,而不要做過多的訓練。

無監督學習可以用一種名為數據降維 (Dimentionality Reduction) 的方式做到這一點。

數據降維的「」,就是指數據集有多少列。這個方法背後的概念和資訊理論 (Information Theory) 一樣:假設數據集中的許多數據都是冗餘的,所以只要取出一部分,就可以表示整個數據集的情況了。

在實際應用中,我們需要用某種神秘的方式,把數據集裡的某些部分結合到一起,來傳達某些意義。這裡有我們比較常用的兩種降維方式——

· 主成分分析算法 (PCA) ,找出能夠把數據集裡的大多數變化聯繫起來的線性組合
· 奇異值分解 (SVD) ,把數據的矩陣分解成三個小矩陣

這兩種方法,以及另外一些更複雜的降維方式,都用了線性代數的概念,把矩陣分解成容易消化的樣子,便於傳遞信息。

數據降維可以在機器學習算法裡,起到非常重要的作用。

圖像為例,在計算機視覺裡,一幅圖像就是一個巨大的數據集,訓練起來也很費力。而如果可以縮小訓練用的數據集,模型就可以跑得更快了。這也是為什麼,PCA和SVD都圖像預處理時常見的工具。

無監督深度學習

無監督學習,把領地擴張到了神經網絡和深度學習裡,這一點也不奇怪。這個領域還很年輕,不過已經有了自編碼器 (Autoencoder) 這樣的先行者。

自編碼器和數據壓縮算法背後的邏輯差不多,用一個子集來反映原始數據集的特徵。

像神經網絡一樣,自編碼器利用權重把input轉換成理想的output。不過在這裡,output和input並不是兩種不同的東西,output只是input的一種更輕便的表示方式。

在計算機視覺中,自編碼器被用在圖像識別算法裡。現在,它也已經把觸角伸向聲音和語音識別等更多的領域。

除了尋找合適的算法和硬體,這樣常見的問題之外,無監督學習自帶一種神秘的氣質——不知道任務到底完成了沒有

在監督學習裡,我們會定下一套標準,以做出模型調試的決策。精確度 (Precision) 和查全率 (Recall) 這樣的指標會告訴我們,現在的模型有多準確,然後我們可以調整參數來優化模型。分數低,就要繼續調。

可是,無監督學習的數據沒有標籤,我們就很難有理有據地定下那套衡量標準。以聚類為例,怎麼知道K-Means的分類好不好 (比如K值取的合不合適) ?沒有標準了,我們可能就需要有點創造力。

「無監督學習在我這裡管用麼?」是人們經常提出的問題。這裡,具體問題要具體分析。還以用戶分組為例,只有當你的用戶真的和自然聚類相匹配的時候,聚類的方法才有效。

雖然有些風險,但最好的測試方法,可能就是把無監督模型放到現實世界裡,看看會發生什麼——讓有聚類的和沒有聚類的算法做對比,看聚類能不能得出更有效的信息。

當然,研究人員也在嘗試編寫,自帶 (相對) 客觀評判標準的無監督學習算法。那麼,慄子在哪裡?

友好的傳送門:

https://blog.algorithmia.com/introduction-to-unsupervised-learning/

下拉至Reading and Papers,慄子可能要從那裡開始吃。

 祝您消化順暢

推薦閱讀:

馬爾科夫決策過程之Markov Processes(馬爾科夫過程)

【深度學習實戰】pytorch中如何處理RNN輸入變長序列padding

【機器學習基本理論】詳解最大後驗概率估計(MAP)的理解

          歡迎關注公眾號學習交流~         

相關焦點

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