天天看點

深度學習中的一些基本概念

欠拟合(Underfitting)與過拟合(Overfitting)

欠拟合指預測值f(x)還沒有接近真實值y。解決欠拟合是優先的。

過拟合是指預測值與真實值比對得太好,前面提到過,會有泛化的問題。解決這個問題往往需要更大的精力。

對樣本比對得太好,對資料總體往往不是好事。

參數優化parameter optimization:

調整參數,使預測值越來越準。這個過程氷是參數優化。

每一個權重的集合都表示一個關是“輸出input意味着什麼,它和label是什麼關系”的特定假設。

所有可能的權重集合就表示問題域的假設空間。

通過損失函數和優化算法,我們要幹的事就是搜素整個假設空間,找到最好的假設。

樣本量越大,假設空間就越大,存在最好假設的可能性就越大。

機器學習的工作主要就是确定參數向量中,哪個有用,哪個沒有,有多大的用。

決策邊界:指由線性模型的參數向量建立的超平面。

成本:拟合線與真實點之間的距離,是機器學習的核心。距離的總和要最小,即最小損失。

三維空間中,就是坡峰和坡谷,優化算法就是告訴坡度的。

參數VS超參數:

超參數決定了模型學習速度,參數決定了模型最終是否準确。

調優的參數就是超參數,它決定了控制優化和模型選擇。

收斂Convergence:能找到一個參數向量,使損失最小。

模型三元件:

1. 參數。轉化輸入,以幫助網絡分類。

2. 損失函數:度量每一步分類的準确性。

3. 優化函數:把模型引向最小損失。(更新函數An update function,損失函數的導數)

凸優化:

MLE:maximum likelihood estimation

最大可能性和最小成本是同一問題的兩種描述方法。

凸面:把一塊方布的四個角捏在雙手裡,向中間靠一點,中間就會向下墜。再一個例子就是碗。這些都是是凸面。

凸面可以讓算法得知,下一步朝那個方向走才能得到更好的參數向量。

坡度下降gradient descent:一個地形圖,坡峰表示誤差大,坡谷表示誤差小。初值的選擇需要基于領域知識或随機值。

目标:讓其盡快下坡。

坡度下降能感覺到每個權重的實際坡度,或方向,即權重變化引起的損失的變化,即權重的一階導,導數向了優化算法下一步的方向。

反複執行如下操作:

損失函數計算損失--》損失函數一階導明确方向--》優化,損失函數計算損失--》損失函數一階導明确方向。。。

當一階導為0時,得到不動點,即可能是極值點。

f(x,y)對x的偏導,它描述了在x方向上的最大變化速度。二進制微分中,就是正切。

線性模型就是凸優化,它一般隻有一個最優點。

坡度下降的缺點:

1.其它的非線性模型可能有好幾個坡谷,找到的可能不是全局最優。隻有一個全局最優,其它都是局部最優。後面講如何找到全局最優。

2.特征沒有标準化,導緻找到最陡坡度的時間不一樣。

随機坡度下降Stochastic Gradient Descent SGD:

差異:坡度下降是計算所有樣本的損失總和,再計算坡度,更新參數向量。

      随機坡度下降是每做一個樣本,做一次損失計算,它是全批量的一個估計,更快,并發性更好。

小批量與SGD:

是SGD的一個變體,性能更好,收斂更平滑,能更好的利用硬體如GPU。

準牛頓優化法:在搜尋方向上與其它方法不同。

雅可比Jacobian矩陣:

Hessian矩陣:

Hessian計算困難,使用準牛頓算法做近似估計,如L-BFGS。

generative model:學習聯合分布p(x, y),生成一個機率圖模型,表達x,y的關系。

discriminative model:學習條件分布,用于分類p(y|x),成生一個如果x,則y的機率圖。

邏輯回歸Logistic Regression:

線性分類中的著名模型,适用于0-1分類或多标簽分類。

因變量是類别,自變量是特征。

形式也是:Ax = b

資料假設:f(x) = 1/(1 + e−θx)  Logistic Function  x:正無窮到負無窮, y: 0-1,正好是概論的範圍,也用σ表示。

當連導log-sigmoid函數的範圍在0-1時,就是這個樣子。

成本函數:最大可能性估計

優化函數:成本函數的導數

logit函數是Logistic函數的逆函數。

混淆矩陣,又名混淆表。

FP: False Positive實際值0,預測值1稱為1類錯誤。  01=1

FN: False Negative,實際值1,預測值0稱為2類錯誤。  10=2

TP:True Positive,實際值1,預測值1,11=3

TN: True Negative, 實際值0,預測值0,

敏感性Sensitivity與特異性specificity:

0-1分類的兩個方面。

Sensitivity,又名Recall,或true positive rate:

Sensitivity = TP / (TP + FN)  實際有病,診斷有病的正确率。因為一部分實際有病,但被診斷為沒病。

Specificity = TN / (TN + FP)  實際沒病,診斷沒病的正确率。因為一部分實際沒病,但被診斷為有病。

對于大病,要求Sensitivity高。如果兩個名額都是百分百,完美。

Accuracy = (TP + TN) / (TP + FP + FN + TN)

Precision,又名positive prediction value:

Precision = TP / (TP + FP)

F1 = 2TP / (2TP + FP + FN)

Score = MIN(Precision, Recall)

繼續閱讀