昨天的最後我们提到我们要找一个事後机率(Posterior Probability),如果它大於 0.5 就输出 ,否则就输出 。如果是使用Gaussian,则 ,。
如果用图像化表示则整个模型如下图所示,将所有的输入 分别乘上 再加上 就会得得到 ,即 ,接着 通过Sigmoid function输出的值就是事後机率,这整件事情我们就称为逻辑回归(Logistic Regression)。
训练资料需要标记(Label),也就是说每个 都要标记它属於哪一个class。假设我们的训练资料是从事後机率所产生的,只要给我们一个 我们就决定了事後机率,就可以去计算某一组 产生 笔训练资料的机率,而我们要找一组可以最大化这个机率的 。
经过一些数学运算则可以将式子改为 。
整理过後可以发现 後面那一长串是两个伯努利分布(Bernoulli distribution)的交叉熵(Cross-entropy),Cross-entropy代表的涵义是这两个distribution有多接近,如果两个分布是一样的,那Cross-entropy算出来就会是 0。因此我们在做的就是去算所有样本的Cross-entropy的总和。
要找到一个最好的function,就要让 最小化,也就是要最小化所有样本的Cross-entropy的总和。可以用梯度下降法(Gradient Descent),就是做对 的偏微分。
经过整理之後会得到 。从括弧中的式子可以看出 的更新取决於Learning rate 、 以及 ,这个式子代表function的输出跟理想目标的差距大小,如果离目标越远,则应该更新越多次参数。
将逻辑回归的式子的输出减掉 的平方加总当作Loss function,一样用梯度下降法对 後面的式子对 做偏微分,会得到如下图所示的结果。
会遇到一个问题就是,假设今天第 笔资料是 class 1 ,当 就代表你很接近你的目标,将它们的值代入式子算出来微分等於 0,而当 就代表你离你的目标还很远,将它们的值代入式子算出来微分也等於 0。
如果把参数的变化对Total Loss作图,选择Cross-entropy跟选择Square error的参数的变化跟loss的变化如下图所示。
从图中可以看到,以Cross-entropy来说距离目标越远,微分值就越大,参数更新越快,但是如果是Square error,当距离目标很远的时候,微分却非常小,就会导致不知道距离目标的远近。
<<: Day 12 | Dart 中的 Sound null safety
>>: Day 10 情报收集 - Information Gathering (Maltego)
tags: 铁人赛 macOS iTerm2 zsh powerlevel10k 概述 作者的碎念 ...
高中听过有人念ㄙㄨㄟˊ 圆形,我当时真是害怕极了。 --- 椭圆曲线 (Elliptic curve...
Q1. 什麽是 堆叠型 SQL注入? 堆叠型 SQL注入也称为 堆查询注入,英文为 stacked ...
时序图 (Sequence Diagram, Timeline Diagram),是 UML 底下的...
Switch Case | 用Break断开锁链 | DEMO ...