Pytorch学习---6深度学习数学基础

监督学习、无监督学习、半监督学习、强化学习是我们日常接触到的常见的四个机器学习方法:

  • - 监督学习:通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出。
  • - 无监督学习:它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。 
  • - 半监督学习 :在训练阶段结合了大量未标记的数据和少量标签数据。与使用所有标签数据的模型相比,使用训练集的训练模型在训练时可以更为准确。
  • - 强化学习:我们设定一个回报函数(reward function),通过这个函数来确认否越来越接近目标,类似我们训练宠物,如果做对了就给他奖励,做错了就给予惩罚,最后来达到我们的训练目的。
     

损失函数(Loss Function)


       损失函数(loss function)是用来估量模型的预测值(我们例子中的output)与真实值(例子中的y_train)的不一致程度,它是一个非负实值函数,损失函数越小,模型的鲁棒性就越好。我们训练模型的过程,就是通过不断的迭代计算,使用梯度下降的优化算法,使得损失函数越来越小。损失函数越小就表示算法达到意义上的最优。这里有一个重点:因为PyTorch是使用mini-batch来进行计算的,所以损失函数的计算出来的结果已经对mini-batch取了平均。

 

Pytorch 常见的损失函数


 

 

方差/偏差

 

  • - 偏差度量了学习算法的期望预测与真实结果的偏离程序,即刻画了学习算法本身的拟合能力
  • - 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即模型的泛化能力
  •  
  • - 高偏差(high bias)的情况,一般称为欠拟合(underfitting),即我们的模型并没有很好的去适配现有的数据,拟合度不够。
  • - 高方差(high variance)的情况一般称作过拟合(overfitting),即模型对于训练数据拟合度太高了,失去了泛化的能力。

如何解决这两种情况呢?

欠拟合:

  • - 增加网络结构,如增加隐藏层数目;
  • - 训练更长时间;
  • - 寻找合适的网络架构,使用更大的NN结构;

过拟合 :

  • - 使用更多的数据;
  • - 正则化( regularization);
  • - 寻找合适的网络结构;

正则化:

        利用正则化来解决High variance 的问题,正则化是在 Cost function 中加入一项正则化项,惩罚模型的复杂度,这里我们简单的介绍一下正则化的概念。

L1正则化和L2正则化

L2正则化具有唯一性 L1正则化没有唯一性

L1正则化易懂

 

L1损失函数基础上加上权重参数的绝对值  L2损失函数基础上加上权重参数的平方和

L1正则化就是在 loss function 后面加上L1范数,这样比较容易求到稀疏解。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章