深度學習的一些概念分享
深度學習有哪些神經網路
一般來說,訓練深度學習網路的方式主要有四種:
監督學習(supervised learning)
無監督學習 (unsupervised learning)
半監督學習(semi-supervised learning)
強化學習(reinforcement learning)
監督學習
是指用已經標記好的數據,做訓練模型來預測新數據的類別。
無監督學習
是指不需要提前對數據進行標記,直接對它們進行聚類。
半監督學習
是指同時用了有監督學習的方法和無監督學習的方法。準確來說是同時用來標記好的數據和未標記的數據。
強化學習
強化學習也是使用未標記的數據,但是可以通過某種方法知道你是離正確答案越來越近還是越來越遠。
以上只是給出各個神經網路學習方法的基本概念,基本上初次接觸深度學習基本不知道它講的是啥,它們的定義都是從數據層面來看的,我們需要先理解什麼叫做標記好的數據和未標記好的數據,脫離數據談深度學習基本都是瞎扯,我們訓練模型都是為了讓計算機學習到一些東西,而數據就可以說是我們的一些先驗知識。
什麼是標記好的數據?
舉個例子吧,比如我們有很多貓的圖片和狗的圖片,我們分別給這些圖片打上標籤(label),用來告訴計算機哪些是貓的圖片,哪些是狗的圖片,類似這些數據就是標記好的數據。而未標記好的數據則是沒有被打上標籤的。
圖片引用自:莫煩PYTHON
監督學習有哪些數據集?
目前筆者接觸深度學習並不多,都還處於監督學習的階段當中,所以這裡說的數據集也是基於監督學習來說的。
我們在進行有監督的神經網路學習當中,經常會談到以下幾個數據集:
訓練集
字面意思,就是用來訓練模型的數據集。
驗證集
作用是當通過訓練集訓練出多個模型之後,使用各個模型對驗證集進行預測,並記錄模型的準確率。
測試集
測試集是從原始數據劃分出來用來預測訓練好的模型,通常用來衡量模型的性能和分類能力。必須要注意,測試集是不允許出現在訓練集當中的,不然就沒有意義了。
問題:三個數據集該怎麼劃分?
是的,這也是筆者在拿到原始數據在進行數據劃分產生的疑惑,關於這三塊數據集有什麼經驗值呢,其實是有的:
小數據集
大數據集
比如100萬數據,我們可以按照以下比例劃分:
具體可以參考吳恩達的深度學習課程。
分類模型有哪些評測指標?
當數據集有了,模型也訓練出來了,那我們怎麼去評測一個模型的性能和效果呢,這裡以分類模型來談下如何衡量模型的好壞,不同的模型的評價指標不一樣,後續筆者學到的話也會分享給大家。
分類模型一般會有哪些指標呢?
定義樣本的計算變數:
TP(True Positive):正類被預測為正類樣本數
FP(False Positive):正類被預測為負類樣本數
TN(True Negative):負類被預測為負類樣本數
FN(False Negative):負類被預測為正類樣本數
你可能會比較懵,這裡正樣本指的是正類,比如我要識別一張貓的圖片,貓的圖片就是我們的正樣本,而其他類型的圖片就是我們的負樣本,比如狗的圖片就是負類我們不希望它被識別為貓的。
正確率
對於給定的測試集,分類器正確分類的樣本數與總樣本數之比。
計算公式:
精確率
正類被預測為正類樣本數占正類被預測為正類樣本數與負類預測為正類數之和的比例。
計算公式:
召回率(recall)
正類被預測為正類樣本數占正類被預測為正類樣本與正類被預測為負類之和的比例
計算公式:
F1-measure
精確率和召回率的調和均值。
計算公式:
光看計算公式基本也懵了吧,筆者有時候在考慮這一塊的指標也會搞混,引用一張圖來看幾個指標來看看會不會更好理解:
A:(搜到的也想要的)
B:檢索到的,但是不相關的 (搜到的但沒用的)
C:未檢索到的,但卻是相關的 (沒搜到,然而實際上想要的)
D:未檢索到的,也不相關的(沒搜到也沒用的)
圖引用自:https://www.cnblogs.com/sddai/p/5696870.html
我們在實際考慮模型的效果的時候,不一定所有指標都看,得結合我們的應用場景去看我們更關注哪些指標,比如說我們做敏感文本審核,我們可能更關注精確率,我們可能允許一些誤傷,但如果我們要做敏感文本清洗,我們可能更關注召回率,因為我們需要保證正樣本絕大部分被識別出來,漏掉的部分我們可以採取人工的手段去解決。
總結
本篇文章簡單介紹了目前深度學習訓練神經網路的一些方法,介紹了關於監督學習的數據集劃分還介紹了我們怎麼去評測一個分類模型的好壞,它們的指標有哪些,這是筆者覺得像我們這種深度學習入門者可能要關注的一些點,包括數據和評測方式,希望對你們有幫助。
TAG:小巫技術博客 |