二元神經網路

使用類神經網路演算法建立二元分類器

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

注意

適用于 : Machine Learning Studio (傳統)

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

模組概觀

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

使用類神經網路的分類是受監督的學習方法,因此需要加上標籤 資料集的標記資料集,包括標籤資料行。 例如,您可以使用此類神經網路模型來預測二進位結果,例如患者是否有特定疾病,或電腦是否可能在指定的時間範圍內故障。

在您定義模型之後,請提供已加上標籤的資料集和模型作為 定型模型 的輸入或 微調模型超參數,以將模型定型。 然後,您可以使用定型的模型來預測新輸入的值。

深入瞭解類神經網路

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

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

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

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

如何設定 Two-Class 類神經網路

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

  2. 藉由設定 [ 建立定型模式] 選項,指定您要如何定型模型。

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

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

  3. 針對 [ 隱藏層規格],選取要建立的網路架構類型。

    • 完全連接的案例:會使用預設的類神經網路架構,定義給二級類神經網路,如下所示:

      • 有一個隱藏層。

      • 輸出層完全連接到隱藏層,而隱藏層完全連接到輸入層。

      • 輸入層中的節點數目等於定型資料中的特徵數目。

      • 隱藏層中的節點數目是由使用者設定。 預設值是 100。

      • 節點數目等於類別數目。 針對二級類神經網路,這表示所有輸入都必須對應至輸出層中的兩個節點之一。

    • 自訂定義腳本:選擇此選項可使用 Net # 語言建立自訂類神經網路架構。 使用這個選項,您可以定義隱藏層的數目、其連接,以及各層之間的對應。

    選取 [自訂腳本] 選項之後,在 [類 神經網路定義 ] 文字方塊中,輸入或貼上定義網路的 Net # 語句。 如需範例,請參閱 Net # 類神經網路規格語言指南

  4. 如果您不是使用腳本選項,請使用 隱藏節點的數目,並輸入隱藏節點的數目。 預設值是一個具有100節點的隱藏層。

  5. 針對 學習速率,定義在每次反復進行更正之前所採取的步驟大小。 較大的學習速率值可能會導致模型更快收斂,但可能衝過局部最小值。

  6. 針對 [學習反復專案 數目],指定演算法應該處理定型案例的最大次數。

  7. 若為 初始學習加權直徑,請在學習程式開始時指定節點加權。

  8. 針對 動量,請指定在學習到先前反覆運算的節點期間要套用的權數

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

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

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

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

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

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

  10. 選取 [ 隨機範例 ] 選項,以隨機反覆運算之間的案例。 如果您取消選取此選項,則每次執行實驗時都會以完全相同的連續處理案例。

  11. 針對 [ 亂數字種子],輸入要做為種子的值。

    如果您想要確保相同實驗每次執行時的重複性,指定種子值很有用。 否則,系統時鐘值會當做種子使用,這可能會在您每次執行實驗時產生稍微不同的結果。

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

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

  13. 將已加上標籤的資料集新增至實驗,並連接其中一個 定型模組

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

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

    注意

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

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

    如果您選取 [ 參數範圍 ] 選項,並輸入任何參數的單一值,就會在整個清除中使用該單一值,即使其他參數會在某個範圍的值之間變更也一樣。

  14. 執行實驗。

結果

定型完成後:

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

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

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

範例

如需如何使用此學習演算法的範例,請參閱 AZURE AI 資源庫。 這些實驗在從基本到 advanced 設定進行的單一檔中有相關和描述:

技術說明

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

深入瞭解 Net#

在 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 指定學習時執行的反覆次數
隨機範例 任意 Boolean true 選取此選項可變更執行個體在反覆學習之間的順序
亂數散播 任意 整數 指定用於產生亂數的數值種子。 保留空白會使用預設種子。
允許不明類別層級 任意 布林值 True 指出是否應該為未知的類別建立額外層級。 如果測試資料集包含不存在於定型資料集裡的類別,這些類別會對應至這個未知層級。

輸出

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

另請參閱

分類
類神經網路回歸
多元類神經網路
A-Z 模組清單