本申請涉及大數據處理領域,尤其涉及一種機器學習系統的訓練方法和訓練系統。
背景技術:
現如今,服務好用戶是各互聯網公司都希望實現的目標。為此,絕大部分公司都采用機器學習的方式捕捉用戶的偏好和習慣,提供個性化的服務。舉例來說,各網站可以利用機器學習系統,收集用戶上網的行為數據,為不同性別/年齡的用戶提供不同的搜索結果,做到最大程度地根據用戶的喜好提供服務。
上述的機器學習系統可以收集大量用戶的行為數據,例如用戶瀏覽/點擊/購買/頂帖子/發(fā)表對帖子的意見等等,并利用某些機器學習算法,離線對機器學習系統進行訓練。在得到一個預測模型之后,放在線上系統,對用戶提供服務。例如亞馬遜的推薦系統,其可以根據用戶以往的行為日志(比如包含昨天以及昨天再向前推2周的日志),學習用戶偏好之后,給不同用戶推薦不同的商品.
這種利用以往用戶行為數據,離線進行訓練,得到模型的方式稱為離線學習。然而正常情況下用戶行為和興趣可能在一天之內都會發(fā)生顯著變化,由于離線學習系統中用戶當下產生的日志并不能馬上加入到系統中去訓練,離線學習顯然不能捕獲這種變化。
在線學習就是模型隨著接收的新訓練數據,不斷更新模型本身。因而它能取得更好的效果。在線學習精度比較高,但由于數據采集的時間段比較短,模型受數據中噪聲影響比較大,造成模型訓練不穩(wěn)定;同時由于在線學習采用異步更新模型的方式,訓練數據不斷流入模型,模型不斷進行更新學習,經常由于某些不可控的問題導致模型訓練卡死,出現訓練失敗,導致無法產出可用的模型、影響線上服務、損害用戶體驗。
技術實現要素:
鑒于上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的機器學習系統的訓練方法和訓練系統。
為解決上述問題,本申請公開一種機器學習系統的訓練方法,利用訓練數據對所述機器學習系統進行訓練,所述訓練方法包括:
將所述訓練數據分配給多個工作機;
將每一個工作機分配得到的訓練數據劃分為多個數據片;
獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
本申請實施例至少具有以下優(yōu)點:
根據本申請實施例提出的機器學習系統的訓練方法和訓練系統,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異?;虻诙惍惓?,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了 系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
附圖說明
圖1是本申請第一實施例的機器學習系統的訓練方法的流程圖。
圖2是本申請第二實施例的機器學習系統的訓練方法的流程圖。
圖3是本申請第三實施例的機器學習系統的訓練方法的流程圖。
圖4是本申請第四實施例的機器學習系統的訓練系統的方框圖。
圖5是本申請第五實施例的機器學習系統的訓練系統的方框圖。
圖6是本申請第六實施例的機器學習系統的訓練系統的方框圖。
具體實施方式
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員所獲得的所有其他實施例,都屬于本申請保護的范圍。
本申請的核心思想之一在于,提出一種機器學習系統的訓練方法,在該方法中,首先將訓練數據分配給多個工作機;將每一個工作機分配得到的訓練數據劃分為多個數據片;獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;匯總這些本地權重和本地損失函數值,獲得當前權重和當前損失函數值;利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;當檢測結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;當檢測結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入機器學習系統進行訓練。
第一實施例
本申請第一實施例提出一種機器學習系統的訓練方法,如圖1所示為本申請第一實施例的機器學習系統的訓練方法的流程圖。該機器學習系統優(yōu)選 為分布式機器學習系統,包括參數服務器(parameterserver),該參數服務器例如可以包括多個工作機(worker或者slaver)、多個服務器(server)、一個協調器(coordinator)。如圖1所示,該訓練方法包括如下步驟:
步驟s101,將所述訓練數據分配給多個工作機;
在這一步驟中,例如,每個工作機可以根據其標識讀取屬于自己的訓練數據,各工作機之間的數據不重疊。這一步驟例如可以由協調器按照每個工作機的id將訓練數據劃分為屬于每一個工作機的訓練數據,并由對應的工作機讀取該訓練數據。
步驟s102,將每一個工作機分配得到的訓練數據劃分為多個數據片;
在這一步驟中,例如,每一個工作機基于其自身的系統配置將其分配得到的訓練數據劃分為多個數據片,每一個工作機的每次處理是基于一個數據片進行處理。即,每個工作機每次只處理一個數據片。
步驟s103,獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
在這一步驟中,例如,在每一個工作機中,基于該工作機獲得的訓練數據中的一個數據片,計算獲得該工作機該次計算對應的本地權重和本地損失函數值;由于該機器學習系統包括多個工作機,在這一步驟中,可以獲得多個工作機在該次計算中獲得的本地權重和本地損失函數值。
步驟s104,匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
在這一步驟中,例如,每一個工作機將計算出的本地權重和本地損失函數值發(fā)送至服務器,由服務器對由多個工作機在本次計算出的多個本地權重和本地損失函數值進行匯總,獲得當前權重和當前損失函數值。匯總的過程包括但不限于相加、相加后平均等,本發(fā)明并不特別限制。
在步驟s103中每一個工作機計算出本地權重和本地損失函數值之后,可以異步地發(fā)送給服務器,在步驟s104中,可以由協調器驅動服務器進行多個本地權重和本地損失函數的匯總。
步驟s105,利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
在這一步驟中,例如,可以將匯總后的當前權重和/或當前損失函數值輸入模型異常檢測裝置,根據預設的條件對模型是否異常進行檢測。檢測的結果例如可以為正常、第一類異常和第二類異常,并在后續(xù)分別針對這三種情況進行對應處理。
在一實施例中,模型異常檢測裝置的輸入值為當前權重、當前損失函數值、上一次匯總后的權重和上一次匯總后的損失函數值。上一次匯總后的權重由每一個工作機基于上一次計算使用的數據片計算得出的上一次本地權重進行匯總獲得;上一次匯總后的損失函數值由每一個工作機基于上一次計算使用的數據片計算得出的上一次本地損失函數值進行匯總獲得。
步驟s106,當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
在這一步驟中,例如檢測結果為第一類異常,則忽略或刪除每一個工作機本次計算獲得的本地權重和本地損失函數值以及匯總后的當前權重和當前損失函數值,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練。
步驟s107,當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
在這一步驟中,例如檢測結果是第二類異常,可以進入模型微調裝置,將當前權重和/或當前損失函數值減去預設的第一閾值,獲得每一個元素的數值均位于第一閾值內的當前權重和/或當前損失函數值,并輸入機器學習系統進行訓練。特別地,當第一次減去預設的第一閾值仍不能得到位于第一閾值內的當前權重和/或當前損失函數值時,則可以再進行一次或多次減去第一閾值的處理,直到每一個元素的數值均位于第一閾值內。
在本申請第一實施例提出的機器學習系統的訓練方法中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪 聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異常或第二類異常,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
第二實施例
本申請第二實施例提出一種機器學習系統的訓練方法,如圖2所示為本申請第二實施例的機器學習系統的訓練方法的流程圖。該機器學習系統優(yōu)選為分布式機器學習系統,如圖2所示,該訓練方法包括如下步驟:
s201,將所述訓練數據分配給多個工作機;
s202,將每一個工作機分配得到的訓練數據劃分為多個數據片;
s203,獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
s204,匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
s205,利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
s206,當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
s207,當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
上述步驟s201至s207與第一實施例中的步驟s101至s107相同的部分在此不再贅述。
在本實施例中,步驟s205,即所述利用當前權重和/或當前損失函數值 執(zhí)行模型異常檢測的步驟包括:
子步驟s205a,判斷當前損失函數值是否大于上一次匯總后的損失函數的值的k倍;
在這一子步驟中,可以預先設置數值k,作為判定當前損失函數值是否異常的判定依據。
子步驟s205b,當判斷出當前損失函數值是否大于上一次匯總后的損失函數的值的k倍時,判定所述模型異常檢測的結果為第一類異常。
在這一子步驟中,當判斷出當前損失函數值大于上一次匯總后的損失函數的值的k倍時,可以認為本次計算并匯總出的當前損失函數值為第一類異常,即較為嚴重的異常。當判斷出模型出現這一類異常,則可以直接拋棄本次計算出的當前權重和當前損失函數值。
在本實施例中,步驟s205,即所述利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測的步驟還可以包括:
子步驟s205c判斷當前權重中的元素的最大值和/或最小值的絕對值是否大于預設的第二閾值;
在這一子步驟中,當前權重為包括n個元素的向量,在匯總得出當前權重后,可以判斷該向量的每一個元素(即每一個維度)的最大值和/或最小值的絕對值是否大于預設的第二閾值;第二閾值可以預先指定。
子步驟s205d,當判斷出當前權重中的元素的最大值和/或最小值的絕對值是否大于預設的第二閾值時,判定所述模型異常檢測的結果為第二類異常。
在這一子步驟中,當判斷出當前權重中的元素的最大值和最小值中的至少一者的絕對值大于預設的第二閾值時,則認為所述模型存在第二類異常,即相對較為輕微的異常??梢酝ㄟ^修正保留本次計算出的當前權重和當前損失函數值,將其修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
優(yōu)選地,將當前權重和/或當前損失函數值修正為第一閾值內的本地權重和/或本地損失函數值的步驟可以包括:
將所述最大值和/或最小值的絕對值大于預設的第二閾值的元素減去所述第二閾值,獲得每一個元素均位于所述第二閾值內的當前權重。
在本實施例中,步驟s205,即所述利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測的步驟還可以包括:
子步驟s205e,判斷前n次匯總后的損失函數值的平均值是否大于第一次匯總后的損失函數值;
在這一子步驟中,前n次匯總得出的損失函數值例如存儲在特定的存儲區(qū)域,可以計算前n次匯總后的損失函數值的平均值,并判斷該值是否大于第一次匯總得出的損失函數值。
子步驟s205f,當判斷出前n次匯總后的損失函數值的平均值大于第一次匯總后的損失函數值時,判定所述模型異常檢測的結果為第一類異常。
在這一子步驟中,當判斷出前n次匯總后的損失函數值的平均值大于第一次匯總后的損失函數值時,則可以認為該模型存在第一類異常,即較為嚴重的異常,當判斷出模型出現這一類異常,則可以直接拋棄本次計算出的當前權重和當前損失函數值。
在本申請第二實施例提出的機器學習系統的訓練方法中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異?;虻诙惍惓?,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
第三實施例
本申請第三實施例提出一種機器學習系統的訓練方法,如圖3所示為本申請第三實施例的機器學習系統的訓練方法的流程圖。該機器學習系統優(yōu)選為分布式機器學習系統,如圖3所示,該訓練方法包括如下步驟:
s301,將所述訓練數據分配給多個工作機;
s302,將每一個工作機分配得到的訓練數據劃分為多個數據片;
s303,獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
s304,匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
s305,利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
s306,當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
s307,當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
上述步驟s301至s307與第一實施例中的步驟s101至s107相同的部分在此不再贅述。
在本實施例中,在步驟s305即所述利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測的步驟之后,所述訓練方法還可以包括:
s308,當所述模型異常檢測的結果為正常,將當前權重和/或當前損失函數值輸入所述機器學習系統進行訓練。
在這一實施例中,當檢測出本次計算并匯總后的當前權重和當前損失函數值下該模型正常,則可以將當前權重和/或當前損失函數值作為有效的計算結果,輸入所述機器學習系統進行訓練。
進一步地,在該實施例中,在步驟s308即所述當所述模型異常檢測的結果為正常,將當前權重和/或當前損失函數值輸入所述機器學習系統進行訓練的步驟之后,所述方法還包括:
s309,判斷訓練是否結束;
在該步驟中,例如,當檢測到當前損失函數的值與上一次匯總后損失函數的值小于第三閾值時,判定訓練結束。該第三閾值可以是系統檢測到的閾值。
然而,本領域技術人員可以明確,該判斷步驟并不限定于通過與差值與第三閾值的比較的方式進行,本領域還有多種驗證訓練是否可以結束的方法,在此不再贅述。
s310,當判定訓練結束,產出所述模型;
在這一步驟中,當判斷出訓練結束,即該模型已可以使用,則產出該模型,例如可以使該模型上線進行應用。
s311,當判定訓練未結束,重復執(zhí)行獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值的步驟。
在這一步驟中,例如,當檢測到當前損失函數的值與上一次匯總后損失函數的值大于第三閾值時,判定訓練未結束。在此情況下,可以重復執(zhí)行獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值的步驟,即讓每一個工作機繼續(xù)基于其他數據片計算出本地權重和本地損失函數值,并在后續(xù)匯總獲得當前權重和當前損失函數值,重復該訓練方法,直到獲得滿足使用要求的模型。
另外,在第一至第三實施例公開的方案中,優(yōu)先地,在將所述訓練數據分配給多個工作機的步驟之前,所述方法還包括:
獲取訓練數據;
將所述訓練數據分配給多個工作機的步驟還包括:
按照每一個工作機的標識,將所述訓練數據分配給多個工作機。
另外,在第一至第三實施例公開的方案中,優(yōu)先地,所述匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值的步驟可以包括:
將每一個工作機基于每一個數據片計算出的所述本地權重相加,獲得當前權重;
將每一個工作機基于每一個數據片計算出的所述本地損失函數值相加,獲得當前本地損失函數。
在本申請第三實施例提出的機器學習系統的訓練方法中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異?;虻诙惍惓?,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
第四實施例
本申請第四實施例提出一種機器學習系統的訓練系統,如圖4是本申請第四實施例的機器學習系統的訓練系統的方框圖。該機器學習系統優(yōu)選為分布式機器學習系統,如圖4所示,該訓練系統400包括:
訓練數據分配模塊401,用于將所述訓練數據分配給多個工作機;
訓練數據劃分模塊402,用于將每一個工作機分配得到的訓練數據劃分為多個數據片;
獲取模塊403,用于獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
匯總模塊404,用于匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
異常檢測模塊405,用于利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
第一處理模塊406,用于當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
第二處理模塊407,用于當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
在本申請第四實施例提出的機器學習系統的訓練系統中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異常或第二類異常,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
第五實施例
本申請第五實施例提出一種機器學習系統的訓練系統,如圖5是本申請第五實施例的機器學習系統的訓練系統的方框圖。該機器學習系統優(yōu)選為分布式機器學習系統,如圖5所示,該訓練系統500包括:
訓練數據分配模塊501,用于將所述訓練數據分配給多個工作機;
訓練數據劃分模塊502,用于將每一個工作機分配得到的訓練數據劃分為多個數據片;
獲取模塊503,用于獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
匯總模塊504,用于匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
異常檢測模塊505,用于利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
第一處理模塊506,用于當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
第二處理模塊507,用于當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
在該實施例中,所述異常檢測模塊505包括:
第一判斷子模塊505a,用于判斷當前損失函數值是否大于上一次匯總后的損失函數值的k倍;
第一判定子模塊505b,用于當判斷出當前損失函數值大于上一次匯總后的損失函數值的k倍時,判定所述模型異常檢測的結果為第一類異常。
第二判斷子模塊505c,用于判斷當前權重中的元素的最大值和/或最小值的絕對值是否大于預設的第二閾值;
第二判定子模塊505d,用于當判斷出當前權重中的元素的最大值和/或最小值的絕對值大于預設的第二閾值時,判定所述模型異常檢測的結果為第二類異常。
所述異常檢測模塊505還包括:
第三判斷子模塊505e,用于判斷前n次匯總后的損失函數值的平均值是否大于第一次匯總后的損失函數值;
第三判定子模塊505f,用于當判斷出前n次匯總后的損失函數值的平均值大于第一次匯總后的損失函數值時,判定所述模型異常檢測的結果為第一類異常。
優(yōu)選地,當所述模型異常檢測的結果為第二類異常,將當前權重和/或當 前損失函數值修正為第二閾值內的當前權重和/或當前損失函數值的步驟包括:
將所述最大值和/或最小值的絕對值大于預設的第二閾值的元素減去所述第二閾值,獲得每一個元素均位于所述第二閾值內的當前權重。
在本申請第五實施例提出的機器學習系統的訓練系統中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異?;虻诙惍惓?,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
第六實施例
本申請第六實施例提出一種機器學習系統的訓練系統,如圖6所示為本申請第六實施例的機器學習系統的訓練系統的方框圖。該機器學習系統優(yōu)選為分布式機器學習系統,如圖6所示,該訓練系統包括:
訓練數據分配模塊601,用于將所述訓練數據分配給多個工作機;
訓練數據劃分模塊602,用于將每一個工作機分配得到的訓練數據劃分為多個數據片;
獲取模塊603,用于獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值;
匯總模塊604,用于匯總每一個工作機基于每一個數據片計算出的所述本地權重和本地損失函數值,獲得當前權重和當前損失函數值;
異常檢測模塊605,用于利用當前權重和/或當前損失函數值執(zhí)行模型異常檢測;
第一處理模塊606,用于當所述模型異常檢測的結果為第一類異常,將上一次匯總后的權重和上一次匯總后的損失函數值輸入所述機器學習系統進行訓練;
第二處理模塊607,用于當所述模型異常檢測的結果為第二類異常,將當前權重和/或當前損失函數值修正為第一閾值內的當前權重和/或當前損失函數值,并輸入所述機器學習系統進行訓練。
在本實施例中,所述系統還包括:
訓練模塊608,用于當所述模型異常檢測的結果為正常,將當前權重和/或當前損失函數值輸入所述機器學習系統進行訓練。
在本實施例中,所述系統還包括:
結束判定模塊609,用于判斷訓練是否結束;
模型產出模塊610,用于當判定訓練結束時,產出所述模型;
返回執(zhí)行模塊611,用于當判定訓練未結束,重復執(zhí)行獲取每一個工作機基于每一個數據片計算出的本地權重和本地損失函數值的步驟。
在本實施例中,所述結束判定模塊用于當檢測到當前損失函數的值與上一次匯總后損失函數的值小于第三閾值,判定訓練結束。
在本實施例中,所述系統還可以包括:
訓練數據獲取模塊,用于獲取訓練數據。所述訓練數據分配模塊用于按照每一個工作機的標識,將所述訓練數據分配給多個工作機。
優(yōu)選地,所述匯總模塊包括:
權重累加模塊,用于將每一個工作機基于每一個數據片計算出的所述本地權重相加,獲得當前權重;
損失函數值累加模塊,用于將每一個工作機基于每一個數據片計算出的所述本地損失函數值相加,獲得當前本地損失函數。
在本申請第六實施例提出的機器學習系統的訓練系統中,通過使每一個工作機一次只針對一個數據片進行處理、并根據該數據片計算得出的本地權 重和本地損失函數值進行匯總,達到了每一次計算后能夠準確地小幅度更新權重和損失函數值的效果,避免了現有技術的在線學習中容易受到數據中噪聲影響的問題。同時,在獲得當前權重和/或當前損失函數值之后執(zhí)行異常檢測,當檢測出所獲得的當前權重和/或當前損失函數值屬于第一類異?;虻诙惍惓?,可以拋棄本次計算出的當前權重和/或當前損失函數值,而將上一次匯總得到的權重和損失函數值輸入機器學習模型,或者對本次計算出的當前權重和/或當前損失函數值進行修正,將每次計算和匯總獲得的權重和損失函數值的更新限制在有效范圍內,避免了模型訓練的不穩(wěn)定性,增強了系統抗數據噪聲的能力,提升了在線學習的機器學習系統的穩(wěn)定性,確保了機器學習系統的正常產出,提高了上線后的機器學習系統的服務能力。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信號存儲。信號可以是計算機可讀指令、 數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信號。按照本文中的界定,計算機可讀介質不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調制的數據信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理終端設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理終端設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理終端設備上,使得在計算機或其他可編程終端設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以, 所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種機器學習系統的訓練方法和系統,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。