多元神經網路

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

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

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

注意

適用于僅限機器學習 Studio (傳統)

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 資源庫中的下列範例實驗。 實驗會與單一文件相關並在其中說明,並從基本邁入進階組態:

技術說明

本節包含實作詳細資料、提示和常見問題集的解答。

使用腳本自訂類神經網路

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

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

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

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

重要

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

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

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

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

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

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

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

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

提示

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

模組參數

名稱 範圍 類型 預設 描述
隱藏層規格 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 指出是否應該為未知的類別建立額外層級。 如果測試資料集包含不存在於定型資料集裡的類別,這些類別會對應至這個未知層級。

輸出

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

另請參閱

分類
二元神經網路
類神經網路迴歸
A-Z 模組清單