閱讀antonio gulli《deep learning with tensorflow 2 and keras》second edition 第十章 unsupervised learning筆記
使用tf2能實現哪些無無監督的演算法呢?
可以使用tf2來實現pca、kmeans(之前我們主要使用sklearn來實現的),書本案例的實現方法是通過演算法原理來實現的。
例如pca,首先使用tf.linalg.svd實現svd奇異值拆解,然後實現降維的作用
例如kmeans,首先隨機選擇k個中心點,然後計算點與中心的距離,形成新的團體的中心點,不斷更新實現聚類的過程。
som(self organizing maps)自組織對映是一種基於神經網路的聚類演算法。
som的乙個特點是,隱藏層的節點是有拓撲關係的,即som可以把任意維度的輸入離散化到一維或者二維(更高維度的不常見)的離散空間上。
本次案例中實現對rgb顏色的聚類。
som的主要成分是wtu(winner-take-all unit),神經元採用競爭的方式啟用,每個神經元有乙個權值向量w_i,輸入向量x會啟用與之最接近的神經元(距離dj=tf.sqrt(tf.reduce_sum(tf.pow(w-x)),這個神經元叫做獲勝神經元(winner)。
本質上是使用距離實現聚類,不過和kmeans不同的是在神經元的基礎之上
受限玻爾茲曼機(rbm,restricted boltzmann machine)由多倫多大學的geoff hinton等人提出,它是一種可以用於降維、分類、回歸、協同過濾、特徵學習以及主題建模的演算法
看到三巨頭之一的hinton,就知道是重要的演算法了
rbm本身模型很簡單,只是乙個兩層的神經網路無監督神經網路,因此嚴格意義上不能算深度學習的範疇。
dbn也是hinton在2023年提出的,本質上是對rbm的堆疊。本次案例中對mnist資料集做訓練,優化引數wb後使得能夠自動生成。
變分自編碼器(variational autoencoders)由乙個encoder和乙個decoder組成
(1)autoencoders
看到autoencoders覺得很熟悉,在第九章autoencoders有介紹過,也是乙個encoder,乙個decoder。
autoencoder並不是乙個生成式的模型,它更多的只是一種能夠記住輸入特徵的模型,再用特徵向量來reconstruct輸入,autoencoder更多的是對於已經出現過的模式記憶和重構,對於沒有沒有出現過的模式則無法**。
vae對提取出的feature分布加上限制,規定其是乙個滿足unit normal的分布,在loss中加入kl-divergence,迫使提取的feature接近unit normal。那麼在生成時,從unit normal中隨機取樣的樣本回合之前的訓練資料share一部分資訊,使得生成的sample接近訓練時的實際資料
(2)gan
關於生成,之前有提到過gan生成對抗網路。不過gan只能判斷生成的影象是不是乙個真的影象,很有可能生成乙個看起來像是真實影象卻沒有意義的圖。
vae可以通過編碼解碼的步驟,直接比較重建和原始的差異,但是gan做不到
vae的乙個劣勢就是沒有使用對抗網路,所以會更趨向於產生模糊的
pca
,kmeans
,som
,rbm
,dbn
,vae
,gan
無監督學習與監督學習
1.無監督和有監督的理解方法有很多,主要可以從以下幾方面來理解 1 無監督與監督學習的區別在於乙個無教學值,乙個有教學值。但是,個人認為他們的區別在於無監督學習一般是採用聚簇等演算法來分類不同樣本。而監督學習一般是利用教學值與實際輸出值產生的誤差,進行誤差反向傳播修改權值來完成網路修正的。但是無監督...
監督學習與無監督學習
監督學習 監督學習是指我們給演算法乙個資料集,其中包含了正確答案。也就是說我們給它乙個房價資料集,在這個資料集中的每個樣本,我們都給出正確的 即這個房子實際賣價,演算法的目的就是給出更多的正確答案,輸入和輸出都是有參照的,根據參照,給定乙個新的輸入,新的輸出。如房價 給定某地房子大小和房價的資料,根...
無監督學習與監督學習
無監督學習與監督學習 1 首先我們要知道什麼是機器學習 a 從我們的學習推導而來 舉個例子 要考試了,老師給我們刷題,然後我們通過完成老師給的題目,考試考了100分,考試題不是原題,但與原題十分相似 b 我們總結一下 要考試了,老師給我們刷題 訓練集 然後我們通過完成老師給的題目 訓練 考試 要處理...