Tensorflow、sklearn孰好孰壞?tensorflow損失函數(shù)是什么?
tensorflow是目前最熱門機器學(xué)習(xí)框架之一,同其它框架相比,tensorflow具備自身優(yōu)勢。那么,tensorflow和sklearn相比,具體優(yōu)劣勢有哪些呢?這將是本文介紹的內(nèi)容之一。此外,本文將對tensorflow的損失函數(shù)加以介紹,以增進大家對tensorflow的了解。如果你對tensorflow具有一定興趣,不妨繼續(xù)往下閱讀哦。
一、sklearn、 tensorflow優(yōu)劣勢
目前,在社區(qū)中,tensorflow會比較火,很多同學(xué)會問,為什么不用tensorflow,這兩個有什么區(qū)別,我想,主要從以下這方面來做對比
1、sklearn主要定位是一種通用的機器學(xué)習(xí)的學(xué)習(xí)庫,tf主要定位還是深度學(xué)習(xí)。
2、特征工程上,sklearn提供了例如維度壓縮、特征選擇等,但是這樣子并不代表這tf就比sklearn弱。在傳統(tǒng)的機器學(xué)習(xí)中,sklearn需要使用者自行對數(shù)據(jù)進行數(shù)據(jù)處理,例如進行特征選擇,維度壓縮,轉(zhuǎn)換格式等,但是tf可以在開始進行數(shù)據(jù)訓(xùn)練的過程中,自行從數(shù)據(jù)中提取有效的特征,從而減少人為的干預(yù)。
3、易用性及封裝度上,sklearn更高,這點上,我想很多用過的人都清楚,不做累贅描述。
4、面對項目的不同,sklearn更適合中小型,特別是數(shù)據(jù)量不大的項目,此時更需要手動者對數(shù)據(jù)進行處理,并且選擇合適模型的項目,這些計算是可以在CPU直接計算的,沒有什么硬件要求。相對的,tf的應(yīng)用領(lǐng)域上,往往更加注重數(shù)據(jù)量較大,一般情況下需要GPU進行加速運算。目前很多公司并沒有很大量的數(shù)據(jù),在選擇上,可以作為參考。
二、TensorFlow損失函數(shù)
聲明一個損失函數(shù)需要將系數(shù)定義為變量,將數(shù)據(jù)集定義為占位符??梢杂幸粋€常學(xué)習(xí)率或變化的學(xué)習(xí)率和正則化常數(shù)。
在下面的代碼中,設(shè) m 是樣本數(shù)量,n 是特征數(shù)量,P 是類別數(shù)量。這里應(yīng)該在代碼之前定義這些全局參數(shù):
在標(biāo)準(zhǔn)線性回歸的情況下,只有一個輸入變量和一個輸出變量:
在多元線性回歸的情況下,輸入變量不止一個,而輸出變量仍為一個?,F(xiàn)在可以定義占位符X的大小為 [m,n],其中 m 是樣本數(shù)量,n 是特征數(shù)量,代碼如下:
在邏輯回歸的情況下,損失函數(shù)定義為交叉熵。輸出 Y 的維數(shù)等于訓(xùn)練數(shù)據(jù)集中類別的數(shù)量,其中 P 為類別數(shù)量:
如果想把 L1 正則化加到損失上,那么代碼如下:
對于 L2 正則化,代碼如下:
由此,你應(yīng)該學(xué)會了如何實現(xiàn)不同類型的損失函數(shù)。那么根據(jù)手頭的回歸任務(wù),你可以選擇相應(yīng)的損失函數(shù)或設(shè)計自己的損失函數(shù)。在損失項中也可以結(jié)合 L1 和 L2 正則化。
以上便是此次小編帶來的“tensorflow”相關(guān)內(nèi)容,通過本文,希望大家對tensorflow的損失函數(shù)具備一個清晰的認識。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!