我今天来推导一下根据 概率模型 来推导一下分类的问题。 题目的大概就是,我们抽取一个样本,然后去判断这个样本应该属于哪个分类。 首先大概的复习一下跟概率论相关的知识概率论的一些基础知识 我们把问题限定为两个类别的分类。即我们有一个C1和C2分类。然后抽取一个样本Xi,去判断Xi应该属于哪个分类。用概率的公式来描述我们的问题 P(C?|Xi) 换言之 P(C1|Xi)=1−P(C2|Xi) 那么我们只要求出其中一个概率即可。 根据贝叶斯公式,我们可知 P(C1|Xi)=P(Xi|C1)∗P(C1)P(Xi|C1)∗P(C1)+P(Xi|C2)∗P(C2) 我们对公式进行一些简单的变换:分子和分母同除以分子可以得到 P(C1|Xi)=11+P(Xi|C2)∗P(C2)P(Xi|C1)∗P(C1) 我们设:Z=ln(P(Xi|C1)P(C1)P(Xi|C2)P(C2))得到了P(C1|Xi)=11+exp(−Z) 我们进一步对Z进行变换:Z=lnP(Xi|C1)P(Xi|C2)+lnP(C1)P(C2) 而P(C1)P(C2) 我们得到的办法主要是查学习样本的数量,C1的数量为N1,C2的数量为N2,从而得到 P(C1)P(C2)=N1N1+N2N2N1+N2=N1N2 带入Z中可以得到 Z=lnP(Xi|C1)P(Xi|C1)+lnN1N2 我们假定我们的样本是符合高斯(正态)分布的,高斯分布的概率密度公式如下 f(x)=12π−−√σexp((x−u)22σ2) 即: P(Xi|C1)=12π−−√σ1exp((xi−u1)22σ21) P(Xi|C2)=12π−−√σ2exp((xi−u2)22σ22) 带入以后,我们得到原式子简化以后 Z=ln1σ11σ2+lnexp((xi−u1)22σ21)exp((xi−u2)22σ22)+lnN1N2 进一步简化 Z=lnσ2σ1+(x−u1)22σ21+(x−u2)22σ22+lnN1N2 我们假定两个分类的高斯分布的方差是相等的,即σ1==σ2==σ 得到 Z=−2U1X+2U2X+U21−U222σ2+lnN1N2=U2−U1Σ2X+U21−U222σ2+lnN1N2 我们得知U和σ都是根据样本统计得到,我们并不关系他们具体的数值,所以我们可以假设W=U2−U1Σ2和 b=U21−U222σ2+lnN1N2 我们可以得到 Z=Wx+b 所以我们的机器学习如果我们利用极大似然函数,求得样本的均值和方差,我们就可以根据特征分布来估计一个样本是否属于一个分类,通过变化,我们完全可以不去计算样本的均值和方差,只需要找到合适的W和B,我们一样可以判断样本属于的分类。 我们只需要找到一个合适的评估函数,去评估我们找到的W和b是否合适。然后不断的去测试我们找到的W和b即可。而我们要找的这个函数如下: loss=−[ylny^+(1−y)ln(1−y^)] 至于为什么选择这样的损失函数呢?吴恩达老师在机器学习的课程中大概提了下,可以分成两种情况,去分别计算 loss={−lny^y=1−ln(1−y^)y=0 把这两个式子整合成一个就得到了上述的损失函数,我们不适用loss=(y−y^)2作为损失函数呢?吴恩达老师大概解释是因为他在逻辑回归中不是凸函数,没法进行很好的梯度下降。李宏毅老师的课程中详细进行了分析。 具体的分析如下:加入我们选择了loss=(y−y^)2作为损失函数,我们在求梯度下降的时候,需要求得该函数的导数 dlossdw=2(y−y^)y^(1−y^)∗X 当我们得到的输出为0或者1时候,不管label是0还是1,得到的导数都是0,梯度就无法下降。这个是根本你的原因。https://www.cnblogs.com/bbird/p/11527763.html