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