理解機器學習中的區域性關係網路


介紹

你是否曾經想過,人類是如何僅憑有限的感官輸入就能感知和理解視覺世界?這是一種非凡的能力,它使我們能夠從基本元素中構成複雜的視覺概念。在計算機視覺領域,科學家們一直在嘗試使用卷積神經網路 (CNN) 來模擬這種組合行為。CNN 使用卷積層從影像中提取特徵,但在模擬具有不同空間分佈的視覺元素方面存在侷限性。

卷積的問題

CNN 中的卷積層就像模式匹配過程。它們應用固定濾波器來空間聚合輸入特徵,在處理具有顯著空間可變性的視覺元素時,這可能效率低下。例如,想象一下嘗試識別具有幾何變形的物件。卷積層難以捕捉這些元素可以組合的不同有效方式,導致效能有限。

介紹區域性關係層

在一篇最近的學術出版物中,一組研究人員引入了一種新穎的影像特徵提取器。區域性關係層透過動態計算取決於相鄰畫素對之間組合連線的權重之和來克服卷積方法的限制。區域性關係層不是使用固定濾波器,而是學習以更有意義和更高效的方式聚合輸入特徵。

它是如何工作的?

區域性關係層使用關係方法來確定區域性區域中的畫素應該如何組合。透過結合幾何先驗,區域性關係層評估在經過訓練的嵌入空間中來自兩個畫素的特徵投影的相似性。透過學習動態組合畫素的過程,區域性關係層構建了一個視覺元素的層次結構,這種結構高效且有效。

該公式用於計算區域性關係層中的聚合權重。讓我們進一步分解它:

ω(p0, p) = softmax(Φ(fθq(xp0), fθk(xp)) + fθg(p - p0))

以下是每個元件的分步解釋:

  • fθq(xp0) 和 fθk(xp) 分別表示畫素 p0 和 p 的特徵投影。這些投影是透過將嵌入函式 (fθq 和 fθk) 應用於畫素特徵 xp0 和 xp 獲得的。嵌入函式捕捉兩個畫素的特徵之間的相似性或相異性。

  • 使用 Φ 計算 p0 和 p 的嵌入特徵之間的相似性或相容性得分。此函式 Φ 捕獲區域中的畫素對。它以嵌入特徵 fθq(xp0) 和 fθk(xp) 作為輸入,併產生一個分數,該分數表示這些特徵可以組合在一起的程度。

  • 項 (p - p0) 表示畫素 p 和 p0 之間的幾何關係。它表示兩個畫素之間的空間位移向量。函式 fθg 將此幾何資訊合併到聚合權重中。

  • 計算相容性得分 (Φ(fθq(xp0), fθk(xp))) 和幾何項 (fθg(p - p0)) 的總和。

  • 將 softmax 函式應用於總和。softmax 函式對值進行歸一化,併產生區域性區域中畫素的機率分佈。它確保權重加起來為 1,從而允許進行正確的聚合。

總之,此公式結合了學習到的畫素特徵相似性、畫素之間的幾何關係和 softmax 歸一化,以計算區域性關係層中的聚合權重。這些自適應權重使該層能夠有效地聚合區域性資訊並捕獲視覺資料中有意義的組合結構。

優勢和應用

在研究人員開發的稱為 LR-Net 的網路架構中,使用了局部關係層而不是傳統的卷積層。與典型的 CNN 相比,LR-Net 在 ImageNet 分類等大型識別應用中顯示出改進的效能。它提供了更大的建模能力並實現了更高的精度。此外,LR-Net 在利用大型核心鄰域方面更有效,並表現出對對抗性攻擊的魯棒性。

與現有方法的比較

區域性關係層使用自下而上的方法來確定特徵累積權重,而深度神經網路則採用分層方法。這種獨特的方法被證明是實用且有效的。現有方法並沒有完全取代卷積,因為它的適用性受到限制,或者因為它作為卷積的補充。

深度神經網路,更具體地說 ResNet 設計,使用空間卷積層,這些層在 (LR-Net) 中被區域性關係層替換。

瓶頸/基本殘差塊中的初始 7*7 卷積層和 3*3 卷積層被區域性關係層替換。替換過程透過調整被替換層的擴充套件比 (α) 來確保浮點運算 (FLOPs) 的數量保持不變。

使用通道變換層,將 3*H*W 的輸入大小更改為第一個 7*7 卷積層的 64*高度*寬度的特徵圖。接下來是一個 7*7 區域性關係層。7*7 卷積層的替換使用等效的 FLOPs 並以相似的精度完成 ImageNet 識別任務。

透過替換 ResNet 架構中的所有卷積層,可以得到 LR-Net。例如,LR-Net-50 指的是所有卷積層都被區域性關係層替換的 ResNet-50 架構。論文中的表 2 對比了 ResNet-50 和 LR-Net-50,這是聚合過程中通道共享的結果,LR-Net-50 具有相當的 FLOPs,但模型尺寸略小。

以下是區域性關係層的程式碼片段:

import torch

import tensorflow as tf

class LocalRelationalNetwork(tf.keras.Model):
   def __init__(self, num_relations, num_objects, embedding_dim):
      super(LocalRelationalNetwork, self).__init__()
      self.num_relations = num_relations
      self.num_objects = num_objects
      self.embedding_dim = embedding_dim
      self.object_embeddings = tf.keras.layers.Embedding(num_objects, embedding_dim)
      self.relation_embeddings = tf.keras.layers.Embedding(num_relations, embedding_dim)
      self.hidden_layer = tf.keras.layers.Dense(embedding_dim, activation='relu')
      self.output_layer = tf.keras.layers.Dense(1, activation='sigmoid')
    
   def call(self, inputs):
      objects, relations = inputs
        
      object_embedded = self.object_embeddings(objects)
      relation_embedded = self.relation_embeddings(relations)
        
      concatenated = tf.concat([object_embedded, relation_embedded], axis=1)
        
      hidden = self.hidden_layer(concatenated)
      output = self.output_layer(hidden)
        
      return output

在此程式碼中,`CustomLayer` 類具有與前一層類似的功能。`m` 引數未設定為預設值 8,允許您根據需要指定它。在建立 `CustomLayer` 例項時,您可以修改引數,例如 `channels`、`k`、`stride`,併為 `m` 提供特定值。

結論

區域性關係層的引入代表了影像特徵提取方面的一項重大突破。透過根據區域性畫素對的組合關係自適應地確定聚合權重,它克服了卷積層的侷限性,並提供了一種更有效的方式來捕捉視覺世界中的空間構成。利用區域性關係網路 (LR-Net),研究人員在大型識別任務中取得了令人印象深刻的成果,證明了這種新方法的強大功能。區域性關係層為推進計算機視覺和改進我們對視覺資料的理解開闢了新的可能性。

更新於:2023年10月17日

95 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.