[更新中...]
---------------------------------Reference---------------------------------
參考:
https://zhuanlan.zhihu.com/p/27186569
https://dvl.in.tum.de/teaching/i2dl-ss19/
---------------------------------目錄---------------------------------
(1) Neuron/神經元
(2) Machine Learning
(3) Basic classifier
(4) Cross Validation 6/2/2
(5) Linear Decision Boundaries
(6) Linear Regression
(7) Weights/權重
(8) Bias/偏移
(9) Affine function
(10) Activation Function
(10.a) Sigmoid函數
(10.b) 線性整流函數(ReLU-Rectified Linear Units)
(10.c) softmax函數
(11) Loss function
(11.a) [Regression] MSE
(11.b) [Regression] MAE
(11.c) Cross-entropy loss
(11.d) [Classification] MLE (Maximum Likelihood Estimation)
(12) 成本函數(cost function)
(13) Concept:Gradient VS Derivative
(13.a)Gradient: 導數
(13.b)Derivative/Nabla Operator(?): 偏導
(14) Optimization
(15) NN神經網絡
(16) Input/Output/Hidden Layer 輸入層/輸出層/隱藏層
(17) 多層感知器(MLP-Multi Layer Perceptron)
(18) 正向傳播(forward propagation)
(19) 學習速率(learning rate)
(20) 反向傳播(back propagation)
(21) 分批(Batches)
(22) 周期(epochs)
(23) Dropout方法
(24) 分批標準化(Batch Normalization)
(25) Regularization
(26) Precision and Recall
(27) Parametric Statistic
---------------------------------Basics---------------------------------
(1) Neuron/神經元
正如我們大腦中的基本組成單元,神經元是組成神經網絡的基礎結構。設想一下當接觸到新的信息時,我們的身體會對其進行處理,最后產生一些特定的反應。
相似地,在神經網絡中,在收到輸入的信號之后,神經元通過處理,然后把結果輸出給其它的神經元或者直接作為最終的輸出。
(2) Machine Learning:
- 3 types: Supervised/Unsupervised/Reinforcement Learning
- Reinforcement Learning:
- Input: State, Action, Rewards(+/-)
- Output: Policy
-
SARP consists RL
policy P=-THIRN-ATINIOMNMWD.NMIMNMM 00.MA.png
(3) Basic classifier
- Nearest Neighbour
- K-Nearest Neighbour 每個樣本都可以用它最接近的k個鄰居來代表,讓k個代表進行投票,然后得票最多的就是該點的label
Concept: Different Distances:
- L1 Distance (Manhattan Distance): Red, Blue, Yellow
In a plane with p1 at (x1, y1) and p2 at (x2, y2),
it is |x1 - x2| + |y1 - y2|. Lm distance.
- L2 Distance (Euclidean Distance, Square distance): Green
(4) Cross Validation 6/2/2
A way to make use of data:train/valid/test
(5) Linear Decision Boundaries
決策邊界就是能夠把樣本正確分類的一條邊界,主要有線性決策邊界(linear decision boundaries)和非線性決策邊界(non-linear decision boundaries)。
Question what’s the relationship between LDB and SVM?
Answer SVM is an algorithm/method to find the best LDB (that’s why SVM is also called Large Margin Classifier)
SVM
支持向量機(Support Vector Machine, SVM)是一類按監督學習(supervised learning)方式對數據進行二元分類的廣義線性分類器(generalized linear classifier),其[決策邊界](https://baike.baidu.com/item/%E5%86%B3%E7%AD%96%E8%BE%B9%E7
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.%95%8C/22778546)是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane) [1-3] 。
SVM是一種優化的分類算法,其動機是尋找一個最佳的決策邊界,使得從決策邊界與各組數據之間存在margin,并且需要使各側的margin最大化。比較容易理解的是,從決策邊界到各個training example的距離越大,在分類操作的差錯率就會越小。因此,SVM也叫作Large Margin Classifier。
最簡單的情況是,在二維平面中的,線性可分情況,即我們的training set可以用一條直線來分割稱為兩個子集,如下圖所示。而在圖中我們可以看到,H2和H3都可以正確的將training set進行分類,但細細想來,使用H2進行分類的話,我們對于靠近藍線的幾個訓練樣例其實是不敢說100%的,但對于離藍線最遠的小球,我們卻很有把握。這也是H3這條SVM紅線出現的原因:盡量讓兩側的訓練樣例遠離決策邊界,從而讓我們的分類系統有把握對每個球Say Absolutely。
---------------------------------以下開始講 Linear Regression---------------------------------
(6) Linear Regression
- supervised
-
expression (inklusive bias mit Index Xi1 = 1)
input dimension.jpeg - How to obtain Model? 詳見下文
(1) Loss function: measure, how good is the model
(2) Optimization function: try to change the model, so that we can improve the Loss function
(7) Weights/權重
當輸入信號進入到神經元后,會被乘以相應的權重因子。舉例來說,假設一個神經元有兩個輸入信號,那么每個輸入將會存在著一個與之相應的權重因子。在初始化網絡的時候,這些權重會被隨機設置,然后在訓練模型的過程中再不斷地發生更改。
在經過訓練后的神經網絡中,一個輸入具有的權重因子越高,往往意味著它的重要性更高,對輸出的影響越大。另一方面,當權重因子為0時意味著這個輸入是無價值的。
如下圖所示,假設輸入為a,相應的權重為W1。那么通過賦權節點后相應的輸入應變為a*W1。
(8) Bias/偏移
除了權重之外,輸入還需要經過另外一種線性處理,叫做偏置。通過把偏置b與加權后的輸入信號a*W1直接相加,以此作為激活函數的輸入信號。
(9) Affine function
~ is a function between different affine space/仿射空間.
Goal: after the transformation the data still has it's original characters!
Content: is a function composed of a linear function + a constant.
Graph: a straight line.
General equation: y = Ax + c.
對數據使用affine function后都滿足以下條件:
- ? preserves point, straight lines, planes
- ? ratios of distance between 2 points
- ? angles, distances between 2 points
下文的u=∑w*x+b就是affine function
(10) Activation Function
~ of a node defines the output of that node, given an/more input.
之前線性處理之后的輸入信號通過激活函數進行非線性變換,從而得到輸出信號。即最后輸出的信號具有f(a*W1+b)的形式,其中f()為激活函數。
在下面的示意圖中, 設X1…Xn等n個輸入分別對應著權重因子Wk1…Wkn以及相應的偏置b1…bn。我們把輸入Xi乘以對應的權重因子Wki再加上bi的結果稱為u。
u=∑w*x+b 這個激活函數f是作用在u上的,也就是說這個神經元最終的輸出結果為yk = f(u)
接下來我們講一講常用的一些激活函數:Sigmoid函數, 線性整流函數(ReLU) 和 softmax函數
(10.a) Sigmoid函數
作為最常用的激活函數之一,它的定義如下:
來源:維基百科
sigmoid函數為值域在0到1之間的光滑函數,當需要觀察輸入信號數值上微小的變化時,與階梯函數相比,平滑函數(比如Sigmoid函數)的表現更好。
(10.b) 線性整流函數(ReLU-Rectified Linear Units)
近來的神經網絡傾向于使用ReLU替代掉sigmoid函數作為隱層的激活函數,它的定義如下:f(x) = max(x,0).
The rectified linear activation function is a piecewise linear function that will output the input directly if is positive, otherwise, it will output zero.
來源:cs231n
使用ReLU函數的好處是,對于所有大于0的輸入,導數是恒定的,這能夠加快訓練網絡的速度。
(10.c) softmax函數
softmax激活函數通常應用在分類問題的輸出層上。
It′s a Multinomial Logistic Regression
它與Sigmoid函數相似,唯一的不同是softmax函數輸出結果是歸一化的。sigmoid函數能夠在雙輸出的時候奏效,但當面對多種類分類問題的時候,softmax函數可以方便地直接將各個分類出現的概率算出。
sigmoid()僅僅是二元,softmax可以多元
例子:
輸入向量 [1,2,3,4,1,2,3] 對應的Softmax函數的值為 [0.024,0.064,0.175,0.475,0.024,0.064,0.175] 。輸出向量中擁有最大權重的項對應著輸入向量中的最大值“4”。這也顯示了這個函數通常的意義:對向量進行歸一化,凸顯其中最大的值并抑制遠低于最大值的其他分量。
Normalization!
(11) Loss function
We use the following Loss Function to evaluate the loss, measures how good my model is.
Loss functions can be broadly categorized into 2 types: Classification and Regression Loss. The category exists only cause in different cases the Loss functions acting differently. So you can understand it as: for Classification, Log Loss performs better. Today we will focus on:
- a) MSE
- b) MAE
- c) Cross Entropy / Log loss
- d) MLE
(11.a) [Regression] MSE
or L2 loss, or mean squared deviation (MSD), or Linear Least Square.
Attention: From Normal-Expression to Matrix-notation it emit the (1/n), we are just looking for the minimal value so it doesn't matter!
兩者唯一的區別在于: MSE有Square, 而MAE只是單純的 差的絕對值
(11.b) [Regression] MAE
or L1 loss
(11.c) cross-entropy loss
or log loss, measures the performance of a classification model whose output is a probability value between 0 and 1.
You can see from the graph, that cross-entropy penalizes both types of errors, but especially those predictions that are confident and wrong!(when predicted probability drops around 0.15)
(11.d) [Classification] MLE (Maximum Likelihood Estimation)
是用來估計一個概率模型的 參數 的一種方法。
Reference:https://www.youtube.com/watch?v=XepXtl9YKwc
--> The goal is to find the optimal way to fit the distribution of data.
For example, if it's normal distribution, then the parameters mean, deviation can be modify in order to fit the data better!
猜測分布函數的參數,以盡量多的涵蓋observation中的數據點(舉例:如果滿足normal distribution,那么這里的參數就指mean和standard deviation)。
為了找到使p最好的參數Theta.
- 該公式的意思是:找到p最大的情況下,theta的值
- 利用log運算將 積 轉換成 和
假設符合高斯分布(即正態分布),套用高斯公式進去:
例子:
Step 1: Maximum Likelihood for the Mean
The name of "likelihood" basically means, how like you are going to find data-points according to the estimated distribution >> And it stops when it finally find the highest likelihood >> where we should put our mean on it:
Step 2: Maximum Likelihood for the Standard Deviation
(12) 成本函數(cost function)
Cost function即loss的綜合,loss由loss function求的
在神經網絡的建造過程中,建造者們希望輸出的結果能夠盡可能地接近實際值,因此使用成本函數來描述網絡的這種準確性。
神經網絡的目標是增加預測的準確性從而減少誤差,即最小化成本函數。通常情況下,最優化的輸出結果往往對應著成本函數的最小值。
如果采用均方誤差作為成本誤差,即表示為C= 1/m ∑(y – a)2,其中m是訓練過程中輸入數據的個數,a是相應的預測值,y代表實際值。
模型學習的過程就是圍繞著最小化成本而進行的。
Discussion: Loss function/Cost function
(13) Concept:Gradient VS Derivative
Useful concepts: Component & Variable
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.
Component:該matrix有幾行
Variable:x1,x2,,,共有幾個變量
(13.a)Gradient: 導數
舉例:
** 梯度下降(gradient descent)**
梯度下降是一種最小化成本函數的優化算法。
在梯度下降中,從起始點x開始,一次移動一點,比如說移動delta h,然后將位置信息更換為x-delta h,如此重復下去,直到達到局部的極小值,此時認為極小值就是成本最小的地方。
數學上說,沿著函數的負梯度運動就能得到函數的局域最小值。
(13.b)Derivative/Nabla Operator(?): 偏導
In order to find the minimal value of the Loss function, we need to use derivative.
Here are the common formulas:
More formulas for matrix-contains-linear-tranformation:
(14) Optimization
Now through the review from loss function, I want to improve the Model, this process we call it Optimization
And the gradient is our tool to optimze the model
---------------------------------以下開始講 Neural Network---------------------------------
(15) NN神經網絡
神經網絡是構成深度學習系統的框架。神經網絡的任務是找到一個未知函數的近似表達方式,它是由彼此相連的神經元所組成,這些神經元會在訓練網絡的過程中根據誤差來更改它們的權重和偏置。激活函數將非線性變化用線性變化的組合來表示,最終產生輸出。
關于神經網絡最好的定義是由Matthew Mayo給出的:
神經網絡是由大量彼此相連、概念化的人造神經元組成的,這些神經元彼此之間傳遞著數據,相應的權重也會隨著神經網絡的經歷而進行調整。神經元們有著激活的閾值,當它們遇到相應的數據以及權重時會被激活,這些被激活的神經元組合起來導致了“學習”行為的產生。
(16) Input/Output/Hidden Layer 輸入層/輸出層/隱藏層
從名字中就能看出,輸入層代表接受輸入數據的一層,基本上是網絡的第一層;輸出層是產生輸出的一層,或者是網絡的最后一層,而網絡中間的處理層叫做隱藏層。
這些隱藏層對輸入的數據進行特定的處理,再將其輸入到下一層。輸入層和輸出層是可見的,而中間層通常是被隱藏起來的。
(17) 多層感知器(MLP-Multi Layer Perceptron)
一個單一的神經元不能夠完成復雜的任務,因此需要將它們堆疊起來工作進而產生有用的輸出。
最簡單的神經網絡包括一個輸入層、一個隱藏層和一個輸出層。每一層都由多個神經元組成,每一層的每個神經元都與下一層中的所有神經元相連。這樣的網絡可以被稱為是全連接網絡。
(18) 正向傳播(forward propagation)
正向傳播是指信號從輸入層經過隱藏層到輸出層的傳輸過程。在正向傳播中,信號是沿著單一方向進行傳播,即輸入層給隱藏層提供輸入,進而最終產生相應的輸出。
(19) 學習速率(learning rate)
學習速率定義為在每次迭代過程中對成本函數最小化 的次數。簡單來說,學習速率就是指朝著成本函數最小值的下降速率。選擇學習速率需要很謹慎,過大會導致可能越過最優解,過小會導致收斂花費太多的時間。
(20) 反向傳播(back propagation)
在定義一個神經網絡的過程中, 每個節點會被隨機地分配權重和偏置。一次迭代后,我們可以根據產生的結果計算出整個網絡的偏差,然后用偏差結合成本函數的梯度,對權重因子進行相應的調整,使得下次迭代的過程中偏差變小。這樣一個結合成本函數的梯度來調整權重因子的過程就叫做反向傳播。
在反向傳播中,信號的傳遞方向是朝后的,誤差連同成本函數的梯度從輸出層沿著隱藏層傳播,同時伴隨著對權重因子的調整。
(21) 分批(Batches)
比如一共有10000條數據,分成10個batch,每個batch就是100條數據。
當在訓練一個神經網絡的時候,相對于一次性將所有的數據全輸入進去,有一個更好的方法:先將數據隨機地分為幾個大小一致的數據塊,再分批次輸入。跟一次性訓練出來的模型相比,分批訓練能夠使模型的適用性更好。
(22) 周期(epochs)
比如一共有10000條數據,分成10個batch,每個batch就是100條數據。正向,反向跑完所有10000條數據,即一個epoch。
一個周期表示對所有的數據批次都進行了一次迭代,包括一次正向傳播和一次反向傳播,所以一個周期/紀元就意味著對所有的輸入數據分別進行一次正向傳播和反向傳播。
訓練網絡周期的次數是可以選擇的,往往周期數越高,模型的準確性就越高,但是,耗時往往就越長。同樣你還需要考慮如果周期/紀元的次數過高,那么可能會出現過擬合的情況。
(23) Dropout方法
Dropout是一個可以阻止網絡過擬合(overfitting)的規則化方法(regularization)。就像它的名字那樣,在訓練過程中隱藏的某些特定神經元會被忽略掉(drop)。這意味著網絡的訓練是在幾個不同的結構上完成的。
這種dropout的方式就像是一場合奏,多個不同結構網絡的輸出組合產生最終的輸出結果。
來源:Hinton論文《Improving neural networks by preventing co-adaptation of feature detectors》,地址:https://arxiv.org/pdf/1207.0580.pdf
(24) 分批標準化(Batch Normalization)
分批標準化就像是人們在河流中用以監測水位的監察站一樣。這是為了保證下一層網絡得到的數據擁有合適的分布。在訓練神經網絡的過程中,每一次梯度下降后權重因子都會得到改變,從而會改變相應的數據結構。
但是下一層網絡希望能夠得到與之前分布相似的數據,因此在每一次數據傳遞前都需要對數據進行一次正則化處理。
(25) Regularization
Goal: Penalize the complexity of the model, avoid explicitly fitting the training-data.
Different regularization methods:
They are different ways to define the "complexity" of a model
- L2
- L1
- Elastic net = L1+L2
- Max norm regularizationElastic net = L1+L2
Why L1 is sparse in comparison to L2?
L1 vs L2
- Dropout
- Fancier: Batch normalization
這里的L1和L2和Distance中的概念可以聯系起來
(26) Precision and Recall
(27) Parametric Statistic
參數統計是統計學的一個分支,它假設樣本數據來自總體,而總體可以通過具有固定參數集的概率分布進行充分建模。 [1]相反,非參數模型的確切區別在于其參數集(或機器學習中的特征集 )不是固定的,如果收集到新的相關信息,則該參數集可能會增加甚至減少。 [2]
Example:
正態分布族都具有相同的一般形態,并可以通過均值和標準差進行參數化 。這意味著,如果均值和標準差已知,并且分布是正態的,則任何將來觀察到的給定范圍內的概率都是已知的。
假設有一個存在99個測試分數的樣本,平均值為100,標準差為1。如果假設所有99個測試分數都是從正態分布中隨機觀察到的,那么我們預測第100個測試分數有1%的概率將高于102.33(即平均值加2.33標準偏差)。給定99個來自相同正態分布的獨立觀測值,可使用參數統計方法計算上述標準偏差值。
對同一事物的非參數估計是前99個分數中的最大值。不需要假設考試分數的分布情況就可以推斷出,在我們進行考試之前,最高分數會出現在前100個分數中。因此,第100個分數有1%的可能性高于之前的99個分數。