'隨機權值平均:深度學習中一種新的達到stage of the art的方法'

"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成使用循環學習速率和退火。

但是,你也可以使用相同的體系結構集成模型,它也可以提供令人驚訝的好結果。利用這種方法的一個非常酷的技巧在snapshot ensembling paper中提出。作者在訓練相同網絡的同時保存權值快照,然後在訓練後創建具有相同架構但權值不同的網絡集合。這可以提高測試性能,而且這也是一種非常方便的方法,因為你只需要訓練一個模型一次,只需要不時地保存權值。

你可以參考這篇很棒的文章瞭解更多細節。如果你還沒有使用循環學習速率,那麼你絕對應該使用它,因為它已經成為標準的最先進的訓練技術,非常簡單,不需要大量的計算,而且幾乎不需要額外的成本就可以獲得顯著的收益。

上面所有的例子都是模型空間中的集合,因為它們組合了幾個模型,然後使用模型的預測來生成最終的預測。

然而,在我在這篇文章中討論的論文中,作者建議在權值空間中使用一個新的集合。該方法通過將同一網絡在不同訓練階段的權值進行組合得到一個集合,然後使用該模型與權值組合進行預測。這種方法有兩個好處:

  • 當結合權重時,我們最後仍然得到一個模型,這加快了預測
  • 事實證明,這種方法優於目前的快照集成

讓我們看看它是如何工作的。但首先我們需要了解一些關於損失曲面和可推廣解的重要概念。

權值空間的解決方案

第一個重要的觀點是,訓練的網絡是多維權重空間中的一個點。對於給定的體系結構,每個不同的網絡權重組合都會產生一個單獨的模型。由於任意給定的體系結構都有無窮多個權重組合,因此會有無窮多個解。神經網絡的訓練目標是找到一個在訓練和測試數據集上都能提供低損失函數值的特解(權重空間中的點)。

在訓練過程中,通過改變權值,訓練算法改變網絡,在權值空間中運動。梯度下降算法在損失平面上運動,平面高度值由損失函數的值給出。

窄最優和寬最優

多維權值空間的幾何形象化和理解是非常困難的。同時,理解它是非常重要的,因為在訓練過程中,隨機梯度下降本質上是在這個多維的空間中穿越一個損失曲面,並試圖找到一個好的解決方案——在損失曲面上損失值低的“點”。已知這類表面有許多局部優化。但事實證明,它們並非都一樣好。

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”
"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成使用循環學習速率和退火。

但是,你也可以使用相同的體系結構集成模型,它也可以提供令人驚訝的好結果。利用這種方法的一個非常酷的技巧在snapshot ensembling paper中提出。作者在訓練相同網絡的同時保存權值快照,然後在訓練後創建具有相同架構但權值不同的網絡集合。這可以提高測試性能,而且這也是一種非常方便的方法,因為你只需要訓練一個模型一次,只需要不時地保存權值。

你可以參考這篇很棒的文章瞭解更多細節。如果你還沒有使用循環學習速率,那麼你絕對應該使用它,因為它已經成為標準的最先進的訓練技術,非常簡單,不需要大量的計算,而且幾乎不需要額外的成本就可以獲得顯著的收益。

上面所有的例子都是模型空間中的集合,因為它們組合了幾個模型,然後使用模型的預測來生成最終的預測。

然而,在我在這篇文章中討論的論文中,作者建議在權值空間中使用一個新的集合。該方法通過將同一網絡在不同訓練階段的權值進行組合得到一個集合,然後使用該模型與權值組合進行預測。這種方法有兩個好處:

  • 當結合權重時,我們最後仍然得到一個模型,這加快了預測
  • 事實證明,這種方法優於目前的快照集成

讓我們看看它是如何工作的。但首先我們需要了解一些關於損失曲面和可推廣解的重要概念。

權值空間的解決方案

第一個重要的觀點是,訓練的網絡是多維權重空間中的一個點。對於給定的體系結構,每個不同的網絡權重組合都會產生一個單獨的模型。由於任意給定的體系結構都有無窮多個權重組合,因此會有無窮多個解。神經網絡的訓練目標是找到一個在訓練和測試數據集上都能提供低損失函數值的特解(權重空間中的點)。

