Получите softmax и перекрестную энтропию

машинное обучение

Получите softmax и перекрестную энтропию

1. Мера количества информации - энтропия

объем информации

Количество информации связано со степенью удивления, которое испытывает получатель, когда сообщается информация.Чем менее вероятным и непредсказуемым является событие, выраженное информацией, тем больше количество информации.

I=loga1P(x)I=\log _a\frac{1}{P\left( x \right)}

Единица количества информации связана с a в приведенной выше формуле

  • a=2, единицей информации является бит (bit)------наиболее часто используемый
  • a=e, единицей количества информации является nat
  • a=10, единицей информации является Хартли.

средняя информация

Мы называем энтропию энтропией, например

H(X)=Σ(pi)logp(xi)H\left( X \right) =-\Sigma \left( p_i \right) \log p\left( x_i \right)

Дискретный источник имеет 4 символа 0, 1, 2 и 3, чтобы сформировать вероятности следующим образом

0 1 2 3
0.375 0.25 0.25 0.125
H(X)=p0log2P(x0)p1log2P(x1)p2log2P(x2)p3log2P(x3)H\left( X \right) =-p_0\log _2P\left( x_0 \right) -p_1\log _2P\left( x_1 \right) -p_2\log _2P\left( x_2 \right) -p_3\log _2P\left( x_3 \right)
H(X)=0.375log20.3750.25log20.250.25log20.250.125log20.125=1.90564H\left( X \right) =-0.375\log _20.375-0.25\log _20.25-0.25\log _20.25-0.125\log _20.125=1.90564

2. Перекрестная энтропия

Возьмите распознавание рукописных цифр в качестве примера, чтобы наглядно продемонстрировать перекрестную энтропию.

H(p,q)=Σxp(x)log(1q(x))H\left( p,q \right) =\underset{x}{\Sigma}p\left( x \right) \log \left( \frac{1}{q\left( x \right)} \right)
(image0)label=[1000]predicate=[0.80.10.10](image2)label=[0001]predicate=[0.70.10.10.1]\left( image0 \right) \,\, label\,\,=\,\,\left[ \begin{array}{c} 1\\ 0\\ 0\\ 0\\ \end{array} \right] \,\,predicate=\left[ \begin{array}{c} 0.8\\ 0.1\\ 0.1\\ 0\\ \end{array} \right] \\ \left( image2 \right) \,\, label\,\,=\,\,\left[ \begin{array}{c} 0\\ 0\\ 0\\ 1\\ \end{array} \right] \,\,predicate=\left[ \begin{array}{c} 0.7\\ 0.1\\ 0.1\\ 0.1\\ \end{array} \right]
H(p,q)=1log20.81log10.1H\left( p,q \right) =-1\log _20.8-1\log _10.1

3. softmax

Yi=eziΣi=1neziY_i=\frac{e^{z_i}}{\Sigma _{i=1}^{n}e^{z_i}}
См. следующий пример, ввод Z,выход Y,И сумма вероятностей Y равна1\text{См. следующий пример, входные данные равны Z},\text{выходные данные Y},\text{а сумма вероятностей Y равна}1
z=[z1z2z3]=[313]z=\left[ \begin{array}{c} \mathrm{z}_1\\ \mathrm{z}_2\\ \mathrm{z}_3\\ \end{array} \right] =\left[ \begin{array}{c} 3\\ 1\\ -3\\ \end{array} \right]
i=13ezi=e3+e1+e3=22.8536\sum_{i=1}^3{e^{z_{\mathrm{i}}}}=\mathrm{e}^3+\mathrm{e}^1+\mathrm{e}^{-3}=22.8536
Первый шаг — сопоставить все числа с неотрицательными числами.z'=[e3e1e3]\text{Первый шаг – преобразовать все числа в неотрицательные}z'=\left[ \begin{array}{c} e^3\\ e^1\\ e^{-3}\\ \ конец {массив} \справа]
i=13ezi=e3+e1+e3=22.8536\sum_{i=1}^3{e^{z_{\mathrm{i}}}}=\mathrm{e}^3+\mathrm{e}^1+\mathrm{e}^{-3}=22.8536
На втором этапе понимается, что все числа отображаются в диапазоне 0-1, а сумма равна 1.Y=z'i=13ezi=[e3e1e3]i=13ezi=[e3e1e3]22.8536=[20.08552.718280.0497871]22.8536[0.880.120]\text{Второй шаг показывает, что все числа отображаются в диапазоне от 0 до 1, а сумма равна 1 } \mathrm{Y}=\frac{z'}{\sum_{i=1}^3{e^ {z_{\mathrm{i}}}}}=\frac{\left[ \begin{array}{c} e^3\\ e^1\\ e^{-3}\\ \end{array} \right] }{\sum_{i=1}^3{e^{z_{\mathrm{i}}}}}=\frac{\left[\begin{array}{c} e^3\\ e ^1\ \ e^{-3}\\ \end{массив} \right]}{22,8536}=\frac{\left[ \begin{массив}{c} 20,0855\\ 2,71828\\ 0,0497871\\ \end {массив} \right]}{22,8536}\приблизительно \left[ \begin{массив}{c} 0,88\\ 0,12\\ 0\\ \end{массив} \right]

img

вывод softmax как вход для кросс-энтропии

Объединяя части 2 и 3 этой статьи, выходной вектор вероятности слоя softmax можно использовать в качестве входных данных для функции кросс-энтропийных потерь для задач классификации.

Y=z'i=13ezi=[e3e1e3]i=13ezi=[e3e1e3]22.8536=[20.08552.718280.0497871]22.8536[0.880.120]\mathrm{Y}=\frac{z'}{\sum_{i=1}^3{e^{z_{\mathrm{i}}}}}=\frac{\left[ \begin{array}{c} e^3\\ e^1\\ e^{-3}\\ \end{array} \right]}{\sum_{i=1}^3{e^{z_{\mathrm{i}}}}}=\frac{\left[ \begin{array}{c} e^3\\ e^1\\ e^{-3}\\ \end{array} \right]}{22.8536}=\frac{\left[ \begin{array}{c} 20.0855\\ 2.71828\\ 0.0497871\\ \end{array} \right]}{22.8536}\approx \left[ \begin{array}{c} 0.88\\ 0.12\\ 0\\ \end{array} \right]
label=[100]\mathrm{label} =\,\,\left[ \begin{array}{c} 1\\ 0\\ 0\\ \end{array} \right]
H(x)=log2(0.88)=0.184425\mathrm{H}\left( \mathrm{x} \right) =-\log _2\left( 0.88 \right) =0.184425