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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

李宏毅机器学习(八)自编码器(Auto-encoder)

發(fā)布時間:2024/7/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅机器学习(八)自编码器(Auto-encoder) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前情提要

什么自監(jiān)督學習?
做不需要標注資料的任務,比如做填空題,比如預測下一個任務!
這個時候我們只需要對在自監(jiān)督中訓練的模型進行fine-tune就可以用在下游任務中了!

但是在不需要標注的數(shù)據(jù)之前呢,在BERT、self-supervised learning之前有一個工具叫做Auto-Encoder! 也是不需要標注的數(shù)據(jù)的。

Auto-Encoder

怎么運作的?

它是一個無監(jiān)督的,不需要任何標注資料的任務! 目的就是讓圖片經(jīng)過中間的網(wǎng)絡后和最終的目標盡可能的相似! 和Cycle GAN中的方法是一樣的! 中間的Vector叫做Embedding、Representation,code!都是指的是同一件事! 這有什么用呢? 我們要使用的中間的這個Vector,它不再是原來圖片的高維向量(比如100 * 100維度的圖片, 如果是RGB那么就是3萬維度),而經(jīng)過Encoder 壓縮之后的低維向量,這個向量往往是10維,100維等。 同時Encoder的輸出也叫做瓶頸層,叫做BottleNeck,因為我們輸入的是寬維度的向量,但是最終輸出的是低緯度向量! 同時這也叫做Dimension reduction。 也可以叫做pre-train

Dimension reduction方法有PCA、t-SNE,它們不是深度學習!

Why Auto-encoder?

為什么Auto-encoder能獲取存儲圖片信息的低維度的向量呢? 這些向量怎么就能代表這個圖片呢?

因為圖片的變化看起來大,但是卻很小。圖片的變化類型是有限的, 我們只需要記錄這幾種變化類型就可以!就仿佛上圖中四個3*3大小的圖片, 只有兩種類型! 所以我們只需要記錄這兩種變化類型就行了, 01和10就夠了!

就仿佛神雕俠侶中樊一翁,它的胡子雖然變化多,但是只是表象,頭的可變化的類型很少! 我們只需要預判了它的頭的變化就可以了。

Auto-encoder 并不是一個新的idea

原來的方法并沒有深度學習的概念,要分塊進行訓練的!

De-noising Auto-encoder

給原圖片添加噪音, 然后還是讓它恢復到原來的圖片,那么這個encoder必須有能力來去除噪音!
這在BERT中也有相同的應用! 比如添加mask! 所以我們可以說BERT就是一個添加了噪音的Auto-encoder! 當然Decoder不一定是一個Linear層,也可以自己定義哦!

Feature Distangle

Distangle: 就是把原來糾纏在一起的東西解開來!
下面的各種特征都在這里面,但是我們并不知道哪些特征代表了哪些資訊!

所以我們是不是可以分解出特征來,比如前五十維度表示內容信息,后五十維度表示的是說話人的信息等等!當然feature Distangle也是有很多的辦法來去做的!

這是有辦法做的,下邊的就是方法了!每一個dimension就代表了一個資訊!

Application: Voice Conversion

Voice Conversion:語音轉換!就是柯南的領結變聲器!
在過去都是有監(jiān)督學習,在采集樣本時候需要Speaker A 和 Speaker B錄制相同的語音,這樣才能完成模型的訓練! 但是現(xiàn)在我們可能不再需要一模一樣的錄制了!

比如下面的encoder中的特征一部分代表了語者,一部分代表了語音。那么我們就可以交換語音! 讓某個人說別人的話!

Discrete Representation

向量的表示有三種可能性: Real Numbers、Binary和One-hot! 比如Binary中某一個值就代表了是不是的問題, 是男的還是女的?戴眼鏡了嗎? 而One-hot也代表了分類任務,比如0-9手寫體的識別!

例子:VQVAE(Vector Quantized Variational Auto-encoder)

Codebook中是一系列向量,是學習出來的數(shù)據(jù)! 同時也是預定義的向量! 我們需要的就是計算Encoder出的向量和Codebook中的相似度,相似度最高的那個向量就作為Decoder的輸入! 類似于Self-attention! 當然也可以用在語音識別中,在語音識別中,codebook中的向量完全可以代表kk音標!

Text as Representation

我們可不可以embedding出文字,而不是向量呢? 該文字經(jīng)過Decoder后會得到整個文章! 而該sequence就是文章的核心和摘要! 這是一個seq2seq2seq的auto-encoder, 而這個任務僅僅需要一大堆的文件拉進行訓練這個模型。但是這是不行的,因為Decoder會發(fā)明自己的暗號,中間生成的文字是看不懂的文字! 這要怎么辦呢? 這個時候就可以添加一個Discriminator,Discriminator是可以分出輸出是不是真漢字的,所以Discriminator可以判斷中間的單詞是不是問題。這樣就可以添加雙向限制, 既能生成文章, 又可以判斷出是不是漢字! 這就是CycleGAN

我們就硬Train!

Tree as Embedding

Application

Generator

我們可以將Decoder作為Generator! 我們通過模型訓練之后得到Decoder!

Compression

如果圖片太大了,我們可以把Encoder當作壓縮器來生成低維向量! 而Decoder做的事情Decompression,但是這樣得出的圖片是有失真的!

Anomaly(Outlier、Novelty) Detection

檢查輸入的x和訓練數(shù)據(jù)是不是一樣!

但是我們的x正確不正確完全取決于訓練數(shù)據(jù)!

欺詐檢測: 訓練數(shù)據(jù),正確的信用卡交易
網(wǎng)絡的侵入檢測: 黑客檢測,連入是不是正常的
細胞檢測:是不是一個癌細胞?

和分類任務的區(qū)別: 分類任務是需要大量正反樣本的,而且其中很多錯誤的樣本就混在了正樣本里。 但是現(xiàn)實中是很難收集很多的負樣本的! 再比如人臉識別,這肯定不能收集所有的負樣本啊,只能是收集正樣本!
這是一個one-class問題,而不是二分類問題! 這就需要Auto-encoder登場了!

人臉檢測
我們檢測是不是真人的人臉,而不是二次元的,那么我們就可以通過搜集一堆的人臉圖片,通過將它們encoder和Decoder,如果能合成真人圖片,那么就是真人!
如果輸入的是二次元圖片,那么在經(jīng)過encoder和decoder后是合成不了正常的圖片的!

More about Anomaly Detection

總結

以上是生活随笔為你收集整理的李宏毅机器学习(八)自编码器(Auto-encoder)的全部內容,希望文章能夠幫你解決所遇到的問題。

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