在訓練過程中,通過改變權值,訓練算法改變網絡,在權值空間中運動。梯度下降算法在損失平面上運動,平面高度值由損失函數的值給出。

窄最優和寬最優

多維權值空間的幾何形象化和理解是非常困難的。同時,理解它是非常重要的,因為在訓練過程中,隨機梯度下降本質上是在這個多維的空間中穿越一個損失曲面,並試圖找到一個好的解決方案——在損失曲面上損失值低的“點”。已知這類表面有許多局部優化。但事實證明,它們並非都一樣好。

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”
隨機權值平均:深度學習中一種新的達到stage of the art的方法

窄最優和寬最優。在訓練和測試期間,扁平最小值將產生類似的損失。然而,在訓練和測試中,窄的損失會產生非常不同的結果。換句話說,寬最小值比窄最小值更容易泛化。

一個可以區分好的解決方案和壞的解決方案的度量標準是它的“平整度”。其思想是訓練數據集和測試數據集將產生相似但不完全相同的損失曲面。你可以想象一個測試表面會相對於訓練表面移動一點。對於較窄的解決方案,在測試期間,由於這種轉移,造成低損耗的點可能會有很大的損失。這意味著這種“狹義”的解決方案不能很好的泛化:訓練損失小,測試損失大。另一方面,對於“寬”而平的解決方案,這種轉換將導致訓練和測試損失彼此接近。

我解釋了窄解決方案和寬解決方案之間的區別,因為這篇文章重點關注的新方法會帶來好的和寬的解決方案。

快照集成

一開始,SGD將在權重空間上有一個大的飛躍。然後,由於餘弦退火使得學習速率變小,SGD會收斂到某個局部解,算法會將模型加入到集合中,對模型進行“快照”。然後再次將速率重置為高值,SGD在收斂到某個不同的本地解決方案之前再次進行大跳躍。

快照集成方法中的循環長度是20到40個ephoch。長學習速率循環的思想是能夠在權重空間中找到足夠不同的模型。如果模型太相似,那麼對集成中獨立網絡的預測就會太接近,集成的好處就會被忽略。

快照集成循環非常好用,可以提高模型性能,但是快速的幾何集成循環更加好用。

快速集合集成(FGE)

快速幾何集成與快照集成非常相似,但它有一些不同的特性。它使用線性分段循環學習速率表,而不是餘弦。其次,FGE的循環長度要短得多——每個循環只有2到4個ephoch。乍一看,短週期是錯誤的,因為每個週期結束時的模型彼此接近,因此將它們組合起來不會帶來任何好處。然而,正如作者所發現的那樣,由於在足夠不同的模型之間存在低損失的連接路徑,因此可以在這些路徑上小步移動,並且所遇到的模型將會有足夠的不同,從而允許對它們進行集成,並獲得良好的結果。因此,與快照集合相比,FGE顯示出了提升,它使用了更小的步驟來找到模型(這使得它可以更快地進行訓練)。

"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成使用循環學習速率和退火。

但是,你也可以使用相同的體系結構集成模型,它也可以提供令人驚訝的好結果。利用這種方法的一個非常酷的技巧在snapshot ensembling paper中提出。作者在訓練相同網絡的同時保存權值快照,然後在訓練後創建具有相同架構但權值不同的網絡集合。這可以提高測試性能,而且這也是一種非常方便的方法,因為你只需要訓練一個模型一次,只需要不時地保存權值。

你可以參考這篇很棒的文章瞭解更多細節。如果你還沒有使用循環學習速率,那麼你絕對應該使用它,因為它已經成為標準的最先進的訓練技術,非常簡單,不需要大量的計算,而且幾乎不需要額外的成本就可以獲得顯著的收益。

上面所有的例子都是模型空間中的集合,因為它們組合了幾個模型,然後使用模型的預測來生成最終的預測。

然而,在我在這篇文章中討論的論文中,作者建議在權值空間中使用一個新的集合。該方法通過將同一網絡在不同訓練階段的權值進行組合得到一個集合,然後使用該模型與權值組合進行預測。這種方法有兩個好處:

  • 當結合權重時,我們最後仍然得到一個模型,這加快了預測
  • 事實證明,這種方法優於目前的快照集成

