活动地址:CSDN21天学习挑战赛
除了梯度下降法,还有最大似然估计,可以用来推导损失函数。
示例: 有一个骰(
t
o
ˊ
u
t\acute{o}u
toˊu)子,分别标有1,2,3,4,5,6,这六个数字,投掷骰子,设事件A为出现小于6,事件B为出现6。如果每一面出现个概率都是
1
6
\frac{1}{6}
61,那么事件A的概率是
5
6
\frac{5}{6}
65。如果投掷多次,如6次,会出现一次6,即
p
=
1
6
p=\frac{1}{6}
p=61。进一步,投掷10次,有10种情况,每种情况发生的概率为
p
⋅
(
1
−
p
)
9
p \cdot (1-p)^9
p⋅(1−p)9,那么这10中情况出现的总概率为
10
⋅
p
⋅
(
1
−
p
)
9
10\cdot p \cdot (1-p)^9
10⋅p⋅(1−p)9,带入
p
=
1
6
p=\frac{1}{6}
p=61,则有事件B发生一次的概率为0.323。如果熟悉概率分布,就会知道这个是二项分布,即
p
{
x
=
B
}
=
(
k
n
)
p
k
⋅
(
1
−
p
)
n
−
k
p\{x=B\} = (kn)
from scipy.stats import binom
import numpy as np
import matplotlib.pyplot as plt
nums = np.asarray(np.linspace(0,10,11),dtype='int')
pB = binom.pmf(k=nums, n=10, p=1/6)
plt.stem(nums, pB)
plt.xlabel('Number of 6')
plt.ylabel('Probabilty')

即投掷10次,事件B出现一次和2次的概率分别为0.323和0.297.
进一步,我们假设事件B出现,投掷10次,事件B出现2次的概率是多少??如果骰子有两个面是6,投掷10次,事件B出现2次的概率是多少?依此类推,有骰子的数字为6的面数从0依次到6,则事件B发生的概率分别为 p = 0 6 , 1 6 , 2 6 , 3 6 , 4 6 , 5 6 , 6 6 p=\frac{0}{6},\frac{1}{6},\frac{2}{6},\frac{3}{6},\frac{4}{6},\frac{5}{6},\frac{6}{6} p=60,61,62,63,64,65,66,则有事件B出现两次的概率是多少?
from scipy.stats import binom
import numpy as np
import matplotlib.pyplot as plt
nB = np.asarray(np.linspace(0,6,7), dtype='int')
pB = binom.pmf(k=2, n=10, p=nB/6)
plt.stem(nB, pB)
plt.xlabel('Number of 6')
plt.ylabel('可能性')
plt.title('非正式似然估计')

那么如何通过最大似然估计确定参数呢?