ML_2021_8-2 領結變聲器與更多應用

Feature Disentanglement

Feature Disentanglement 應用

假如我們能知道embedding各維所代表的意涵,我們能用它做寫甚麼?

Voice Conversion

  • ex.柯南的領結變聲器

  • 如果要A人聲轉成B人聲,一般需要A,B都念一樣的句子

  • 透過feature disentanglement技術,可以讓A,B不必一定要說一樣的話

    • 我們知道哪些維度代表說話者的特徵,則我們可以只擷取這段維度,丟入decoder

   

Discrete Latent Representation

  • embedding的各維可以不一定是real numbers,它可以是binary,甚至是one-hot

  • 把embedding做這樣的格式可以更容易做feature disentanglement

Example:VQVAE

會準備一個code book,將embedding跟這裏面的vectors計算相似度,取出相似度最高的那個vector,丟入decoder,範例如下圖

這樣的過程其實有點像self-attention。encoder的輸出類比於self-attention裡面的query,而code book的vectors則像是key

  • 這樣表示decoder的輸入可能性只有codebook裡面的向量數量,讓輸出變成離散的

Text as Representation

  • Representation = embedding
  • 有沒有可能讓embedding不要是向量,而是人們看得懂的文字呢?


範例:https://arxiv.org/abs/1810.02851

  • 在這個範例下,輸入跟輸出都是seq,所以model會需要是一個seq2seq的類型

    • 這也是一種transformer
  • 這類做法也稱為seq2seq2seq auto-encoder (中間也是文字)

embedding的可讀性

  • 若我們要取的任務是取得文章摘要,有沒有可能輸出的embedding其實就是summary呢?
    • 行不通。實務上encoder跟decoder之間會發明一個暗號,人類看不懂embedding的輸出,但是decoder卻能正常還原

    • 一種解決方法就是套用GAN的概念,加入discriminator,讓embedding跟真人寫得summary做比較,而embedding則必須騙過discriminator


沒錯 看起來又很像cycle GAN了
encoder、decoder就是generator,上面的則是discriminator

Tree as representation

本課不細講,相關參考如下

More Applications

VAE

  • 若把decoder單獨拆出來,也可以看作是一個generator

  • decoder經過一段修正,就是variational auto-encoder (VAE)

Compression

  • auto-encoder也可以看作是一種壓縮,把一個圖片丟入encoder,並且儲存embedding
    • decoder的還原動作則是”decompression”,不過這樣還原出來的圖片會有失真

Anomaly Detection (異常檢測)

本次作業內容

給定一個資料集{$x^1,x^2,…,x^N$},並且判斷輸入x與資料集是否相似

異常檢測的相關應用:

  • 信用卡交易詐欺檢測 (交易行為是否異常)

  • 網路侵入偵測 (連線行為是否異常)

  • 癌症偵測 (細胞是否變異)

  • 那異常檢測是否就是一種二元分類問題呢?

    • 這種問題的難點就是在蒐集資料,異常資料不易蒐集
    • 這類問題假設我們只有正常的訓練資料(其中一種class),而沒有異常訓練資料,稱為”One class分類問題”
  • 解決One class classification問題,就會需要auto-encoder

    • 正常資料由於有學習過,所以可以有效還原
         - 但如果出現了異常資料,decoder會難以還原,若發現decoder的輸出與原始輸入相似度低(large reconstruction loss),則可以判斷它就是anomaly的資料

auto-encoder只是anomaly detection的一種approach,更多的異常檢測任務解法可以參考其它年的課程