多元神經網路

使用類神經網路演算法建立多級分類模型

類別: 機器學習/初始化模型/分類

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

模組概觀

本文說明如何使用 Azure Machine Learning Studio (傳統) 中的 多元類神經網路 模組建立類神經網路模型,以用來預測具有多個值的目標。

例如,這種類型的類神經網路可能會用於複雜的電腦視覺工作,例如數位或字母辨識、檔分類和模式辨識。

使用類神經網路的分類是受監督的學習方法,因此需要包含標籤資料行的已加上標籤 資料集

您可以將模型和加上標籤的資料集做為 定型模型 的輸入,或 微調模型超參數,藉以定型模型。 然後,您可以使用定型的模型來預測新輸入範例的值。

深入瞭解類神經網路

類神經網路是一組互連的圖層。 輸入是第一層,並以非循環圖表(由加權邊緣和節點組成)連接到輸出層。

在輸入和輸出層之間,您可以插入多個隱藏層。 大部分的預測工作可以與一個或幾個隱藏層輕鬆完成。 不過,最近的研究顯示,在許多層級中 (DNN) 的深度類神經網路,在影像或語音辨識等複雜的工作中非常有效。 後續層會用來建立更多的語義深度層級模型。

輸入和輸出之間的關聯性是從定型輸入資料上的類神經網路來學習的。 圖形的方向會透過隱藏層和輸出層的輸入繼續進行。 圖層中的所有節點都是由加權邊緣連接到下一層中的節點。

若要計算特定輸入的網路輸出,會在隱藏層和輸出層中的每個節點上計算值。 值的設定方式是從上一層計算節點值的加權總和。 啟用函式接著會套用到該加權總和。

如何設定多元類神經網路

  1. 多元類神經網路 模組新增至您在 Studio (傳統) 中的實驗。 您可以在 **機器學習****服務的 [**分類] 類別目錄中找到此模組。

  2. 建立定型模式:使用此選項來指定要如何訓練模型:

    • 單一參數:如果您已經知道要如何設定模型,請選擇此選項。

    • 參數範圍:如果您不確定最佳參數,而且想要使用參數清除,請選擇此選項。 然後,您可以指定值的範圍,並使用 微調模型超參數 模組來反復查看組合,並尋找最佳設定。

  3. 隱藏層規格:選取要建立的網路架構類型。

    • 完全連線的案例:選取此選項,即可使用預設的類神經網路架構來建立模型。 多元類神經網路模型的預設值如下:

      • 一個隱藏層
      • 輸出層完全連接到隱藏層。
      • 隱藏層完全連接到輸入層。
      • 輸入層的節點數目取決於定型資料中的特徵數目。
      • 隱藏層中的節點數目可以由使用者設定。 預設值為 100。
      • 輸出層的節點數目取決於級別的數目。
    • 自訂定義腳本。 使用 Net # 語言,選擇這個選項來建立自訂類神經網路架構。 您可以定義隱藏層的數目、其連接和 advanced 選項,例如指定圖層之間的對應。 如需 Net # 的簡介,請參閱本主題稍後的「 深入瞭解 net # 」。

  4. 神經網路定義:如果您選取了 [自訂架構] 選項,請使用文字方塊來輸入或貼上以 Net # 語言撰寫的語句。 如需其他腳本範例,請參閱 Net # 類神經網路規格語言指南

  5. 隱藏節點的數目:此選項可讓您自訂預設架構中的隱藏節點數目。 輸入隱藏節點的數目。 預設值是一個具有100節點的隱藏層。

  6. 學習率:定義在每個反復專案(更正之前)所採取步驟的大小。較大的學習速率值可能會導致模型更快收斂,但它可以超過本機最小值。

  7. 學習反覆運算次數:指定演算法應該處理定型案例的最大次數。

  8. 初始學習加權直徑:在學習流程開始時指定節點權數。

  9. 動力:指定在學習到先前反覆運算的節點期間要套用的加權。

  10. 正規化程式的類型:選取要用於功能正規化的方法。 以下是支援的正規化方法:

    • 分類收納正規化程式:分類收納正規化程式會建立相同大小的 bin,然後將每個空間中的每個值正規化,方法是除以總的 bin 數。

    • 高斯正規化程式:高斯正規化程式會方式將每個功能的值,以表示0和變異數1。 這是藉由計算每項功能的平均數和變異數來完成。 每個實例都會減去平均值,而結果除以變異數的平方根 (標準差) 。

    • 最小值-最大值正規化程式:最小值正規化程式可線性方式將每項功能到 [0,1] 間隔。

      轉換每個特徵的值而使最小值為 0,然後再除以新的最大值 (這是原始最大值與最小值之間的差異),重新調整為 [0,1] 間隔的作業即完成。

    • 請勿 正規化:不執行正規化。

  11. 隨機範例:選取此選項可在反復專案之間隨機顯示案例。

    如果您取消選取此選項,則每次執行實驗時都會以完全相同的連續處理案例。

  12. 亂數種子:如果您想要確保重複性跨相同實驗的執行,請輸入要做為種子的值。

  13. 允許未知的類別層級:選取此選項可在定型和驗證集中建立未知值的群組。 模型的已知值可能較不精確,但是針對新的 (未知的) 值提供更好的預測。

    如果您取消選取此選項,模型只能接受定型資料中包含的值。

  14. 連接訓練資料集和其中一個 定型模組

    • 如果您將 [ 建立定型模式] 設定為 [ 單一參數],請使用 [ 定型模型]。

    • 如果您將 [ 建立定型模式] 設定為 [ 參數範圍],請使用 [ 微調模型超參數]。

    注意

    如果您將參數範圍傳遞給 定型模型,它只會使用 [參數範圍] 清單中的第一個值。

    如果您將一組參數值傳遞至 微調模型超參數 模組,當它預期每個參數的設定範圍時,會忽略這些值並使用學習模組的預設值。

    如果您選取 [ 參數範圍 ] 選項,並輸入任何參數的單一值,則整個清除期間都會使用您所指定的單一值,即使其他參數會在某個範圍的值之間變更。