讓我們看看它是如何工作的。但首先我們需要了解一些關於損失曲面和可推廣解的重要概念。

權值空間的解決方案

第一個重要的觀點是,訓練的網絡是多維權重空間中的一個點。對於給定的體系結構,每個不同的網絡權重組合都會產生一個單獨的模型。由於任意給定的體系結構都有無窮多個權重組合,因此會有無窮多個解。神經網絡的訓練目標是找到一個在訓練和測試數據集上都能提供低損失函數值的特解(權重空間中的點)。

在訓練過程中,通過改變權值,訓練算法改變網絡,在權值空間中運動。梯度下降算法在損失平面上運動,平面高度值由損失函數的值給出。

窄最優和寬最優

多維權值空間的幾何形象化和理解是非常困難的。同時,理解它是非常重要的,因為在訓練過程中,隨機梯度下降本質上是在這個多維的空間中穿越一個損失曲面,並試圖找到一個好的解決方案——在損失曲面上損失值低的“點”。已知這類表面有許多局部優化。但事實證明,它們並非都一樣好。

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”
隨機權值平均:深度學習中一種新的達到stage of the art的方法

窄最優和寬最優。在訓練和測試期間,扁平最小值將產生類似的損失。然而,在訓練和測試中,窄的損失會產生非常不同的結果。換句話說,寬最小值比窄最小值更容易泛化。

一個可以區分好的解決方案和壞的解決方案的度量標準是它的“平整度”。其思想是訓練數據集和測試數據集將產生相似但不完全相同的損失曲面。你可以想象一個測試表面會相對於訓練表面移動一點。對於較窄的解決方案,在測試期間,由於這種轉移,造成低損耗的點可能會有很大的損失。這意味著這種“狹義”的解決方案不能很好的泛化:訓練損失小,測試損失大。另一方面,對於“寬”而平的解決方案,這種轉換將導致訓練和測試損失彼此接近。

我解釋了窄解決方案和寬解決方案之間的區別,因為這篇文章重點關注的新方法會帶來好的和寬的解決方案。

快照集成

一開始,SGD將在權重空間上有一個大的飛躍。然後,由於餘弦退火使得學習速率變小,SGD會收斂到某個局部解,算法會將模型加入到集合中,對模型進行“快照”。然後再次將速率重置為高值,SGD在收斂到某個不同的本地解決方案之前再次進行大跳躍。

快照集成方法中的循環長度是20到40個ephoch。長學習速率循環的思想是能夠在權重空間中找到足夠不同的模型。如果模型太相似,那麼對集成中獨立網絡的預測就會太接近,集成的好處就會被忽略。

快照集成循環非常好用,可以提高模型性能,但是快速的幾何集成循環更加好用。

快速集合集成(FGE)

快速幾何集成與快照集成非常相似,但它有一些不同的特性。它使用線性分段循環學習速率表,而不是餘弦。其次,FGE的循環長度要短得多——每個循環只有2到4個ephoch。乍一看,短週期是錯誤的,因為每個週期結束時的模型彼此接近,因此將它們組合起來不會帶來任何好處。然而,正如作者所發現的那樣,由於在足夠不同的模型之間存在低損失的連接路徑,因此可以在這些路徑上小步移動,並且所遇到的模型將會有足夠的不同,從而允許對它們進行集成,並獲得良好的結果。因此,與快照集合相比,FGE顯示出了提升,它使用了更小的步驟來找到模型(這使得它可以更快地進行訓練)。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

左:傳統的直覺認為好的局部極小值是由高損失區域分隔的。如果我們沿著連接局部極小值的直線運動,這是正確的。中間和右邊:但是,在局部極小值之間存在路徑,使得這些路徑上的損失保持在較低的水平。FGE沿著這些路徑獲取快照,並從快照中創建一個集成。

為了從快照集成或FGE中獲益,需要存儲多個模型,然後對所有模型進行預測,然後對最終預測進行平均。因此,為了集成的額外性能,需要付出更高的計算量。所以沒有免費的午餐。到底有沒有呢?這就是關於隨機加權平均的新論文的切入點。

