文章目录
一、Machine Learning Introduce
1.1 Loss Function
以下式子中 x i x_i xi 表示第 i i i 个训练资料通过神经网络后的输出(估计值), y i y_i yi 表示第 i i i 个训练资料的标签(真实值)。
1.1.1 基于距离度量的损失函数
(1)均方误差损失函数 MSE
M E S L o s s = 1 n ∑ i = 1 n ( x i − y i ) 2 , n = B a t c h S i z e \large MESLoss = \frac {1} {n} \sum_{i=1}^{n}{(x_i-y_i)^2}\ ,\ n=BatchSize MESLoss=n1i=1∑n(xi−yi)2 , n=BatchSize
(2)L1 损失函数( MAE )
L 1 L o s s = 1 n ∑ i = 1 n ∣ x i − y i ∣ \large L1Loss=\frac {1} {n} \sum_{i=1}^{n}{|x_i-y_i|} L1Loss=n1i=1∑n∣xi−yi∣
1.1.2 基于概率分布的损失函数
(1)交叉熵 CrossEntropyLoss
交叉熵可依次利用 softmax() 、log() 和 NLLLoss() 得到。在下式中设 x i x_i xi 是第 i i i 图片经过 C N N CNN CNN 得到的 n n n 维向量, x i j x_{ij} xij 表示没有进行归一化的概率; C l a s s i Class_i Classi 表示第 i i i 张图片属于的真实类别(如:0 表示猫、1 表示狗等)。
对 x i 向量进行归一化: x i , j = e x i , j s u m , s u m = ∑ j = 1 n e x i , j 对归一化后的 x i 向量取对数: x i , j = l o g ( x i , j ) 最后对 x i 向量用于 N L L o s s : r e s u l t = − x i [ C l a s s i ] C r o s s E n t r o p y L o s s = − ∑ i = 1 b a c t c h s i z e l o g ( e x i , c l a s s i ∑ j = 1 n e x i , j ) \begin{align} &\Large 对\ x_i \ 向量进行归一化:x_{i,j}=\frac {e^{x_{i,j}}} {sum}\ , \ sum=\sum_{j=1}^{n}e^{x_{i,j}} \\ &\Large 对归一化后的\ x_i \ 向量取对数: x_{i,j}=log(x_{i,j}) \\ \\ &\Large 最后对x_i向量用于NLLoss:result=-x_i[Class_i] \\ \\ &\Large CrossEntropyLoss=-\sum_{i=1}^{bactchsize}log(\frac {e^{x_{i,class_i}}} {\sum_{j=1}^{n} e^{x_{i,j}}}) \end{align} 对 xi 向量进行归一化:xi,j