結果

定型完成後:

  • 若要查看模型參數的摘要,以及從定型學習的特徵權數和類神經網路的其他參數,請以滑鼠右鍵按一下 [ 定型模型 ] 或 [ 微調模型超參數] 的輸出,然後選取 [ 視覺化]。

  • 若要儲存定型模型的快照集,請以滑鼠右鍵按一下 定型的模型 輸出,然後選取 [ 另存為定型的模型]。 相同實驗的後續執行不會更新此模型。

  • 若要對加上標籤的資料集執行交叉驗證,請將未定型的模型連接至 交叉驗證模型

範例

如需如何使用此學習演算法的範例,請參閱 AZURE AI 資源庫中的下列範例實驗。 實驗會與單一文件相關並在其中說明,並從基本邁入進階組態:

技術說明

本節包含對常見問題的執行詳細資料、秘訣和解答。

使用腳本自訂類神經網路

在 Azure Machine Learning Studio (傳統) 中,您可以使用 Net # 語言自訂類神經網路模型的架構。 Net # 語言支援的自訂包括:

  • 指定隱藏層的數目和每個圖層中的節點數目
  • 指定圖層之間的對應
  • 定義迴旋和權數共用套件組合
  • 選擇啟用函數

類神經網路模型是由其圖形結構所定義,其中包含這些屬性:

  • 隱藏層的數目
  • 每個隱藏層中的節點數目
  • 圖層的連線方式
  • 使用的啟用函數
  • 圖形邊緣的加權

重要

圖形的整體結構以及啟用函式可以由使用者指定。 但是,無法指定邊緣的權數,而且必須在針對輸入資料定型類神經網路時學習。

一般而言,網路具有下列預設值:

  • 第一層一律為輸入層。
  • 最後一層一律為輸出層。
  • 輸出層的節點數目應該等於級別數目。

您可以定義任何數目的中繼層:這些層有時稱為隱藏層,因為它們包含在模型中,而且不會直接公開為端點。

Net # 參考指南說明語法,並提供範例網路定義。 其中說明如何使用 Net # 加入隱藏層,並定義不同層彼此互動的方式。

例如,下列腳本 auto 會使用關鍵字,它會自動設定輸入和輸出層的功能數目,並使用隱藏層的預設值。

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

如需其他腳本範例,請參閱 Net # 類神經網路規格語言指南

提示

類神經網路的計算成本可能很高,因為有許多超參數和自訂網路拓撲的引進。 雖然在許多情況下,與其他演算法相較,類神經網路會產生更好的結果,但取得這類的結果可能透過超參數牽涉到大量的清除 (反覆運算) 動作。

模組參數

Name 範圍 類型 預設 描述
隱藏層規格 List 類神經網路拓撲 完全連接案例 指定隱藏層的架構
初始學習加權直徑 >=double.Epsilon Float 0.1 指定在學習程序開始時的節點權數
學習速率 [double.Epsilon;1.0] Float 0.1 指定學習過程中每個步驟的大小
動量 [0.0; 1.0] Float 0.0 指定學習過程中要從先前反覆運算套用至節點的權數
類神經網路定義 任意 StreamReader 當您選取 [自訂定義指令碼] 時,請在每一行輸入有效的指令碼運算式來定義自訂類神經網路的層級、節點及行為
正規化程式的類型 List 正規化方法 最小值最大值正規化程式 選取要套用至學習範例的正規化類型
學習反覆次數 >= 1 整數 100 指定學習時反覆次數
隨機範例 任意 布林值 True 選取此選項可變更執行個體在反覆學習之間的順序
亂數散播 任意 整數 指定用於產生亂數的數值種子。 保留空白會使用預設種子。
允許不明類別層級 任意 布林值 True 指出是否應該為未知的類別建立額外層級。 如果測試資料集包含不存在於定型資料集裡的類別,這些類別會對應至這個未知層級。

輸出

名稱 類型 Description
未定型的模型 ILearner 介面 未定型的二級分類模型

另請參閱

分類
二級類神經網路
類神經網路回歸
A-Z 模組清單