隨機權值平均(SWA)

隨機權重平均近似於快速幾何集合,但計算損失很小。SWA可以應用於任何體系結構和數據集,並在它們中都顯示出良好的結果。這篇論文認為SWA會導致更寬的最小值,我在上面討論了它的好處。SWA在傳統的理解上並不是一個整體。在培訓結束時,你會得到一個模型,但是它的性能勝過快照集成和FGE方法。

"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成使用循環學習速率和退火。

但是,你也可以使用相同的體系結構集成模型,它也可以提供令人驚訝的好結果。利用這種方法的一個非常酷的技巧在snapshot ensembling paper中提出。作者在訓練相同網絡的同時保存權值快照,然後在訓練後創建具有相同架構但權值不同的網絡集合。這可以提高測試性能,而且這也是一種非常方便的方法,因為你只需要訓練一個模型一次,只需要不時地保存權值。

你可以參考這篇很棒的文章瞭解更多細節。如果你還沒有使用循環學習速率,那麼你絕對應該使用它,因為它已經成為標準的最先進的訓練技術,非常簡單,不需要大量的計算,而且幾乎不需要額外的成本就可以獲得顯著的收益。

上面所有的例子都是模型空間中的集合,因為它們組合了幾個模型,然後使用模型的預測來生成最終的預測。

然而,在我在這篇文章中討論的論文中,作者建議在權值空間中使用一個新的集合。該方法通過將同一網絡在不同訓練階段的權值進行組合得到一個集合,然後使用該模型與權值組合進行預測。這種方法有兩個好處:

  • 當結合權重時,我們最後仍然得到一個模型,這加快了預測
  • 事實證明,這種方法優於目前的快照集成

讓我們看看它是如何工作的。但首先我們需要了解一些關於損失曲面和可推廣解的重要概念。

權值空間的解決方案

第一個重要的觀點是,訓練的網絡是多維權重空間中的一個點。對於給定的體系結構,每個不同的網絡權重組合都會產生一個單獨的模型。由於任意給定的體系結構都有無窮多個權重組合,因此會有無窮多個解。神經網絡的訓練目標是找到一個在訓練和測試數據集上都能提供低損失函數值的特解(權重空間中的點)。

在訓練過程中,通過改變權值,訓練算法改變網絡,在權值空間中運動。梯度下降算法在損失平面上運動,平面高度值由損失函數的值給出。

窄最優和寬最優

多維權值空間的幾何形象化和理解是非常困難的。同時,理解它是非常重要的,因為在訓練過程中,隨機梯度下降本質上是在這個多維的空間中穿越一個損失曲面,並試圖找到一個好的解決方案——在損失曲面上損失值低的“點”。已知這類表面有許多局部優化。但事實證明,它們並非都一樣好。

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”
隨機權值平均:深度學習中一種新的達到stage of the art的方法

窄最優和寬最優。在訓練和測試期間,扁平最小值將產生類似的損失。然而,在訓練和測試中,窄的損失會產生非常不同的結果。換句話說,寬最小值比窄最小值更容易泛化。

一個可以區分好的解決方案和壞的解決方案的度量標準是它的“平整度”。其思想是訓練數據集和測試數據集將產生相似但不完全相同的損失曲面。你可以想象一個測試表面會相對於訓練表面移動一點。對於較窄的解決方案,在測試期間,由於這種轉移,造成低損耗的點可能會有很大的損失。這意味著這種“狹義”的解決方案不能很好的泛化:訓練損失小,測試損失大。另一方面,對於“寬”而平的解決方案,這種轉換將導致訓練和測試損失彼此接近。

我解釋了窄解決方案和寬解決方案之間的區別,因為這篇文章重點關注的新方法會帶來好的和寬的解決方案。

快照集成

一開始,SGD將在權重空間上有一個大的飛躍。然後,由於餘弦退火使得學習速率變小,SGD會收斂到某個局部解,算法會將模型加入到集合中,對模型進行“快照”。然後再次將速率重置為高值,SGD在收斂到某個不同的本地解決方案之前再次進行大跳躍。

