日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第十一章 自动编码器

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十一章 自动编码器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:自動編碼器是一種可以進行無監督學習的神經網絡模型。一般而言,一個完整的自動編碼器主要由兩部分組成,分別是用于核心特征提取的編碼部分和可以實現數據重構的解碼部分。
1.自動編碼器入門
在自動編碼器中負責編碼的部分也叫做編碼器(Encoder),而負責解碼的部分也叫作解碼器(Decoder)。編碼器主要負責對原始的輸入數據進行壓縮并提取數據中的核心特征,而解碼器主要是對在編碼器中提取的核心特征進行展開并重新構造出之前的輸入數據。

如圖就是一個簡化的自動編碼器模型,它的主要結構是神經網絡,該模型的最左邊是用于數據輸入的輸入層,在輸入數據通過神經網絡的層層傳遞之后得到了中間輸入數據的核心特征,這就完成了在自編碼器中輸入數據的編碼過程。
然后,將輸入數據的核心特征再傳遞到一個逆向的神經網絡中,核心特征會被解壓并重構,最后得到了一個和輸入數據相近的輸出數據,這就是自動編碼器中的解碼過程。
輸入數據通過自動編碼器模型的處理后又被重新還原了。
自動編碼器模型的最大用途就是實現輸入數據的清洗,比如去除輸入數據中的噪聲數據、對輸入數據的某些關鍵特征進行增強和放大,等等。
2.PyTorch之自動編碼實戰
本節的自動編碼器模型解決的是一個去除圖片馬賽克的問題。要訓練出這個模型,首先需要生成一部分有馬賽克的圖片。我們知道圖片是由像素點構成的,而像素點其實就是一個個的數字,我們使用的MNIST數據集中的手寫圖片的像素點數字的范圍是0-1,所以處理馬賽克的一種簡單方式就是對原始圖片中的像素點進行擾亂,我們在這里通過對輸入的原始圖片加上一個維度相同的隨機數字來達到了處理馬賽克的目的。
下面就可以搭建自動編碼模型了,搭建自動編碼模型最常用的兩種方式分別是使用線性變換來構建模型中的神經網絡和使用卷積變換來構建模型中的神經網絡。
(1)通過線性變換實現自動編碼器模型
線性變換方式僅使用線性映射和激活函數作為神經網絡結構的主要組成部分。
代碼中的self.encoder對應的是自動編碼器中的編碼部分,在這個過程中實現了輸入數據的數據量從224個到128個再到64個最后到32個的壓縮過程,這32個數據就是我們提取到的核心特征。
self.decoder對應的是自動編碼器中的解碼部分,這個過程實現了從32個到64個再到224個的逆向解壓過程。
然后對定義好的模型進行訓練;
因為這里我們需要衡量圖片在去碼之后和原始圖片之間的誤差,所以選擇均方誤差這類損失函數作為度量。
總體的訓練流程是我們首先獲取一個批次的圖片,然后對這個批次的圖片進行打碼處理并裁剪到指定的像素值范圍內,因為之前說過,在MNIST數據集使用的圖片中每個像素點的數字值在0-1之間。在得到了經過打碼處理的圖片后,將其輸入搭建好的自動編碼器模型中,經過模型處理后輸出一個預測圖片,用這個預測圖片和原始圖片進行損失值計算,通過這個損失值對模型進行后向傳播,最后就能得到去除圖片馬賽克效果的模型了。
(2)通過卷積變換實現自動編碼器模型
卷積變換的方式僅使用卷積層、最大池化層、上采樣層和激活函數作為神經網絡結構的主要組成部分。
上采樣層:即torch.nn.Upsample類,這個類的作用就是對我們提取到的核心特征進行解壓,實現圖片的重寫構建,傳遞給它的參數一共又兩個,分別是scale_factor和mode:前者用于確定解壓的倍數;后者用于定義圖片重構的模式,可以選擇的模式有:nearset(最鄰近法)、linear(線性插值法)、bilinear(雙線性插值法)和trilinear(三線性插值法)。
然后對定義好的模型進行訓練;
最后,我們通過使用一部分測試數據集中的圖片來驗證我們的模型能否正常工作。
結果顯示:首先,在結果的可視性上沒有問題;其次,去碼效果更好,還原出來的圖片內容更清晰。

總結

以上是生活随笔為你收集整理的第十一章 自动编码器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。