
一、主要內容
topic 1 深度神經網絡結構
從類神經網絡結構中我們已經發現了神經網絡中的每一層實際上都是對前一層進行的特征轉換,也就是特征抽取。一般的隱藏層(hidden layer)較少的類神經網絡結構我們稱之為shallow,而當隱藏層數比較多的類神經網絡結構我們稱之為deep。如下圖所示:
從兩者的對比中可以明顯發現,隨著類神經網絡結構的層數逐漸變多,由shallow轉向deep,訓練的效率會下降,結構變得復雜,那么對應的能力(powerful)呢?實際上shallow的類神經網絡已經很強的powerful了,那么多增加layer的目的到底是什么呢?是如何的更加富有意義(meaningful)呢?且往下看:
圖中所示的一個非常常見的問題:識別手寫體數字的模式識別問題。最原始的特征就是我們的原始數字化的圖像(raw features:pixels),從pixels出發,通過第一層的轉換我們可以得到一些稍微復雜一點點的features:筆畫特征,然后我們再由這些筆畫特征開始輸入到下一層中,就可以得到更加抽象的認識特征(將像素組合成筆畫,然后再由筆畫的組成去構成對數字的認識,進而識別數字)。上圖中可以看出,數字1可以由第一層的左邊三個筆畫構成,而數字5可以由第一層右邊四個筆畫構成,從第一層到第二層,鏈接權重紅色表示抑制,藍色表示激勵,其實就是模仿人類神經元的工作機制(最簡單的模仿:激勵和抑制)。那么這個手寫體數字的模式識別問題就可以通過這一層一層的類神經網絡結構得到解決。但是問題是,類神經網絡的結構如何確定,模型復雜度如何評估(會不會overfitting呢),以及優化的方式和計算復雜度的評估呢?且看下圖總結:
對于第一個問題,如何確定類神經網絡的結構,可以通過domain knowledge來解決,比如在圖像處理中應用的卷積神經網絡,就是利用了像素在空間上的關系。
對于第二個問題,我們知道一個非常經典的關系,overfitting與模型復雜度、數據量、噪聲的關系:模型復雜度越大,數據量越小,噪聲越大,就越容易發生overfitting,反之亦然。所以,如果我們訓練時候的數據量足夠大,就完全可以消弭由于模型復雜度帶來的overfitting的風險。所以,對于模型復雜度,要保證足夠大的數據量。當然,另外一種我們最熟悉的用來抑制模型復雜度的工具就是regularization,通過對噪聲的容忍(noise-tolerant)對象不同可以有兩種regularization的方式:對網絡節點退化可以容忍的dropout以及對輸入數據退化可以容忍的denoising,都表現在對噪聲的抑制。所以,第二個問題可以通過在數據量上的保證和對噪聲的抑制來解決。
對于第三個問題,deep learning的layer越多,權重也就越多,在進行優化的時候就更加容易出現局部最優,因為變量多了,想象一下,似乎連綿起伏的山一樣,局部最優的情況也就更加容易發生。那么如果克服發生局部最優的優化問題呢?可以通過一個叫做pre-training的方法,慎重的對權重進行初始化,使得權重一開始就出現在全局最優的那個“山峰”上,然后通過梯度下降或者隨機梯度的方式往下滾,直到全局最優。所以,這個pre-training就可以克服局部最優的問題,后面也將是我們講解的一個重點。
對于第四個問題,計算的復雜度是與deep learning的結構復雜度正相關的,但是不用擔心,一個強有力的硬件支持或者架構支持已經被用來進行深度神經網絡的訓練和計算,那就是GPU或FPGA這種可以進行大量的硬件上的并行計算的處理器。所以第四個問題只要通過選擇專用的硬件平臺就可以解決。
那么四個問題都加以了分析和解決,我們下面的重點在于pre-training的機制,如何獲得較好的網絡初始值呢?
上圖就是典型的深度神經網絡的訓練過程,先通過pre-training進行網絡參數的初始設置,然后再通過第二步利用誤差回傳機制對網絡參數進行調優(fine-tune)。
那么這個pre-training的具體是如何進行的呢?實際上就是如上圖所示,每次只進行兩層之間的參數訓練,確定之后再往其緊接著的上面兩層參數進行訓練,就這樣逐層的訓練。那么訓練的機制呢?就是今天的第二個topic,autoencoder,自動編碼器。
topic 2 自動編碼器
那么我們看,自動編碼器是如何實現的。在這之前,先說明一個概念:information preserving,就是信息保持,我們在層與層之間的進行的特征轉換實際上就是一個編碼的過程,那么一個好的編碼就是能夠做到information preserving。所以一個好的特征轉換就是轉換后的特征能夠最大限度地保留原始信息,而不至于使得信息變得面目全非。轉換后的特征是raw features的一個好的representation。且看下圖:
我們還以原來的手寫體數字的識別為例,將原始特征(raw features,pixels)轉換為筆畫特征是一個好的特征轉換嗎?能夠保持原始信息嗎?那么如何衡量這個信息是不是丟失了呢?自然而然就想到了,我把數字1的轉化成了筆畫,那么這些筆畫能不能重新組合表示為數字1呢?根據上面的介紹,我們可以做到從1到筆畫,然后還可以從筆畫再到1的過程。這就是很好的信息保持(information preserving)。那么根據這種由輸入通過一層hidden layer,然后再轉變為輸入的機制去評估信息保持的效果,去衡量特征轉化的品質。那么就得到以下的一個訓練機制,且看下圖:
這就是我們要將的pre-training的機制。由輸入經編碼權重得到原始數據的特征轉換,然后再由特征轉換經解碼權重得到原始數據的機制。整個映射實際上就是一個identity function,因為輸出=輸入嘛!
那么實際上我們設計的這個訓練過程能夠應用到監督學習和非監督學習。對于監督學習,我們可以用來學習數據的informative representation,hidden layer的輸出就是。對于非監督學習,我們可以用來進行密度估計(density estimation):當g(x)≈x時的x處的密度更大;還可以用來進行outlier檢測:那些g(x)與x相差遠的x就可以作為outlier。那些g(x)≈x的隱藏層輸出,能夠作為x的典型表示(typical representation)。
因此,一個基本的autoencoder的完整流程就有了,且看下圖:
因為上面解釋的就比較多了,下面就不再對這個流程進行詳細說明。一個需要點出的就是使得編碼權重Wij與解碼權重Wji相等可以用來作為一種形式的regularization。而整個訓練一層一層的進行實際上就是一個只有兩層的類神經網絡,進行誤差回傳和梯度下降計算的復雜度都不會很大。
有了pre-training,于是乎我們的deep learning的過程就變成了下圖:
上面講完了通過pre-training得到較好的初始權重,以便于整個deep learning能夠在開始訓練的時候就站在一個非常好的位置,即在一定程度上避免由于模型結構復雜度導致的overfitting發生的風險。由此引出的autoencoder。
那么前面講為了克服overfitting的風險,還可以從另一個角度:noise的角度出發。下面我們就進行denoising autoencoder的相關內容。
topic 3 去噪自動編碼器
在類神經網絡中其實已經介紹過一些用于regularization的方法,比如通過限制模型輸出的精度、權重的消減或者提前終止訓練等,那么下面介紹的是一種比較另類的regularization的方法。
上面說了,基于消除噪聲的方式,一般直接的想法或者常用的是data cleaning/pruning,那么我們這里介紹的也不是這種常規的方法,而是一種反向思維的方式:如果我直接往輸入數據中加入人工的噪聲呢?會發生什么樣的情況。這就是我們下面要探討的去噪自動編碼器。
這種往input中添加噪聲的思維是以robustness健壯性出發的,試想如果我加完噪聲后的數據作為輸入,經過編碼和解碼后,如果輸出依然等于加入噪聲前的數據,這樣的類神經網絡結構是不是非常的穩健,也就說抗干擾能力很強?;诖讼敕?,我們就得到denoising autoencoder的方法,且看下圖
所以輸入時x+人工噪聲,標簽是x,這樣來對網絡進行訓練,這樣的神經網絡結構自然就具備了denosing的效果。
topic 4 線性自動編碼器與主成分分析
所以前面講的都是直接基于非線性映射的結構,而一般上我們常常是先通過線性的解釋,然后再拓展至非線性。那么我們看看線性自動編碼器是怎樣的,看下圖:
我們依然通過平方誤差進行推導,推導過程見下圖,總之就是一堆矩陣的運算,如果學過矩陣分析課程看起來并不復雜,實際上就是進行譜分解,看不懂也沒關系,只要知道處理過程就好,求輸入矩陣的最大特征值和其對應的特征向量,實際上這也是PCA處理的過程(PCA基于matlab的代碼鏈接,小弟資源分不夠,求個資源分勿怪)。
那么實際上,linear 的autoencoder實際上與主成分分析是非常相近的,只不過主成分分析具有統計學的說明。進行特征轉換后的方差要大。我們把數據進行零均值化作為autoencoder的輸入,結果就跟PCA一樣了。具體的關系可以看下圖說明:
*************************************************************************************************************************************
通過以上的介紹,相信對整個deep learning的架構有了一定認識,當然這里面介紹的大部分都是入門級的知識,不過有了一個guideline之后,再去對更加細節的設計方法進行學習時就能有更加宏觀方向的把握。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24