快照集成方法中的循環長度是20到40個ephoch。長學習速率循環的思想是能夠在權重空間中找到足夠不同的模型。如果模型太相似,那麼對集成中獨立網絡的預測就會太接近,集成的好處就會被忽略。

快照集成循環非常好用,可以提高模型性能,但是快速的幾何集成循環更加好用。

快速集合集成(FGE)

快速幾何集成與快照集成非常相似,但它有一些不同的特性。它使用線性分段循環學習速率表,而不是餘弦。其次,FGE的循環長度要短得多——每個循環只有2到4個ephoch。乍一看,短週期是錯誤的,因為每個週期結束時的模型彼此接近,因此將它們組合起來不會帶來任何好處。然而,正如作者所發現的那樣,由於在足夠不同的模型之間存在低損失的連接路徑,因此可以在這些路徑上小步移動,並且所遇到的模型將會有足夠的不同,從而允許對它們進行集成,並獲得良好的結果。因此,與快照集合相比,FGE顯示出了提升,它使用了更小的步驟來找到模型(這使得它可以更快地進行訓練)。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

左:傳統的直覺認為好的局部極小值是由高損失區域分隔的。如果我們沿著連接局部極小值的直線運動,這是正確的。中間和右邊:但是,在局部極小值之間存在路徑,使得這些路徑上的損失保持在較低的水平。FGE沿著這些路徑獲取快照,並從快照中創建一個集成。

為了從快照集成或FGE中獲益,需要存儲多個模型,然後對所有模型進行預測,然後對最終預測進行平均。因此,為了集成的額外性能,需要付出更高的計算量。所以沒有免費的午餐。到底有沒有呢?這就是關於隨機加權平均的新論文的切入點。

隨機權值平均(SWA)

隨機權重平均近似於快速幾何集合,但計算損失很小。SWA可以應用於任何體系結構和數據集,並在它們中都顯示出良好的結果。這篇論文認為SWA會導致更寬的最小值,我在上面討論了它的好處。SWA在傳統的理解上並不是一個整體。在培訓結束時,你會得到一個模型,但是它的性能勝過快照集成和FGE方法。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

左:W1、W2、W3代表3個獨立訓練的網絡,Wswa為其平均值。中間:與SGD相比,Wswa在測試集上提供了更好的性能。正確用法:注意,即使Wswa在訓練中顯示出更糟糕的損失,它也能更好地泛化。

SWA的直覺來自實際觀察到的局部最小值在每個學習速率週期結束的時候趨向於積累在損失平面的邊緣地區,這裡損失值是很低的(點W1,W2和W3在上圖的紅色區域的邊緣,紅色區域的損失是很低的)。通過取幾個這樣的點的平均值,就有可能以更低的損失(上圖中的Wswa)實現一個寬的、泛化的解決方案。

它是這樣工作的。你只需要兩個模型,而不是許多模型的集合:

  • 第一個模型存儲模型權值的運行平均值(公式中的Wswa)。這將是訓練結束後的最終模型,用於預測。
  • 第二個模型(公式中的w)將遍歷權值空間,使用循環學習率策略對其進行探索。
"
作者:Max Pechyonkin編譯:ronghuaiyang

導讀

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”

在本文中,我將討論兩篇有趣的論文,它們提供了一種簡單的方法,通過使用一種智能的集成方法來提高任何給定神經網絡的性能。它們是:

  1. “Loss Surfaces, Mode Connectivity, and Fast Ensembling of DNNs” by Garipov et. al
  2. “Averaging Weights Leads to Wider Optima and Better Generalization” by Izmailov et. al

提前閱讀材料,更容易理解這篇文章的上下文:

  • “Improving the way we work with learning rate” by Vitaly Bushaev

傳統的神經網絡集成方法

傳統的集成方法結合了幾個不同的模型,使它們在相同的輸入上進行預測。然後採用平均的方法確定總體的最終預測。它可以是簡單的投票,一個平均值,甚至是另一個學會了通過集成模型的輸入來預測正確的值或標籤的模型。嶺迴歸是一種將多種預測相結合的特殊方法,這種方法被Kaggle-winning machine learning practitioners所使用

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成是在每次學習速率週期結束時保存一個模型來創建的。然後將所保存的模型在預測過程中一起使用。

