半監督分類演算法
⑴ 使用不可靠偽標簽的半監督語義分割
CVPR2022
https://arxiv.org/pdf/2203.03884.pdf
Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels
半監督語義分割的關鍵是為未標記圖像的像素分配足夠的偽標簽。一種常見的做法是選擇高置信度的預測作為偽真值,但這會導致一個問題,即大多數像素可能由於不可靠而未被使用。我們認為,每個像素對模型訓練都很重要,即使它的預測是模糊的。直覺上,不可靠的預測可能會在頂級類別(即概率最高的類別)中混淆,但雀轎是,它應該對不屬於其餘類別的像素有信心。因此,對於那些最不可能的類別,這樣一個像素可以令人信服地視為負樣本。基於這一認識,我們開發了一個有效的管道,以充分利用未標記的數據。具體地說,我們通過預測春拍熵來分離可靠和不可靠像素,將每個不可靠像素推送到由負樣本組頃森肆成的類別隊列中,並設法用所有候選像素來訓練模型。考慮到訓練進化,預測變得越來越准確,我們自適應地調整可靠-不可靠劃分的閾值。在各種基準和訓練環境下的實驗結果表明,我們的方法優於最先進的替代方法。
1.導言
語義分割是計算機視覺領域的一項基本任務,隨著深度神經網路的興起,語義分割得到了極大的發展[5,29,35,46]。現有的有監督方法依賴於大規模帶注釋的數據,在實踐中獲取這些數據的成本太高。為了緩解這個問題,人們進行了許多嘗試[1,4,9,15,21,33,43,48]來實現半監督語義分割,即學習只有少量標記樣本和大量未標記樣本的模型。在這種情況下,如何充分利用未標記的數據變得至關重要。
典型的解決方案是為沒有注釋的像素分配偽標簽。具體地說,給定一個未標記的圖像,現有技術[27,41]從基於標記數據訓練的模型中借用預測,並使用像素預測作為「基本事實」,從而增強監督模型。為了緩解確認偏差的問題[2],模型可能會受到錯誤的偽標簽的影響,現有方法建議使用置信度分數過濾預測[42,43,50,51]。換句話說,只有高置信度的預測被用作偽標簽,而模糊的預測被丟棄。
然而,僅使用可靠的預測所導致的一個潛在問題是,在整個訓練過程中可能永遠無法學習某些像素。例如,如果模型不能令人滿意地預測某個特定類別(例如,圖1中的椅子),則很難為關於該類別的像素分配准確的偽標簽,這可能導致訓練不足且絕對不平衡。從這個角度出發,我們認為,為了充分利用未標記的數據,每個像素都應該得到適當的利用。
如上所述,直接使用不可靠的預測作為偽標簽將導致性能下降[2]。在本文中,我們提出了一種使用不可靠偽標簽的替代方法。我們稱我們的框架為U2PL。首先,我們觀察到,一個不可靠的預測通常只會在少數幾個類中混淆,而不是在所有類中混淆。以圖2為例,帶有白色十字的像素在等級摩托車和人身上接收到相似的概率,但模型非常確定該像素不屬於等級汽車和火車。基於這一觀察,我們重新考慮那些令人困惑的像素,將其作為那些不太可能的類別的負樣本。具體來說,在從未標記圖像獲得預測後,我們使用每像素熵作為度量(參見圖2a),將所有像素分為兩組,即可靠和不可靠。所有可靠的預測都被用來導出正的偽標簽,而預測不可靠的像素被推入充滿負樣本的內存庫。為了避免所有負面偽標簽只來自類別的子集,我們為每個類別使用了一個隊列。這樣的設計確保了每個類的負樣本數量是平衡的。同時,考慮到偽標簽的質量隨著模型的精確性越來越高,我們提出了一種自適應調整閾值的策略來劃分可靠像素和不可靠像素。
我們在廣泛的訓練環境下,在PASCAL VOC 2012[14]和Cityscapes[10]上評估了提議的U2PL,我們的方法超過了最先進的競爭對手。此外,通過可視化分割結果,我們發現,由於充分使用了不可靠的偽標簽,我們的方法在那些模糊區域(例如,不同對象之間的邊界)上取得了更好的性能。
2.相關工作
半監督學習有兩種典型範例:
一致性正則化[3,15,33,36,42]和熵最小化[4,16]。最近,一個更直觀但有效的框架:自訓練[27]已成為主流。有幾種方法[15,43,44]利用了強大的數據增強功能,例如基於自訓練的CutOut[13]、CutMix[45]和ClassMix[31]。然而,這些方法並沒有太多關注語義分割的特點,而我們的方法主要關注那些不可靠的像素,這些像素將被大多數基於自訓練的方法過濾掉[34,43,44]。
當從教師網路生成輸入圖像的預測時,偽標簽用於防止過度擬合到正確的偽標簽[2,27]。FixMatch[37]利用置信閾值來選擇可靠的偽標簽。UPS[34]是一種基於FixMatch[37]的方法,它考慮了模型不確定性和數據不確定性。然而,在半監督語義分割中,我們的實驗表明,在訓練中加入不可靠的像素可以提高性能。
計算機視覺中的模型不確定性主要通過貝葉斯深度學習方法進行測量[12,23,30]。在我們的環境中,我們不關注如何測量不確定性。我們簡單地使用像素概率分布的熵作為度量。
對比學習被許多成功的研究成果應用於自監督學習[7,8,17]。在語義切分中,對比學習已經成為一種很有前途的新範式[1,28,40,47,49]。然而,這些方法忽略了半監督分割中常見的假負樣本,不可靠的像素可能會在對比丟失中被錯誤地推開。區分不太可能的不可靠像素類別可以解決這個問題。
負面學習旨在通過降低負面樣本的概率來降低錯誤信息的風險[24,25,34,39],但這些負面樣本的選擇具有較高的可信度。換言之,這些方法仍然使用可靠的預測。相比之下,我們建議充分利用這些不可靠的預測進行學習,而不是將其過濾掉。
3.方法
在這一節中,我們從數學上建立了我們的問題,並在第二節中概述了我們提出的方法。3.1首先。我們過濾可靠偽標簽的策略將在第二節中介紹。3.2. 最後,我們描述了如何在Sec中使用不可靠的偽標簽。3.3.
3.1. 概述
給定一個標記集Dl=(x l i,y l i)Nl i=1和一個更大的未標記集Du={x u i}Nu i=1,我們的目標是通過利用大量未標記數據和較小的標記數據集來訓練語義分割模型。
圖3給出了U2PL的概述,它遵循典型的自訓練框架,具有相同架構的兩個模型,分別命名為教師和學生。這兩個模型只有在更新權重時才有所不同。學生模型的權重θs更新與常規做法一致,而教師模型的權重θt是由學生模型的權重更新的指數移動平均(EMA)。每個模型由一個基於CNN的編碼器h、一個帶有分割頭f的解碼器和一個表示頭g組成。在每個訓練步驟中,我們對B標記圖像Bl和B未標記圖像Bu進行同等采樣。對於每個標記的圖像,我們的目標是最小化等式(2)中的標准交叉熵損失。對於每個未標記的圖像,我們首先將其放入教師模型中並進行預測。然後,基於像素級熵,我們在計算等式(3)中的無監督損失時忽略了不可靠的像素級偽標簽。這一部分將在第二節中介紹。3.2詳細說明。最後,我們使用對比損失來充分利用非監督損失中排除的不可靠像素,這將在第二節中介紹。3.3.
我們的優化目標是最大限度地減少總體損失,具體如下:
其中Ls和Lu分別表示標記圖像和未標記圖像上的監督損失和非監督損失,Lc表示充分利用不可靠偽標簽的對比損失。λu和λc分別是無監督損失和對比損失的權重。Ls和Lu都是交叉熵(CE)損失:
其中,y l i表示第i個標記圖像的手注釋遮罩標簽,yˆu i是第i個未標記圖像的偽標簽。F◦ h是h和f的合成函數,這意味著圖像首先被送入h,然後被送入f以得到分割結果。Lc是像素級信息[32]損耗,定義為:
其中M是錨像素的總數,zci表示類c的第i個錨的表示。每個錨像素後面有一個正樣本和N個負樣本,其表示為z+ci和z− 分別是cij。注意z=g◦ h(x)是表示頭的輸出。h·,·i是來自兩個不同像素的特徵之間的餘弦相似性,其范圍限制在−1到1,因此需要溫度τ。在[28]之後,我們設定M=50,N=256,τ=0.5。
3.2. 偽標記
為了避免過度擬合錯誤的偽標簽,我們利用每個像素概率分布的熵來過濾高質量的偽標簽,以便進一步監督。具體來說,我們表示pij∈ R C為教師模型的分割頭在像素j處為第i個未標記圖像生成的softmax概率,其中C為班級數量。其熵由以下公式計算:
其中,pij(c)是第c維的pij值。
然後,我們將熵在αt上的像素定義為不可靠的偽標簽,這種不可靠的偽標簽不適合監督。因此,我們將像素j處第i個未標記圖像的偽標簽定義為:
式中,γt表示第t個訓練步驟的熵閾值。我們將γt設為對應於αt的分位數,即γt=np。百分位(H.flatte(),100*(1-αt)),其中H是每像素熵圖。為了提高性能,我們在偽標記過程中採用了以下調整策略。
動態分區調整。
在訓練過程中,偽標簽逐漸趨於可靠。基於這種直覺,我們在每個歷元用線性策略調整不可靠像素的比例αt:
其中α0為初始比例,設置為20%,t為當前訓練時間。
自適應體重調整。
在獲得可靠的偽標簽後,我們將其納入等式(3)中的無監督損失中。該損失的權重λu定義為當前小批量中熵小於閾值γt的像素百分比乘以基本權重η的倒數:
其中1(·)為指示器功能,η設為1。
3.3. 使用不可靠的偽標簽
在半監督學習任務中,丟棄不可靠的偽標簽或降低其權重被廣泛用於防止模型性能下降[37,41,43,50]。我們遵循這一直覺,根據公式(6)過濾掉不可靠的偽標簽。
然而,這種對不可靠偽標簽的蔑視可能會導致信息丟失。顯然,不可靠的偽標簽可以提供更好的識別信息。例如,圖2中的白色十字是典型的不可靠像素。它的分布顯示了模型的不確定性,以區分階級的人和階級的摩托車。然而,這種分布也證明了模型的確定性,即不會將該像素區分為普通汽車、普通火車、普通自行車等。這種特性為我們提出使用不可靠的偽標簽進行半監督語義分割提供了主要依據。
U2PL的目標是利用不可靠的偽標簽信息進行更好的區分,這與最近流行的對比學習範式在區分表徵方面是一致的。但由於在半監督語義分割任務中缺少標記圖像,我們的U2PL基於更復雜的策略。U2PL有三個組件,分別命名為錨像素、正候選和負候選。這些分量是以抽樣的方式從某些集合中獲得的,以減少巨大的計算成本。接下來,我們將介紹如何選擇:(a)錨定像素(查詢);(b) 每個錨的正樣本;(c) 每個錨的負樣本。錨定像素。在訓練期間,我們為當前小批量中出現的每個類采樣錨像素(查詢)。我們將c類的所有標記候選錨像素的特徵集表示為Al c,
其中,yij是標記圖像i的第j個像素的基本真值,δp表示特定類別的正閾值,並在[28]之後設置為0.3。zij的意思是
標記圖像i的第j個像素的表示。對於未標記數據,對應的Au c可計算為:
它與Al c類似,唯一的區別是我們使用基於等式(6)的偽標簽yˆij,而不是手工標注的標簽,這意味著合格的錨像素是可靠的,即H(pij)≤ γt。因此,對於c級,所有合格的錨定裝置
正樣本。
同一類別的所有錨的正樣本相同。它是所有可能錨定的中心:
負樣本。
我們定義了一個二進制變數nij(c)來識別圖像i的第j個像素是否符合c類負樣本的條件。
其中,nlij(c)和nuij(c)是標記圖像i和未標記圖像i的第j個像素是否分別合格為c類負樣本的指示符。
對於第i個標記圖像,c類合格負樣本應為:(a)不屬於c類;(b) 很難區分c類和它的基本事實類別。因此,我們引入像素級別的類別順序Oij=argsort(pij)。顯然,我們有Oij(arg max pij)=0和Oij(arg min pij)=C− 1.
其中rl是低秩閾值,設置為3。這兩個指標分別反映了特徵(a)和(b)。
對於c類樣品:(i)對於a類樣品,不可靠;(b) 可能不屬於c類;(c) 不屬於最不可能的類別。類似地,我們也使用Oij來定義nuij(c):其中rh是高階閾值,設置為20。最後,c類的負樣本集是
分類記憶庫。
由於數據集的長尾現象,某些特定類別的負面候選數據在小批量中非常有限。為了保持負樣本的穩定數量
我們使用分類記憶庫Qc(FIFO隊列)存儲c類的負樣本。
最後,演算法1展示了使用不可靠偽標簽的整個過程。錨的所有特徵都與梯度有關,因此來自學生,而正樣本和負樣本的特徵則來自教師。
4.實驗
4.1. 安裝程序
數據集。
PASCAL VOC 2012[14]數據集是一個標準的語義分割基準,包含20個對象語義類和1個背景語義類。訓練集和驗證集分別包括1464和1449張圖像。在[9,21,43]之後,我們使用SBD[18]作為增廣集,增加了9118張額外的訓練圖像。由於SBD[18]數據集是粗略注釋的,PseudoSeg[50]只將標准1464幅圖像作為整個標記集,而其他方法[9,21]將所有10582幅圖像作為候選標記數據。因此,我們在經典集(1464張候選標記圖像)和混合集(10582張候選標記圖像)上評估了我們的方法。Cityscapes[10]是一個為城市場景理解而設計的數據集,由2975張帶有精細注釋的面具的訓練圖像和500張驗證圖像組成。對於每個數據集,我們將U2PL與1/2、1/4、1/8和1/16分區協議下的其他方法進行比較。
網路結構。
我們使用在ImageNet[11]上預先訓練過的ResNet-101[19]作為主幹,使用DeepLabv3+[6]作為解碼器。分割頭和表示頭都由兩個Conv BN ReLU塊組成,其中兩個塊都保持特徵圖解析度,第一個塊將通道數減半。分割頭可以看作是一個像素級分類器,將ASPP模塊輸出的512維特徵映射到C類中。表示頭將相同的特徵映射到256維的表示空間。
評價
按照之前的方法[15,21,33,48],圖像被中心裁剪成PASCAL VOC 2012的固定解析度。對於城市景觀,以前的方法適用於幻燈片窗口評估,我們也是。然後,我們採用聯合上的相交平均值(mIoU)作為度量來評估這些裁剪圖像。所有結果均在城市景觀[10]和PASCAL VOC 2012[14]上的val集上測量。在1/4和1/8分區方案下,對攪拌器PASCAL VOC 2012[14]val進行了燒蝕研究。
實施細節。
對於攪拌機和經典PASCAL VOC 2012數據集的訓練,我們使用了隨機梯度下降(SGD)優化器,初始學習率為0.001,重量衰減為0.0001,作物大小為513×513,批量大小為16,訓練時間為80。對於城市景觀數據集上的訓練,我們還使用了隨機梯度下降(SGD)優化器,初始學習率為0.01,權重衰減為0.0005,作物大小為769×769,批量大小為16,訓練時間為200。在所有實驗中,解碼器的學習速度是主幹網的十倍。在訓練過程中,我們使用poly調度來衰減學習率:lr=lrbase·
4.2. 與現有備選方案的比較
我們將我們的方法與以下最新的半監督語義切分方法進行了比較:均值教師(MT)[38]、CCT[33]、GCT[22]、偽SEG[50]、CutMix[15]、CPS[9]、PC2Seg[48]、AEL[21]。我們重新實現了MT[38],CutMix[45],以進行公平比較。對於城市景觀[10],我們還復制了CPS[9]和AEL[21]。所有結果都配備了相同的網路架構(DeepLabv3+作為解碼器,ResNet-101作為編碼器)。需要注意的是,經典PASCAL VOC 2012數據集和blender PASCAL VOC 2012數據集僅在訓練集上有所不同。他們的驗證集是相同的,共有1449張圖像。
經典PASCAL VOC 2012數據集的結果。
標簽。我們的經典VOC-2012數據集與其他最先進的方法PASCAL-1進行了比較。在1/16、1/8、1/4和1/2分區協議下,U2PL的性能分別比監督基線高出+22.21%、+14.23%、+7.78%和+4.47%。為了公平比較,我們只列出在經典PASCAL VOC 2012上測試的方法。在1/16、1/8、1/4和1/2分區協議下,我們的方法U2PL在所有分區協議下的性能分別比PC2Seg高出+10.98%、+2.87%、+3.88%和+3.11%。即使在完全監督下,我們的方法也比PC2Seg高出+5.34%。
blender PASCAL VOC 2012數據集的結果。
標簽。2顯示了blender PASCAL VOC 2012數據集上的比較結果。在大多數分區協議下,我們的方法U2PL優於所有其他方法。與基線模型(僅使用監督數據進行訓練)相比,U2PL在1/16、1/8、1/4和1/2分區協議下分別實現了+9.34%、+7.46%、+3.50%和+3.37%的所有改進。與現有的最先進的方法相比,U2PL在所有分區協議下都優於它們。特別是在1/8協議和1/4協議下,U2PL的性能優於AEL,分別為+1.44%和+1.24%。
城市景觀數據集上的結果。
標簽。CitySVal 3演示了在Capes集合上的比較結果。在1/16、1/8、1/4和1/2分區協議下,U2PL的性能比僅受監督的基線提高了+9.16%、+3.95%、+4.08%和+1.29%。U2PL的性能顯著優於現有的最先進方法。特別是,在1/16、1/8、1/4和1/2分區協議下,U2PL的性能優於AEL,分別為+0.45%、+0.93%、+1.03%和+0.11%。
請注意,當標記數據非常有限時,例如,當我們只有92個標記數據時,我們的U2PL比以前的方法有很大的優勢(對於經典的PASCAL VOC 2012,在1/16分割下(+10.98%),證明了使用不可靠偽標簽的效率。
4.3. 消融研究
使用不可靠偽標簽的有效性。
為了證明我們的核心觀點,即使用不可靠的偽標簽促進半監督語義分割,我們進行了關於選擇可靠性不同的否定候選詞(第3.3節)的實驗。標簽。4演示了PASCAL VOC 2012 val集合上的mIoU結果。「不可靠」優於其他選項,證明使用不可靠的偽標簽確實有幫助。附錄B顯示了在城市景觀上使用不可靠偽標簽的有效性。
概率等級閾值的有效性。
秒。3.3建議使用概率等級閾值來平衡不可靠像素造成的信息量和混亂。標簽。5驗證了這種平衡能促進績效。rl=3和rh=20的表現大大優於其他選項。當rl=1時,假負候選不會被過濾掉,從而導致像素的類內特徵被Lc錯誤區分。當rl=10時,否定候選詞傾向於在語義上與相應的錨像素無關,這使得這種區分的信息量較小。附錄D.2研究了城市景觀的PRT和α0。
組件的有效性。
我們在Tab中進行實驗。6.逐步燒蝕U2PL的每個組件。為了公平比較,在blender PASCAL VOC 2012數據集上,所有燒蝕都在1/4分區協議下。最重要的是,我們使用無Lc訓練模型作為基線,實現了73.02%的mIoU(表2中的MT)。只需在不使用DPA策略的情況下添加Lc即可將基線提高+4.06%。分類存儲庫Qc,加上PRT和高熵過濾,比基線提高了+5.47%。動態分區調整(DPA)與高熵過濾相結合,比基線提高了+6.05%。請注意,DPA是一種無需調諧的線性調整(參考等式(7)),它簡單而有效。對於概率秩閾值(PRT)分量,我們根據製表符設置相應的參數。5.在沒有高熵過濾的情況下,改善率在+4.55%時顯著降低。最後,當將所有貢獻相加時,我們的方法在1/4分區協議下達到了最新的結果,mIoU為79.30%。根據這個結果,我們在Tab上的所有實驗中應用這些組件和相應的參數。2和標簽。1.
超消融參數研究。
我們燒蝕了U2PL的以下重要參數。標簽。7研究了不同初始可靠不可靠分區的影響。該參數α0對性能有一定影響。我們發現α0=20%達到最佳性能。小的α0會引入不正確的偽標簽進行監督,大的α0會使一些高置信度樣本的信息未被充分利用。附錄D.1研究了其他超參數。
4.4. 定性結果
圖4顯示了PASCAL VOC 2012 val集合上不同方法的結果。得益於使用不可靠的偽標簽,U2PL優於其他方法。請注意,在不過濾那些不可靠像素的情況下使用對比學習,有時會對模型造成損害(參見圖4中的第2行和第4行),導致比僅使用標記數據訓練模型時更糟糕的結果。
此外,通過對分割結果的可視化,我們發現我們的方法獲得了更好的分割效果
這些模糊區域(例如,不同對象之間的邊界)上的性能。這種視覺差異證明,我們的方法最終增強了不可靠預測標簽的可靠性。
5.結論
我們提出了一個半監督語義切分框架U2PL,該框架將不可靠的偽標簽加入到訓練中,其性能優於許多現有的最先進的方法,這表明我們的框架為半監督學習研究提供了一個新的有希望的範例。我們的燒蝕實驗證明了這項工作的洞察力是非常可靠的。定性結果為其有效性提供了直觀的證明,尤其是在語義對象或其他模糊區域之間的邊界上表現更好。與完全監督的方法相比,我們的方法的訓練非常耗時[5,6,29,35,46],這是半監督學習任務的一個常見缺點[9,20,21,33,43,48]。由於標簽的極度缺乏,半監督學習框架通常需要為更高的准確性及時付出代價。未來可以對他們的訓練優化進行更深入的探索。
⑵ 機器學習的類型有
機器學習的類型有
是否在人類監督下學習(消稿辯監督學習、非監督學習、半監督學習和強化學習)
是否可以動態的增量學習(在線學習和批量學習)
是簡單的將新的數據點和已知的數據點進行匹配,還是像科學家那樣對訓練數據進行模型檢測,然後建立一個預測模型(基於實例的學習和基於模型的學習)
一、監督學習和非監督學習
根據訓練期間接受的監督數量和監督類型,可以將機器學習分為以下四種類型:監督學習、非監督學習、半監督學習和強化學習。
1.1 監督學習
在監督學習中,提供給演算法的包含所需解決方案的訓練數據,成為標簽或標記。
簡單地說,就是監督學習是包含自變數和因變數(有Y),同時可以用於分類和回歸。下來常見的演算法都是監督學習演算法。
K近鄰演算法
線性回歸
logistic回歸
支持向量機(SVM)
決策樹和隨機森林
神經網路
聚類演算法
K均值演算法(K-means)
基於密度的聚類方法(DBSCAN)
最大期望演算法
可視化和降維
主成分分析
核主成分分析
關聯規則學習
Apriori
Eclat
監督學習: 監督學習是機器學習中最常見的方法之一,在監督學習中,系統會被給定一組已知輸入和輸出的樣本數據,系統需要學習到一種函數,使得該函數能夠根據給定的輸入預測出正確的輸出。
無監督學習: 無監督學習是機器學習中另一種常見的方法。在無監督學習中,系統只有輸入數據,沒有輸出數據。系統需要學習到一種函數,使得該函數能夠將輸入數據自動分類。
半監督學習: 半監督學習是一種混合監督學習和無監督學習的方法。在半監督學習中,系統會被給定一部分已知輸入和輸出的樣本數據和一部分未知的輸入數據,系統需要利用已知的樣本數據來學習到一種函數,使得該函數能夠根據未知的輸入數據預測出正確的輸出。
強化學習: 強化學習是一種基於環境和反饋的學習方法,系統在不斷的交互中學習野敗坦到最優策略。
聚類: 聚類是機器學習中的一種無監督學習方法,它的目的是將數據分成不同的群體,使得群體內的數據相似性最大,頌桐群體間的數據相似性最小。
降維: 降維是機器學習中的一種無監督學習方法,它的目的是降低數據的維度,使得數據更容易被分析。
深度學習: 深度學習是機器學習中一種基於神經網路的學習方法,它通過構建多層神經網路來模擬人類大腦進行學習。深度學習在計算機視覺、語音識別、自然語言處理等領域有著廣泛的應用。
遞歸神經網路: 遞歸神經網路是一種特殊的深度學習方法,它通過遞歸的方式來處理序列枯雀數據,在自然語言處理、語音識別等領域有著廣泛的應用。
貝葉斯學習: 貝葉斯學習是一種基於概率論和統計學的學習方法,它通過貝葉斯定理來進行學習和預測。
統計學習方法: 統計學習方法是一類基於統計學理論的機器學習方法,它通過統計學模型和優化演算法來進行學習和預測。包括線性回歸、邏輯回歸、樸素貝葉斯等。
這些方法都有其特點和適用范圍,在實際應用中要根據問題具體情況來選擇合適的方法。
1.2 無監督學習
無監督學習的訓練數據都是未經標記的,演算法會在沒有指導的情況下自動學習。
簡單地說,就是訓練數據只有自變數沒有因變數(就是沒有Y)。
無監督學習的常見演算法如下:
比如說,我們有大量的購物訪客的數據,包括一個月內的到達次數、購買次數、平均客單價、購物時長、購物種類、數量等,我們可以通過聚類演算法,自動的把這些人分成幾個類別,分類後,我們可以人工的把這些分類標記,如企業客戶、家庭主婦等,也可以分成更細的分類
⑶ 人工智慧演算法簡介
人工智慧的三大基石—演算法、數據和計算能力,演算法作為其中之一,是非常重要的,那麼人工智慧都會涉及哪些演算法呢?不同演算法適用於哪些場景呢?
一、按照模型訓練方式不同可以分為監督學習(Supervised Learning),無監督學習(Unsupervised Learning)、半監督學習(Semi-supervised Learning)和強化學習(Reinforcement Learning)四大類。
常見的監督學習演算法包含以下幾類:
(1)人工神經網路(Artificial Neural Network)類:反向傳播(Backpropagation)、波爾茲曼機(Boltzmann Machine)、卷積神經網路(Convolutional Neural Network)、Hopfield網路(hopfield Network)、多層感知器(Multilyer Perceptron)、徑向基函數網路(Radial Basis Function Network,RBFN)、受限波爾茲曼機(Restricted Boltzmann Machine)、回歸神經網路(Recurrent Neural Network,RNN)、自組織映射(Self-organizing Map,SOM)、尖峰神經網路(Spiking Neural Network)等。
(2)貝葉斯類(Bayesin):樸素貝葉斯(Naive Bayes)、高斯貝葉斯(Gaussian Naive Bayes)、多項樸素貝葉斯(Multinomial Naive Bayes)、平均-依賴性評估(Averaged One-Dependence Estimators,AODE)
貝葉斯信念網路(Bayesian Belief Network,BBN)、貝葉斯網路(Bayesian Network,BN)等。
(3)決策樹(Decision Tree)類:分類和回歸樹(Classification and Regression Tree,CART)、迭代Dichotomiser3(Iterative Dichotomiser 3, ID3),C4.5演算法(C4.5 Algorithm)、C5.0演算法(C5.0 Algorithm)、卡方自動交互檢測(Chi-squared Automatic Interaction Detection,CHAID)、決策殘端(Decision Stump)、ID3演算法(ID3 Algorithm)、隨機森林(Random Forest)、SLIQ(Supervised Learning in Quest)等。
(4)線性分類器(Linear Classifier)類:Fisher的線性判別(Fisher』s Linear Discriminant)
線性回歸(Linear Regression)、邏輯回歸(Logistic Regression)、多項邏輯回歸(Multionmial Logistic Regression)、樸素貝葉斯分類器(Naive Bayes Classifier)、感知(Perception)、支持向量機(Support Vector Machine)等。
常見的無監督學習類演算法包括:
(1) 人工神經網路(Artificial Neural Network)類:生成對抗網路(Generative Adversarial Networks,GAN),前饋神經網路(Feedforward Neural Network)、邏輯學習機(Logic Learning Machine)、自組織映射(Self-organizing Map)等。
(2) 關聯規則學習(Association Rule Learning)類:先驗演算法(Apriori Algorithm)、Eclat演算法(Eclat Algorithm)、FP-Growth演算法等。
(3)分層聚類演算法(Hierarchical Clustering):單連鎖聚類(Single-linkage Clustering),概念聚類(Conceptual Clustering)等。
(4)聚類分析(Cluster analysis):BIRCH演算法、DBSCAN演算法,期望最大化(Expectation-maximization,EM)、模糊聚類(Fuzzy Clustering)、K-means演算法、K均值聚類(K-means Clustering)、K-medians聚類、均值漂移演算法(Mean-shift)、OPTICS演算法等。
(5)異常檢測(Anomaly detection)類:K最鄰近(K-nearest Neighbor,KNN)演算法,局部異常因子演算法(Local Outlier Factor,LOF)等。
常見的半監督學習類演算法包含:生成模型(Generative Models)、低密度分離(Low-density Separation)、基於圖形的方法(Graph-based Methods)、聯合訓練(Co-training)等。
常見的強化學習類演算法包含:Q學習(Q-learning)、狀態-行動-獎勵-狀態-行動(State-Action-Reward-State-Action,SARSA)、DQN(Deep Q Network)、策略梯度演算法(Policy Gradients)、基於模型強化學習(Model Based RL)、時序差分學習(Temporal Different Learning)等。
常見的深度學習類演算法包含:深度信念網路(Deep Belief Machines)、深度卷積神經網路(Deep Convolutional Neural Networks)、深度遞歸神經網路(Deep Recurrent Neural Network)、分層時間記憶(Hierarchical Temporal Memory,HTM)、深度波爾茲曼機(Deep Boltzmann Machine,DBM)、棧式自動編碼器(Stacked Autoencoder)、生成對抗網路(Generative Adversarial Networks)等。
二、按照解決任務的不同來分類,粗略可以分為二分類演算法(Two-class Classification)、多分類演算法(Multi-class Classification)、回歸演算法(Regression)、聚類演算法(Clustering)和異常檢測(Anomaly Detection)五種。
1.二分類(Two-class Classification)
(1)二分類支持向量機(Two-class SVM):適用於數據特徵較多、線性模型的場景。
(2)二分類平均感知器(Two-class Average Perceptron):適用於訓練時間短、線性模型的場景。
(3)二分類邏輯回歸(Two-class Logistic Regression):適用於訓練時間短、線性模型的場景。
(4)二分類貝葉斯點機(Two-class Bayes Point Machine):適用於訓練時間短、線性模型的場景。(5)二分類決策森林(Two-class Decision Forest):適用於訓練時間短、精準的場景。
(6)二分類提升決策樹(Two-class Boosted Decision Tree):適用於訓練時間短、精準度高、內存佔用量大的場景
(7)二分類決策叢林(Two-class Decision Jungle):適用於訓練時間短、精確度高、內存佔用量小的場景。
(8)二分類局部深度支持向量機(Two-class Locally Deep SVM):適用於數據特徵較多的場景。
(9)二分類神經網路(Two-class Neural Network):適用於精準度高、訓練時間較長的場景。
解決多分類問題通常適用三種解決方案:第一種,從數據集和適用方法入手,利用二分類器解決多分類問題;第二種,直接使用具備多分類能力的多分類器;第三種,將二分類器改進成為多分類器今兒解決多分類問題。
常用的演算法:
(1)多分類邏輯回歸(Multiclass Logistic Regression):適用訓練時間短、線性模型的場景。
(2)多分類神經網路(Multiclass Neural Network):適用於精準度高、訓練時間較長的場景。
(3)多分類決策森林(Multiclass Decision Forest):適用於精準度高,訓練時間短的場景。
(4)多分類決策叢林(Multiclass Decision Jungle):適用於精準度高,內存佔用較小的場景。
(5)「一對多」多分類(One-vs-all Multiclass):取決於二分類器效果。
回歸
回歸問題通常被用來預測具體的數值而非分類。除了返回的結果不同,其他方法與分類問題類似。我們將定量輸出,或者連續變數預測稱為回歸;將定性輸出,或者離散變數預測稱為分類。長巾的演算法有:
(1)排序回歸(Ordinal Regression):適用於對數據進行分類排序的場景。
(2)泊松回歸(Poission Regression):適用於預測事件次數的場景。
(3)快速森林分位數回歸(Fast Forest Quantile Regression):適用於預測分布的場景。
(4)線性回歸(Linear Regression):適用於訓練時間短、線性模型的場景。
(5)貝葉斯線性回歸(Bayesian Linear Regression):適用於線性模型,訓練數據量較少的場景。
(6)神經網路回歸(Neural Network Regression):適用於精準度高、訓練時間較長的場景。
(7)決策森林回歸(Decision Forest Regression):適用於精準度高、訓練時間短的場景。
(8)提升決策樹回歸(Boosted Decision Tree Regression):適用於精確度高、訓練時間短、內存佔用較大的場景。
聚類
聚類的目標是發現數據的潛在規律和結構。聚類通常被用做描述和衡量不同數據源間的相似性,並把數據源分類到不同的簇中。
(1)層次聚類(Hierarchical Clustering):適用於訓練時間短、大數據量的場景。
(2)K-means演算法:適用於精準度高、訓練時間短的場景。
(3)模糊聚類FCM演算法(Fuzzy C-means,FCM):適用於精確度高、訓練時間短的場景。
(4)SOM神經網路(Self-organizing Feature Map,SOM):適用於運行時間較長的場景。
異常檢測
異常檢測是指對數據中存在的不正常或非典型的分體進行檢測和標志,有時也稱為偏差檢測。
異常檢測看起來和監督學習問題非常相似,都是分類問題。都是對樣本的標簽進行預測和判斷,但是實際上兩者的區別非常大,因為異常檢測中的正樣本(異常點)非常小。常用的演算法有:
(1)一分類支持向量機(One-class SVM):適用於數據特徵較多的場景。
(2)基於PCA的異常檢測(PCA-based Anomaly Detection):適用於訓練時間短的場景。
常見的遷移學習類演算法包含:歸納式遷移學習(Inctive Transfer Learning) 、直推式遷移學習(Transctive Transfer Learning)、無監督式遷移學習(Unsupervised Transfer Learning)、傳遞式遷移學習(Transitive Transfer Learning)等。
演算法的適用場景:
需要考慮的因素有:
(1)數據量的大小、數據質量和數據本身的特點
(2)機器學習要解決的具體業務場景中問題的本質是什麼?
(3)可以接受的計算時間是什麼?
(4)演算法精度要求有多高?
————————————————
原文鏈接: https://blog.csdn.net/nfzhlk/article/details/82725769
⑷ 回歸演算法屬於半監督演算法嗎
回歸演算法是監督演算法,用於查找不同橡並絕變數之間的可能關系,以了解自變數對因變數的影響程度。可以將回歸分析視為一個方程,例如,假設有方程蔽纖y = 2x + z,y是因變數,則x,z是自變數。梁姿回歸分析就是找出x和z在多大程度上影響y的值。
⑸ 半監督學習的基本假設
SSL的成立依賴於模型假設,當模型假設正確時,無類標簽的樣例能夠幫助改進學習性能。SSL依賴的假設有以下三個:
1)平滑假設(Smoothness Assumption):位於稠密數據區域的兩個距離很近的樣例的類標簽相似,也就是說,當兩個樣例被稠密數據區域中的邊連接時,它們在很大的概率下有相同的類標簽;相反地,當兩個樣例被稀疏數據區域分開時,它們的類標簽趨於不同。
2)聚類假設(Cluster Assumption):當兩個樣例位於同一聚類簇時,它們在很大的概率下有相同的類標簽。這個假設的等價定義為低密度分離假設(Low Sensity Separation Assumption),即分類決策邊界應該穿過稀疏數據區域,而避免將稠密數據區域的樣例分到決策邊界兩側。
聚類假設是指樣本數據間的距離相互比較近時,則他們擁有相同的類別。根據該假設,分類邊界就必須盡可能地通過數據較為稀疏的地方,以能夠避免把密集的樣本數據點分到分類邊界的兩側。在這一假設的前提下,學習演算法就可以利用大量未標記的樣本數據來分析樣本空間中樣本數據分布情況,從而指導學習演算法對分類邊界進行調整,使其盡量通過樣本數據布局比較稀疏的區域。例如,Joachims提出的轉導支持向量機演算法,在訓練過程中,演算法不斷修改分類超平面並交換超平面兩側某些未標記的樣本數據的標記,使得分類邊界在所有訓練數據上最大化間隔,從而能夠獲得一個通過數據相對稀疏的區域,又盡可能正確劃分所有有標記的樣本數據的分類超平面。
3)流形假設(Manifold Assumption):將高維數據嵌入到低維流形中,當兩個樣例位於低維流形中的一個小局部鄰域內時,它們具有相似的類標簽。
流形假設的主要思想是同一個局部鄰域內的樣本數據具有相似的性質,因此其標記也應該是相似。這一假設體現了決策函數的局部平滑性。和聚類假設的主要不同是,聚類假設主要關注的是整體特性,流形假設主要考慮的是模型的局部特性。在該假設下,未標記的樣本數據就能夠讓數據空間變得更加密集,從而有利於更加標准地分析局部區域的特徵,也使得決策函數能夠比較完滿地進行數據擬合。流形假設有時候也可以直接應用於半監督學習演算法中。例如,Zhu 等人利用高斯隨機場和諧波函數進行半監督學習,首先利用訓練樣本數據建立一個圖,圖中每個結點就是代表一個樣本,然後根據流形假設定義的決策函數的求得最優值,獲得未標記樣本數據的最優標記;Zhou 等人利用樣本數據間的相似性建立圖,然後讓樣本數據的標記信息不斷通過圖中的邊的鄰近樣本傳播,直到圖模型達到全局穩定狀態為止。
從本質上說,這三類假設是一致的,只是相互關注的重點不同。其中流行假設更具有普遍性。
⑹ 半監督學習和無監督學習的區別
無監督與半監督學習的區別在於一個無教學值,一個有教學值。但是,個人認為他們的區別在於無監督學習一般是採用聚簇等演算法來分類不同樣本。而半監督學習一般是利用教學值與實際輸出值產生的誤差,進行誤差反向傳播修改權值來完成網路修正的。但是無監督學習沒有反向傳播修改權值操作。
無監督學習:訓練樣本的標記信息未知,目標是通過對無標記訓練樣本的學習來揭示數據的內在性質及規律,為進一步的數據分析提供基礎,此類學習任務中研究最多、應用最廣的是"聚類" ,其他無監督演算法還有:密度估計、異常檢測等。
半監督學習:訓練集同時包含有標記樣本數據和未標記樣本數據,不需要人工干預,讓學習器不依賴外界交互、自動地利用未標記樣本來提升學習性能。
想要了解更多有關半監督學習和無監督學習的信息,可以了解一下CDA數據分析師的課程。CDA證書已得到中國成人教育協會的認可和工信部認可,考過CDA認證考生可以得到經管之家CDA數據分析師中文證書,CDAINSTITUTE英文證書以及可額外申請工信部數據分析師證書。幫助學員掌握真正過硬的解決業務問題的數據挖掘能力。點擊預約免費試聽課。
⑺ 半監督學習的起源和發展歷程
SSL的研究歷史可以追溯到20世紀70年代,這一時期,出現了自訓練(Self-Training)、直推學習(Transctive Learning)、生成式模型(Generative Model)等學習方法。
90年代,新的理論的出現,以及自然語言處理、文本分類和計算機視覺中的新應用的發展,促進了SSL的發展,出現了協同訓練(Co-Training)和轉導支持向量機(Transctive Support Vector Machine,TSVM)等新方法。Merz等人在1992年提出了SSL這個術語,並首次將SSL用於分類問題。接著Shahshahani和Landgrebe展開了對SSL的研究。協同訓練方法由Blum和Mitchell提出,基於不同的視圖訓練出兩個不同的學習機,提高了訓練樣本的置信度。Vapnik和Sterin提出了TSVM,用於估計類標簽的線性預測函數。為了求解TSVM,Joachims提出了SVM方法,Bie和Cristianini將TSVM放鬆為半定規劃問題從而進行求解。許多研究學者廣泛研究將期望最大演算法(Expectation Maximum,EM)與高斯混合模型(Gaussian Mixture Model,GMM)相結合的生成式SSL方法。Blum等人提出了最小割法(Mincut),首次將圖論應用於解決SSL問題。Zhu等人提出的調和函數法(Harmonic Function)將預測函數從離散形式擴展到連續形式。由Belkin等人提出的流形正則化法(Manifold Regularization)將流形學習的思想用於SSL場景。Klein等人提出首個用於聚類的半監督距離度量學習方法,學習一種距離度量。
⑻ 機器學習幾個重要概念
機器學習幾個重要概念
統計學習的演算法可以分為以下幾個類別:監督學習、非監督學習、半監督學習以及強化學習。
監督學習的輸入數據都有對應的類標簽或是一個輸出值,其任務是學習一個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出一個好的預測。
非監督學習就是沒有對應的類標簽或是輸出值。學習中並沒有任何標准來告訴你,某個概念是否正確,需要學習器自身形成和評價概念。就是自動地從數據中挖掘出結構信息或是抽取出一些規則。近年來,非監督學習被認為是解決一些重要問題的突破口所在。因為科學的產生就是人類中無監督學習的最佳案例。
半監督學習就是介於監督學習和非監督學習之間。這在最近的研究領域也是被大家所熱烈探討的,因為對於現實數據來說,有標簽的數據總是少量的,往往都需要人工來進行標注。而無標簽數據是能夠大量獲得的。
增強學習強調如何基於環境而行動,以取得最大化的預期利益。其靈感來源於心理學中的行為主義理論,即有機體如何在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。強化學習和標準的監督式學習之間的區別在於,它並不需要出現正確的輸入/輸出對,也不需要精確校正次優化的行為。(以上內容摘自維基網路)這在機器人、無人機領域中應用的還是非常廣泛的。
在線學習與離線學習
對於機器學習演算法的分類,站在不同的角度就能有不同的分類方法。在具體的應用中還有一種常用的分類方法是:在線學習與離線學習。
在線學習,是在獲取到新的數據後就能夠輸入到模型中進行學習。這需要學習演算法能夠在處於任何狀態時都能進行參數的更新。而且需要演算法對雜訊數據有很好的魯棒性。
離線學習就正好與在線學習相反,當數據有更新時,需要將其與原來的數據一起對模型的參數進行重新地訓練。這時,整個訓練的過程能夠被很好的控制,因為所有的數據都是已知的,能夠對數據進行細致的預處理過程。
生成模型與判別模型
這種分類方式是針對於監督學習來進行分類的。這個在我騰訊面試的時候還被問到過這個問題。
生成模型
生成方法由數據學習聯合概率分布P(X,Y)
,然後求出條件概率分布P(Y|X)
作為預測的模型,即生成模型:
模型表示了給定輸入X產生輸出Y的生成關系。典型的生成模型有:樸素貝葉斯方法和隱馬爾可夫模型。
生成模型能夠還原出聯合概率分布P(X,Y)
;生成模型的收斂速度快,當樣本容量增加的時候,學到的模型可以更快地收斂於真實模型;當存在隱變數時,仍可以使用生成學習方法,此時判別方法就不能用。
判別模型
判別方法由數據直接學習決策函數f(x)
或者條件概率分友卜中布P(Y|X)
作為預測的模型,即判別模型。典型的判別模型包括:k近鄰法、感知機、決策樹、logistic回歸模型、最大熵模型、支持向量機、提升方法和條件隨機場。
判別模型直接面對預測,往往學習的准確率越高。可以對數據進行各種程度上的抽好山象、定義特徵並使用特徵,因此可以簡化學習問題。
演算法的歸納偏好
機器學習演算法在學習過程中對某種類型假設的偏好稱為『歸納偏好』。這個『假設』包含了一個演算法方方面面的內容。
任何一個有效的機器學習演算法必有其歸納的偏好,否則它將被假設空間中看似在訓練集上『等效』的假設所迷惑,而無法產生確定的學習結果。例如在分類問題中,如果隨機抽選訓練集上等效的假設(可以認為所有的正反例並沒有區別),那麼它的分類結果其實是不確定的,這要根據它所選取的樣本來決定,這樣的學習顯然是沒有意義的。
歸納偏好對應了學習演算法本身所做出的關於『什麼樣的模型更好』的假設。在具弊睜體的問題中,這個假設是否成立,即演算法的歸納偏好是否與問題本身匹配,大多數時候直接決定了演算法能否取得好的性能。
『奧卡姆剃刀』就是一個常用的原則,『若有多個假設與觀察一致,則選擇最簡單的那個』。對於一些以簡潔為美的人來說是再正確不過了。在一些工程技術中有一些問題也確實是這樣,一個較為簡單的方法所取得的效果雖然不是最好,但是它的代價與其效果之比已然是最優。
對於一個線性回歸問題,如下圖所示:
根據『奧卡姆剃刀』原則,你肯定會選擇中間那條經過回歸處理之後的直線作為之後預測的標准。在一些場景下,這樣選擇自然是正確的。如果再給你更多的數據點,你發現這些點正好是在穿過所有紅色點的曲線之上,你還會選擇那條回歸的直線嗎?這就牽扯出一個非常有意思的定理,『沒有免費的午餐』。
這個定理所描述的是,對於任意兩個學習演算法A和B,它們在任意分布數據上的誤差其實是相等的。仔細想想的話確實是那麼回事。這個定理有一個重要的前提:所有問題出現的機會相同或是所有問題都是同等重要的。
這時候你肯定會有疑問,既然所有的學習演算法的期望性能都和隨機猜測差不多,那學習的過程豈不是並沒有什麼用。注意到一點,上面所說的相等是在所有數據的分布之下,但是我們所處理的問題的數據往往是某一特定分布的。
欠擬合與過擬合
當目標函數給定時,基於目標函數的模型訓練誤差和模型測試誤差就自然成為學習方法的評估標准。注意,學習方法具體採用的目標函數未必是評估時所使用的標准。關於評估標准這一問題會在之後的博客中提到。
假設學習到的模型是Y=f^(x)
,訓練誤差是模型關於訓練數據數據集的平均損失:
其中N是訓練樣本容量。
測試誤差是模型關於測試數據集的平均損失:
其中N』是測試樣本容量。
通常將學習方法對未知數據的預測能力稱為泛化能力。顯然,我們希望得到泛化誤差小的學習器。然而,事先我們並不知道新樣本是什麼樣的,實際能做的是努力使在訓練集上的誤差最小化。
如果一味追求提高對訓練數據的預測能力,所選模型的復雜度往往會比真模型要高。這種現象稱為過擬合。過擬合是指學習時選擇的模型包含參數過多,以致於出現這一模型對已知數據預測的很好,但對未知數據預測得很差的現象。與過擬合相對的是欠擬合,這是指對訓練樣本的一般性質尚未學好。
欠擬合比較容易克服,一般只需要增加訓練的次數。而過擬合是機器學習面臨的關鍵障礙,各類學習演算法都必然帶有一些針對過擬合的措施;然而必須認識到,過擬合是無法徹底避免的,我們所能做的只是緩解。這是因為,機器學習面臨的問題一般是NP難甚至是更難的,而有效的學習演算法必然是在多項式時間內完成的。若可以徹底避免過擬合,這就意味著我們構造性地證明了『NP = P』,那麼你就可以獲得圖靈獎了。只要相信『P != NP』,過擬合就無法避免。
關於過擬合與欠擬合圖形化的解釋,下面那張圖中有具體說明。
方差與偏差
偏差方差-分解試圖對學習演算法的期望泛化誤差進行分解。推導的過程這里就不寫了,直接給出公式。
這個式子表示的是泛化誤差可以分解為偏差、方差與雜訊之和。偏差度量了學習演算法的期望預測與真實結果的偏離程度,即刻畫了學習演算法本身的擬合能力。為什麼一個演算法會有偏差呢,下面這句話給出了答案:
Biases are introced by the generalizations made in the model including the configuration of the model and the selection of the algorithm to generate the model.
我個人的理解是,因為對於演算法的選擇乃至於調整參數方法的選擇導致了演算法是有偏差的。因為演算法的選擇中就蘊含著偏好。
方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響;雜訊則表達了在當前任務上任何學習演算法所能到達的期望泛化誤差的下界,即刻畫了問題本身的難度。
泛化能力是由學習演算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。給定學習任務,為了取得好的泛化性能,則需使偏差較小,即能充分擬合數據,並且使方差較小,即使得數據擾動產生的影響小。
但偏差與方差是不能同時達到最優的,這稱為偏差方差窘境。
這個圖所表達的含義相信不用過多地解釋了吧。
⑼ 標簽傳播演算法是一種分類演算法,還是聚類演算法
在聚類分析中,K-均值聚類演算法(k-meansalgorithm)是無監督分類中的一種基本方法,其也稱為C-均值演算法,其基本思想是:通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果.\x0d假設要把樣本集分為c個類別,演算法如下:\x0d(1)適當選擇c個類的初始中心;\x0d(2)在第k次迭代中,對任意一個樣本,求其到c個中心的距離,將該樣本歸到距離最短的中心所在的類,\x0d(3)利用均值等方法更新該類的中心值;\x0d(4)對於所有的c個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束,否則繼續迭代.\x0d下面介紹作者編寫的一個分兩類的程序,可以把其作為函數調用.\x0d%%function[samp1,samp2]=kmeans(samp);作為調用函數時去掉注釋符\x0dsamp=[11.15066.72222.31395.901811.08275.745913.217413.82434.80050.937012.3576];%樣本集\x0d[l0l]=size(samp);\x0d%%利用均值把樣本分為兩類,再將每類的均值作為聚類中心\x0dth0=mean(samp);n1=0;n2=0;c1=0.0;c1=double(c1);c2=c1;fori=1:lifsamp(i)<th0\x0dc1=c1+samp(i);n1=n1+1;elsec2=c2+samp(i);n2=n2+1;endendc1=c1/n1;c2=c2/n2;%初始聚類中心t=0;cl1=c1;cl2=c2;\x0dc11=c1;c22=c2;%聚類中心whilet==0samp1=zeros(1,l);\x0dsamp2=samp1;n1=1;n2=1;fori=1:lifabs(samp(i)-c11)<abs(samp(i)-c22)\x0dsamp1(n1)=samp(i);\x0dcl1=cl1+samp(i);n1=n1+1;\x0dc11=cl1/n1;elsesamp2(n2)=samp(i);\x0dcl2=cl2+samp(i);n2=n2+1;\x0dc22=cl2/n2;endendifc11==c1&&c22==c2t=1;endcl1=c11;cl2=c22;\x0dc1=c11;c2=c22;\x0dend%samp1,samp2為聚類的結果.\x0d初始中心值這里採用均值的法,也可以根據問題的性質,用經驗的方法來確定,或者將樣本集隨機分成c類,計算每類的均值.\x0dk-均值演算法需要事先知道分類的數量,這是其不足之處.
⑽ 機器學習的方法有哪些
機器學習的方法主要有以下幾種: