無監督學習的魅力

2021-02-23 機器學習算法與自然語言處理

原作: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)的理解

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

相關焦點

  • 論文分享|學習無監督學習規則
    學習的更新規則UnsupervisedUpdate(;Ɵ)為了建立更新,在基本模型中每一層l的每一個神經i都有一個輸出hil(;Φ)。所有的更新網絡共享元參數Φ,並且hil只在無監督訓練階段評估。評估每一批數據的單元激活統計量在監督學習中被證明有幫助,同時在手工設計的無監督學習中也被證明。因此我們在每一個訓練批次中讓hil積累統計量。
  • 【無監督學習最新研究】簡單的「圖像旋轉」預測,為圖像特徵學習提供強大監督信號
    我們在各種無監督的特徵學習基準中,對我們的方法進行了詳盡的評估,並在所有這些基準中展示出了最先進的性能。具體來說,我們在這些基準中的結果展現了在無監督的表徵學習中,較之先前最先進的方法,我們的方法取得了巨大改進,從而顯著縮小了與監督特徵學習之間的差距。
  • 無監督學習異常檢測綜述
    這支持了我們的主要目標,即這項工作應該作為為給定任務選擇合適的無監督異常檢測算法的指南。監督異常檢測使用完全標記的數據集進行訓練。半監督異常檢測使用無異常的訓練數據集。之後,測試數據與正常模型的偏差被用來檢測異常。無監督的異常檢測算法僅使用數據的內在信息,以檢測偏離大多數數據的情況。
  • 監督學習、非監督學習和強化學習
    learning)、非監督學習(Unsupervised learning)與強化學習(Reinforcement learning),不過在沒有任何概念的前提下,只看定義很難理解它們,我試著用教育孩子的方式來解釋,如果有什麼疏漏之處,歡迎大家指正。
  • 吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習
    今天帶來第一周課程的筆記:監督式學習和非監督式學習。主要內容:監督學習和無監督學習單變量線性回歸問題代價函數梯度下降算法1-1. 監督學習Supervised Learning利用監督學習預測波士頓房價(回歸問題)大多數情況下,可能會擬合直線有時候用二次曲線去擬合效果可能會更好的
  • GMIS 2017大會鄧力主題演講:無監督學習的最新進展
    上午,Citadel 首席人工智慧官鄧力發表了主題為《無監督學習的最新進展》的演講,他探討分享了無監督學習的優勢,並詳細介紹了隨機原始-對偶梯度方法(SPDG)與其優良的性能,下面我們將一起瀏覽鄧力老師的盛宴。首先鄧力老師介紹了無監督學習的概念和強大之處,鄧力表明無監督的學習範式即是深度學習當中的一種範式。
  • 73歲Hinton老爺子構思下一代神經網絡:屬於無監督對比學習
    Hinton 在此次報告中回顧了神經網絡的發展歷程,並表示下一代神經網絡將屬於無監督對比學習。人工神經網絡最重要的待解難題是:如何像大腦一樣高效執行無監督學習。第一類的典型代表是 BERT 和變分自編碼器(VAE),它們使用深度神經網絡重建輸入。但這類方法無法很好地處理圖像問題,因為網絡最深層需要編碼圖像的細節。
  • 淺談圖上的自監督學習——對比學習
    ,對其中「Contrastive Learning」的內容進行一些解讀,包括一些自監督學習的思路。當筆者初識自監督學習時,通過他人的介紹,僅理解為了一種利用自身性質,標註更多標籤的一種手段,但隨著論文閱讀的增加,對自監督本質的理解越來越迷惑。個人理解,其實任意挖掘對象之間聯繫、探索不同對象共同本質的方法,都或多或少算是自監督學習的思想。
  • 擁有解耦表徵的無監督學習是不可能的!硬核ICML 2019最佳論文出爐
    值得關注的是,ETH Zurich、谷歌大腦等機構的論文《挑戰無監督學習中解耦表徵的一般假設》提出了一個與此前學界普遍預測相反的看法:對於任意數據,擁有相互獨立表徵(解耦表徵)的無監督學習是不可能的!在大會上,獲獎論文的部分作者也現場進行了演講。
  • 手把手教你實現GAN半監督學習
    目前機器視覺領域的急速發展離不開監督學習。而無監督學習的訓練事先沒有訓練標籤,直接輸入給算法一些數據,算法會努力學習數據的共同點,尋找樣本之間的規律性。無監督學習是很典型的學習,人的學習有時候就是基於無監督的,比如我並不懂音樂,但是我聽了上百首歌曲後,我可以根據我聽的結果將音樂分為搖滾樂(記為0類)、民謠(記為1類)、純音樂(記為2類)等等,事實上,我並不知道具體是哪一類,所以將它們記為0,1,2三類。典型的無監督學習方法是聚類算法,比如k-means。
  • 使用Python進行圖像處理—圖像分割的無監督學習
    但是我們實際上可以使用無監督的聚類算法為我們完成此任務。在本文中,我們將討論如何做到這一點。當然,一個缺點是這是一種完全不受監督的學習算法。它並不特別關心任何特定群集背後的含義。作為證據,我們可以看到第二和第四簇都具有狗的突出部分(陰影部分和未陰影部分)。也許運行4個集群過多,讓我們重試集群,但將集群數設置為3。
  • 無監督學習站起來了!Facebook第三代語音識別wav2vec-U,匹敵監督模型,Lecun看了都說好
    Wav2vec-U 是 Facebook 人工智慧在語音識別、自主學習和無監督機器翻譯方面多年努力的結果,也是建造機器的一個重要步驟,機器可以通過學習他們的觀察來解決各種各樣的任務。作者們認為,這項工作將使語音技術可以為世界上更多人所用。圖靈獎得住Yann LeCun也發推特祝賀,表示這是足以匹敵監督學習的非監督模型。
  • AAAI 2019 | 谷歌提出以無監督方式從單目視頻中學習的結構化方法(附開原始碼)
    雖然可以從傳感器數據(比如 LIDAR)中獲得(學習到)深度值,但是也可以只依賴機器人的運動以及因此而產生的不同視角場景,以無監督的方式從單目相機中學到深度值。在這個過程中,也在學習「自我運動(Ego-motion)」(機器人/攝像機在兩個幀之間的運動),它提供了機器人自身的位置。
  • Facebook Yann LeCun最新演講: AI 研究的下一站是無監督學習(附完整視頻加37頁PPT)
    但這些系統現在用的都是監督學習(supervised learning),輸入的數據被人為加上標籤。接下來的挑戰在於,怎麼讓機器從未經處理的、無標籤無類別的數據中進行學習,比方說視頻和文字。而這就是無監督學習(unsupervised learning)。
  • Ian Goodfellow:我最大的失敗是用無監督解決計算機視覺的監督學習問題
    他入選了MIT技術評論的「35 under 35」,他是生成對抗網絡(GAN)的發明者,還是《深度學習》一書的主要作者。最近,他參加了一個名為「How I Fail」的訪談,吐露自己失敗的經歷。我的個人時間大部分都在學習如何使AI安全——例如,如何確保惡意攻擊者無法欺騙AI系統去執行攻擊者的意圖,而不是設計者的意圖。2. 在Twitter上,你曾經發過一份被拒絕學校的名單,可以詳細說說嗎?
  • 無監督學習-自編碼器-補充|深度學習(李宏毅)(二十)
    上一篇:無監督學習-自編碼器|深度學習(李宏毅)(十九)一、最小重構代價之外的方法Using Discriminator
  • CVPR 2020丨無監督動作遷移TransMoMo
    在CVPR 2020上,來自CMU、北京大學、清華大學、商湯研究院的研究者提出了一種無監督的人體動作遷移方法,為動作序列數據建模提供了新思路。該論文提出了一種新穎的動作重定向網絡(Motion Retargeting Network)設計,可以在二維關鍵點空間由無標註的網絡數據端到端地訓練。作者基於不變性設計了新的損失函數,從而賦予網絡無監督地解耦動作特徵表示的能力。
  • Facebook AI 研究院在無監督語音識別上取得新突破,wav2vec-U性能直逼監督模型
    為了學習識別錄音中的單詞,研究人員訓練了一個生成對抗網絡(GAN)。生成器獲取嵌入在自監督表示中的每個發音片段,並預測相對應的音素,鑑別器會評估預測的音素序列是否看起來逼真。一開始,轉錄效果很差,隨著訓練的進行,生成器的生成結果逐漸變得準確。在GAN訓練提供了第一個非監督模型之後,研究人員使用半監督學習的多次迭代逐步完善轉錄的質量。
  • 監督學習和kNN分類初學者教程
    這將是一個實踐演練,我們將能夠在實踐知識的同時學習。作為我們的分類器模型,我們將使用k-NN算法模型,這將在引言部分進行更多介紹。作為程式語言,我們將使用Python。閱讀本教程後,你將更好地了解深度學習和監督學習模型的工作原理。
  • CICC科普欄目 |簡述表徵句子的3種無監督深度學習方法
    Medium作者:yonatan hadar機器之心編譯轉自:機器之心參與:Nurhachu Null、路本文介紹了三種用於表徵句子的無監督深度學習方法本文將介紹幾個用於句子表徵的無監督深度學習方法,並分享相關代碼。我們將展示這些方法在特定文本分類任務中作為預處理步驟的效果。分類任務用來展示不同句子表徵方法的數據基於從全球資訊網抓取的 10000 篇新聞類文章。分類任務是將每篇文章歸類為 10 個可能的主題之一(數據具備主題標籤,所以這是一個有監督的任務)。