當應用於深度學習時,集成可以用來組合多個神經網絡的預測,從而產生一個最終的預測。通常在集成中使用不同架構的神經網絡是一個好主意,因為它們很可能在不同的訓練樣本上出錯,因此集成的好處會更大。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

快照集成使用循環學習速率和退火。

但是,你也可以使用相同的體系結構集成模型,它也可以提供令人驚訝的好結果。利用這種方法的一個非常酷的技巧在snapshot ensembling paper中提出。作者在訓練相同網絡的同時保存權值快照,然後在訓練後創建具有相同架構但權值不同的網絡集合。這可以提高測試性能,而且這也是一種非常方便的方法,因為你只需要訓練一個模型一次,只需要不時地保存權值。

你可以參考這篇很棒的文章瞭解更多細節。如果你還沒有使用循環學習速率,那麼你絕對應該使用它,因為它已經成為標準的最先進的訓練技術,非常簡單,不需要大量的計算,而且幾乎不需要額外的成本就可以獲得顯著的收益。

上面所有的例子都是模型空間中的集合,因為它們組合了幾個模型,然後使用模型的預測來生成最終的預測。

然而,在我在這篇文章中討論的論文中,作者建議在權值空間中使用一個新的集合。該方法通過將同一網絡在不同訓練階段的權值進行組合得到一個集合,然後使用該模型與權值組合進行預測。這種方法有兩個好處:

  • 當結合權重時,我們最後仍然得到一個模型,這加快了預測
  • 事實證明,這種方法優於目前的快照集成

讓我們看看它是如何工作的。但首先我們需要了解一些關於損失曲面和可推廣解的重要概念。

權值空間的解決方案

第一個重要的觀點是,訓練的網絡是多維權重空間中的一個點。對於給定的體系結構,每個不同的網絡權重組合都會產生一個單獨的模型。由於任意給定的體系結構都有無窮多個權重組合,因此會有無窮多個解。神經網絡的訓練目標是找到一個在訓練和測試數據集上都能提供低損失函數值的特解(權重空間中的點)。

在訓練過程中,通過改變權值,訓練算法改變網絡,在權值空間中運動。梯度下降算法在損失平面上運動,平面高度值由損失函數的值給出。

窄最優和寬最優

多維權值空間的幾何形象化和理解是非常困難的。同時,理解它是非常重要的,因為在訓練過程中,隨機梯度下降本質上是在這個多維的空間中穿越一個損失曲面,並試圖找到一個好的解決方案——在損失曲面上損失值低的“點”。已知這類表面有許多局部優化。但事實證明,它們並非都一樣好。

Hinton:“要處理14維空間中的超平面,想象一個三維空間,大聲對自己說“14”。每個人都這麼做。”
隨機權值平均:深度學習中一種新的達到stage of the art的方法

窄最優和寬最優。在訓練和測試期間,扁平最小值將產生類似的損失。然而,在訓練和測試中,窄的損失會產生非常不同的結果。換句話說,寬最小值比窄最小值更容易泛化。

一個可以區分好的解決方案和壞的解決方案的度量標準是它的“平整度”。其思想是訓練數據集和測試數據集將產生相似但不完全相同的損失曲面。你可以想象一個測試表面會相對於訓練表面移動一點。對於較窄的解決方案,在測試期間,由於這種轉移,造成低損耗的點可能會有很大的損失。這意味著這種“狹義”的解決方案不能很好的泛化:訓練損失小,測試損失大。另一方面,對於“寬”而平的解決方案,這種轉換將導致訓練和測試損失彼此接近。

我解釋了窄解決方案和寬解決方案之間的區別,因為這篇文章重點關注的新方法會帶來好的和寬的解決方案。

快照集成

一開始,SGD將在權重空間上有一個大的飛躍。然後,由於餘弦退火使得學習速率變小,SGD會收斂到某個局部解,算法會將模型加入到集合中,對模型進行“快照”。然後再次將速率重置為高值,SGD在收斂到某個不同的本地解決方案之前再次進行大跳躍。

