大概内容与之前的类似,步骤仍是三步:详见我的另一篇博客
深度学习
- 定义function或neural network
- 定义loss函数,一般采取值越低越好,有MAE、MSE、Cross Entry等
- 定义optimization,选择最优的参数
正则化是解决过拟合的一种方式重新定义loss函数,loss函数既包括原来的损失,又包括weight参数的平方和(不加bias的原因是:function曲线的平滑与否与bias无关)
Lossnew=Lossold+λ∑i=1n(wi)2,λ是超参数Loss_{new}=Loss_{old}+\lambda \sum _{i=1} ^n (w_i)^2,\lambda 是超参数 Lossnew=Lossold+λi=1∑n(wi)2,λ是超参数
我们一般期待比较平滑的最终的神经网络function,目的是为了减少输入噪声的影响。而比较平衡的function就要求它的输出对输入不敏感,也就要求输入的系数要比较小。
分类网课视频
https://zhuanlan.zhihu.com/p/127993180
回归问题的求最佳参数过程中,会利用gradient
descent根据loss值对参数进行更新,从而选择一个loss最小的参数对应的函数。而这个函数可能并不适用于分类问题(下图以二分类为例)的函数解。
在做回归Regression时,output为真实有意义的数字,而在做分类classification时,output为离散的数字discret ,并没有实际意义。
抽盒时,设选中Box 1的概率为2/3,选中Box 2的概率是1/3。而Box 2中选中蓝球的概率是4/5,Box
2中选中蓝球的概率是2/5,故根据 贝叶斯公式 选中蓝球而它是来自Box 1的概率是P(Box1∣Blue)=P(Box1)×P(Blue∣Box1)P(Box1)×P(Blue∣Box1)+P(Box2)×P(Blue∣Box2)P(Box_1|Blue)=\frac {P(Box_1) \times P(Blue|Box_1)} {P(Box_1) \times P(Blue|Box_1)+P(Box_2) \times P(Blue|Box_2)} P(Box1∣Blue)=P(Box1)×P(Blue∣Box1)+P(Box2)×P(Blue∣Box2)P(Box1)×P(Blue∣Box1)
而将其演变为分类问题。则选中一个物体它是来自Class 1的概率是
P(C1∣o)=P(C1)×P(o∣C1)∑i=1nP(Ci)×P(o∣Ci),P(Ci)=numCinumallP(C_1|o)=\frac {P(C_1) \times P(o|C_1)} {\sum _{i=1} ^n P(C_i) \times P(o|C_i)},P(C_i)=\frac {num_{C_i}} {num_{all}} P(C1∣o)=∑i=1nP(Ci)×P(o∣Ci)P(C1)×P(o∣C1),P(Ci)=numallnumCi
式中的P(Ci)很好求,根据样本总数以及该类别的总数目即可算出,难点是P(o|Ci)的计算
计算P(o|Ci)我们采用正态分布(Gaussian
Distribution),因为可以把Ci想象成从一个正态分布中选出的若干个对象,这些对象即组成了样本中的Ci。而仍有一些其他的对象(也是该分布中的),但是并不在样本中的Ci。我们构造的分类器即可以通过输入这些对象,得到它所属的类别(分类)
也就是说一个分布产生一个类别。我们要做的即是根据所给训练集的样本分类推导出每个类别对应的分布函数。从而即可根据这些分布函数判断出是或不是这个类别(函数输出值>0.5则是该类别)。
fμ,Σ(x)=1(2π)D21∣Σ∣12exp(−12(x−μ)TΣ−1(x−μ))f_{\mu,\Sigma}(x)=\frac 1 {(2\pi)^\frac D 2} \frac 1 {|\Sigma|^\frac 1 2} exp(- \frac 1 2(x-\mu)^T \Sigma ^{-1} (x-\mu)) fμ,Σ(x)=(2π)2D1∣Σ∣211exp(−21(x−μ)TΣ−1(x−μ))
其中μ是这一类别的对象特征值的均值
Σ是这一类别的对象特征值的协方差矩阵
至于求μ和Σ,我们采用极大似然估计法,有两种计算方法:
- 分别求μ和Σ对f的导函数,当其导函数为0时,则可求出Σ和μ值
- 利用数学公式
μ=1n∑i=1nxi,Σ=1n∑i=1n(xi−μ)(xi−μ)T\mu=\frac 1 n\sum _{i=1}^n x^i,\Sigma=\frac 1 n \sum _{i=1} ^n (x^i-\mu)(x^i-\mu)^T μ=n1i=1∑nxi,Σ=n1i=1∑n(xi−μ)(xi−μ)T
但是如果按照上面的方案,这样每一个类别,它都会有自己的Σ,而Σ的参数数量是输入特征量的平方,所以既会导致输入参数过多,也会导致准确度降低。因此我们通常采用所有的类别有自己的μ,但是共用一个Σ
所有类别的正态分布函数均用同一个协方差会使边界boundary为直线liner model, 下面介绍这个Σ的求法:
Σall=∑i=1nnumCinumallΣi\Sigma_{all}=\sum _{i=1} ^n \frac {num_{C_i}}{num_{all}} \Sigma_i Σall=i=1∑nnumallnumCiΣi
定义模型
P(C1∣o)=P(C1)×P(o∣C1)∑i=1nP(Ci)×P(o∣Ci),P(Ci)=numCinumallP(C_1|o)=\frac {P(C_1) \times P(o|C_1)} {\sum _{i=1} ^n P(C_i) \times P(o|C_i)},P(C_i)=\frac {num_{C_i}} {num_{all}} P(C1∣o)=∑i=1nP(Ci)×P(o∣Ci)P(C1)×P(o∣C1),P(Ci)=numallnumCi模型的简化
这也可以解释,为什么共用Σ,边界是直线
所有类别的正态分布函数均用同一个协方差会使边界boundary为直线liner model
之后我们会讲解如何直接得到w和b
通过什么来评价模型中函数的好坏
例如采用高斯分布,是通过μ和Σ来确定模型中函数的好坏
寻找分布函数的最优参数
通过极大似然估计