1. 程式人生 > >機器學習超參數優化庫

機器學習超參數優化庫

並行 分布 可靠的 ima 深度學習 可能 計算平臺 過程 sklearn

  1. Skopt
    https://scikit-optimize.github.io/
    是一個超參數優化庫,包括隨機搜索、貝葉斯搜索、決策森林和梯度提升樹。這個庫包含一些理論成熟且可靠的優化方法,但是這些模型在小型搜索空間和良好的初始估計下效果最好。
  2. Hyperopt
    https://github.com/hyperopt/hyperopt-sklearn
    是一個超參數優化庫,針對具有一定條件或約束的搜索空間進行調優,其中包括隨機搜索和Tree Parzen Estimators(貝葉斯優化的變體)等算法。它使用MongoDb作為存儲超參數組合結果的中心結構,可實現多臺電腦的並行計算。這個庫是用hyperopt-sklearn和hyperas實現的,這兩個用於模型選擇和優化的函數庫分別建立在scikit-learn和keras的基礎上。
  3. Simple(x)
    https://github.com/chrisstroemel/Simple
    一個優化庫,可作為貝葉斯優化的替代方法。Simple(x)和貝葉斯搜索一樣,試圖以盡可能少的樣本進行優化,但也將計算復雜度從n3降低到log(n),這對大型搜索空間非常有用。這個庫使用單形(n維三角形),而不是超立方體(n維立方體),來模擬搜索空間,這樣做可以避開貝葉斯優化中具有高計算成本的高斯過程。
  4. Ray.tune
    https://github.com/ray-project/ray/tree/master/python/ray/tune
    是一個超參數優化庫,主要適用於深度學習和強化學習模型。它結合了許多先進算法,如Hyperband算法(最低限度地訓練模型來確定超參數的影響)、基於群體的訓練算法(Population Based Training,在共享超參數下同時訓練和優化一系列網絡)、Hyperopt方法和中值停止規則(如果模型性能低於中等性能則停止訓練)。這些都運行在Ray分布式計算平臺上,這讓它具有很強的擴展性。
  5. Chocolate
    https://github.com/AIworx-Labs/chocolate
    是一個分布式超參數優化庫(支持計算機集群的並行運算且無需中央主機),它使用通用數據庫來聯合執行各個任務。它還支持網格搜索、隨機搜索、準隨機搜索、貝葉斯搜索和自適應協方差矩陣進化策略。它的優勢體現在它支持受約束的搜索空間和多損失函數優化(多目標優化)。
  6. GpFlowOpt
    https://github.com/GPflow/GPflowOpt
    一個基於GpFlow庫的高斯過程優化器,可使用TensorFlow在GPU上運行高斯過程任務。你如果要用到貝葉斯優化且有可用的GPU計算資源,那GpFlowOpt庫應該是理想之選。
  7. FAR-HO
    https://github.com/lucfra/FAR-HO
    運行在TensorFlow上,包含一系列基於梯度的優化器,包括Reverse-HG和Forward-HG。這個庫旨在構建TensorFlow中基於梯度的超參數優化器的訪問,允許在GPU或其他張量優化計算環境中進行深度學習模型的訓練和超參數優化。
  8. Xcessiv
    https://github.com/reiinakano/xcessiv
    支持大規模模型開發、執行和集成。它的優勢在於能夠在單個GUI界面中管理多個機器學習模型的訓練、執行和評估。它具有多個集成工具來組合這些模型,以實現最佳性能。它包括一個貝葉斯搜索參數優化器,這個優化器支持高級別並行計算,還支持與TPOT庫的集成。
  9. HORD
    https://github.com/ilija139/HORD
    一個用於超參數優化的獨立算法,它能為需要優化的黑盒模型生成一個代理函數,並用它來生成最接近理想狀態的超參數組合,以減少對整個模型的評估。與Tree Parzen Estimators、SMAC和高斯過程方法相比,它始終具有更高的一致性和更低的錯誤率,而且這個方法特別適用於極高維數據分析。
  10. ENAS-pytorch
    https://github.com/carpedm20/ENAS-pytorch
    可在pytorch中實現高效的深度學習結構搜索。它使用參數共享來構建更高效的網絡,使其適用於深度學習結構搜索。

機器學習超參數優化庫