快照集成方法中的循環長度是20到40個ephoch。長學習速率循環的思想是能夠在權重空間中找到足夠不同的模型。如果模型太相似,那麼對集成中獨立網絡的預測就會太接近,集成的好處就會被忽略。

快照集成循環非常好用,可以提高模型性能,但是快速的幾何集成循環更加好用。

快速集合集成(FGE)

快速幾何集成與快照集成非常相似,但它有一些不同的特性。它使用線性分段循環學習速率表,而不是餘弦。其次,FGE的循環長度要短得多——每個循環只有2到4個ephoch。乍一看,短週期是錯誤的,因為每個週期結束時的模型彼此接近,因此將它們組合起來不會帶來任何好處。然而,正如作者所發現的那樣,由於在足夠不同的模型之間存在低損失的連接路徑,因此可以在這些路徑上小步移動,並且所遇到的模型將會有足夠的不同,從而允許對它們進行集成,並獲得良好的結果。因此,與快照集合相比,FGE顯示出了提升,它使用了更小的步驟來找到模型(這使得它可以更快地進行訓練)。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

左:傳統的直覺認為好的局部極小值是由高損失區域分隔的。如果我們沿著連接局部極小值的直線運動,這是正確的。中間和右邊:但是,在局部極小值之間存在路徑,使得這些路徑上的損失保持在較低的水平。FGE沿著這些路徑獲取快照,並從快照中創建一個集成。

為了從快照集成或FGE中獲益,需要存儲多個模型,然後對所有模型進行預測,然後對最終預測進行平均。因此,為了集成的額外性能,需要付出更高的計算量。所以沒有免費的午餐。到底有沒有呢?這就是關於隨機加權平均的新論文的切入點。

隨機權值平均(SWA)

隨機權重平均近似於快速幾何集合,但計算損失很小。SWA可以應用於任何體系結構和數據集,並在它們中都顯示出良好的結果。這篇論文認為SWA會導致更寬的最小值,我在上面討論了它的好處。SWA在傳統的理解上並不是一個整體。在培訓結束時,你會得到一個模型,但是它的性能勝過快照集成和FGE方法。

隨機權值平均:深度學習中一種新的達到stage of the art的方法

左:W1、W2、W3代表3個獨立訓練的網絡,Wswa為其平均值。中間:與SGD相比,Wswa在測試集上提供了更好的性能。正確用法:注意,即使Wswa在訓練中顯示出更糟糕的損失,它也能更好地泛化。

SWA的直覺來自實際觀察到的局部最小值在每個學習速率週期結束的時候趨向於積累在損失平面的邊緣地區,這裡損失值是很低的(點W1,W2和W3在上圖的紅色區域的邊緣,紅色區域的損失是很低的)。通過取幾個這樣的點的平均值,就有可能以更低的損失(上圖中的Wswa)實現一個寬的、泛化的解決方案。

它是這樣工作的。你只需要兩個模型,而不是許多模型的集合:

  • 第一個模型存儲模型權值的運行平均值(公式中的Wswa)。這將是訓練結束後的最終模型,用於預測。
  • 第二個模型(公式中的w)將遍歷權值空間,使用循環學習率策略對其進行探索。
隨機權值平均:深度學習中一種新的達到stage of the art的方法

隨機權值平均的權值更新方程

每個學習速率週期結束時,通過對舊的正在運行的平均權值和新的來自第二個模型的權值去平均,來更新正在運行的平均模型。按照這種方法,你只需要訓練一個模型,並且在訓練期間只在內存中存儲兩個模型。對於預測,你只需要運行平均模型,並且對其進行預測要比使用前面描述的集成快得多,集成使用許多模型進行預測,然後對結果進行平均。

實現

作者的論文提供了PyTorch實現的代碼:https://github.com/timgaripov/swa。

英文原文:https://towardsdatascience.com/stochastic-weight-averaging-a-new-way-to-get-state-of-the-art-results-in-deep-learning-c639ccf36a

更多文章,請關注微信公眾號:AI公園

"

相關推薦

推薦中...