cs231n 無監督學習

2021-09-07 14:07:17 字數 2154 閱讀 8999

聚類k均值

pca主成分分析

gen網路(對抗式生成網路)

類似於乙個自學習式pca,如果編碼/解碼器只是單層線性的話

自編碼器編碼解碼示意圖:

特徵提取過程中甚至用到了卷積網路+relu的結構(我的認知停留在originally級別)

編碼&解碼器可以共享權值(在我接觸的**中一般都沒共享權值)

損失函式推薦l2

由於重建已知資料是個沒什麼用的過程,所以自編碼器一般在訓練後會丟掉解碼過程作為乙個特徵提取工具,

這裡的思路是當我們有少量含標籤資料以及大量無標籤資料時,可以採用使用無標籤資料訓練自編碼器,然後使用訓練好的編碼器加上分類器去提取有標籤資料並訓練分類器,不過現實可能不太好,這是老師的評價:

下圖表示的是有標籤資料經過訓練好的編碼器去訓練分類器的過程,

通過監督學習進行微調,也分兩種,乙個是只調整分類器(黑色部分):

另一種:通過有標籤樣本,微調整個系統:(如果有足夠多的資料,這個是最好的。end-to-end learning端對端學習)

一旦監督訓練完成,這個網路就可以用來分類了。

tensorflow實現

可以生成資料的自編碼器變種——變分自編碼器

位置一:我們將 encoder 的輸出(2m個數)視作分別為m個高斯分布的均值(z_mean)和方差的對數(z_log_var),也就是特徵z分布的描述

位置二、三:我們取樣初始資料,根據 encoder 輸出的均值與方差,生成服從相應高斯分布的隨機數:

eps = tf.random_normal((self.batch_size, n_z), 0, 1, 

dtype=tf.float32) #

z = mu + sigma*epsilon

self.z =tf.add(self.z_mean,

tf.mul(tf.sqrt(tf.exp(self.z_log_sigma_sq)), eps))

即使這樣這裡還有tips:

位置四:經由z還原x,計算loss,這裡的loss計算頗為複雜,先給出結論,推導以後再說(逃... ...:

最後,嘗試應用模型

下面是用於生成的應用,取樣並嘗試重構:

這裡的z是直接取樣得到的,而非先取樣n(0,1)後使用均值標準差等還原出來的。

雜訊->生成圖 + 真圖 ->分類器,實際屬於二分類問題

由於結構簡單在手寫數字和人臉上效果不錯,但對於複雜場景效果一般

提高思路一:多尺度生成

自右向左逐層生成影象

訓練過程比較繁瑣:每個尺度都要進行鑑別

提高思路二:卷積生成網路

據說效果也很不錯

由於這部分內容不是課程重點,實際講解也不夠詳細,所以記錄的也就比較簡潔了,主要把發展脈絡理順,各個ppt頁上均有**出處,如果有需要的話可以從**入手。

cs231n 學習 前言

吐槽 我為啥學這個 學這門課之前,到官網 要科學上網哦 查了下相關資訊,有部分需求 要求1,得會 python 且熟悉 c c 其實我是不會 python 的,但語言只是一種工具,不該成為鴻溝,且這麼流行的語言上手也不應該難吧 盲目自信一把 要求2,微積分和線性代數,嗯,這個不是問題。要求3,概率統...

CS231n 學習筆記(五)

注意 在計算機上計算梯度的乙個簡單方法是有限差分法 迭代計算所有w維度,一直重複下去直到計算完dw。這種方法是數值梯度法,過程非常慢。實際上,我們會使用另一種分析梯度法,提前計算出梯度的表示式 除錯策略 使用數值梯度作為單元測試來確保解析梯度是正確的 梯度下降演算法 注意 隨機梯度下降 之前我們定義...

cs231n筆記總結

cs231n的課程以及作業都完成的差不多了,後續的課程更多的涉及到卷積神經網路的各個子方向了,比如語義分割 目標檢測 定位 視覺化 遷移學習 模型壓縮等等。assignment3有涉及到這些中的一部分,但需要深入了解的話還是得看 了。所以在看 前把之前已學的知識,筆記和作業 一起做個整理。部落格裡主...