Функция Softmax вычисляет распределение вероятностей события по 'n' различным событиям. В общем, эта функция будет вычислять вероятности каждого целевого класса по всем возможным целевым классам. Позже рассчитанные вероятности будут полезны для определения целевого класса для заданных входных данных.

Например, предположим, что наша модель вернула вектор Y как [1.0, 2.0, 3.0], тогда функция softmax вернет вероятности каждого класса из входных логитов. Функция softmax определяется выражением:

Свойства функции Softmax:

Некоторые из свойств импорта функций Softmax:

  1. Расчетные вероятности будут в диапазоне от 0 до 1.
  2. Сумма всех вероятностей равна 1.
  3. Если вы умножите полученные оценки на функцию с 10, вероятности приблизятся к 0 и 1.
  4. Если разделить баллы на 10, баллы станут ближе к равномерному распределению.

Использование функции Softmax

  • Используется в модели логистической регрессии с множественной классификацией.
  • При построении нейронных сетей функции softmax используются на разных уровнях слоя.
import numpy as np
import matplotlib.pyplot as plt

#Function to implement Softmax Function
def softmax(x):
   return np.exp(x)/np.sum(np.exp(x))
#Function to plot the graph between Logits and Scores
def graph():
  X=range(0,21)
  Y=softmax(X)
  plt.plot(X, Y)
  plt.xlabel('Logits')
  plt.ylabel('Scores')
  plt.show()
  print('All the scores of a feature adds up to 1 since they are probabilities')
  print(np.sum(Y))
   
def main():
  scores = [[1.0, 2.0, 3.0]]
  print(softmax(scores))
  print('Visual Representation of Softmax Function')
  graph()
  
if __name__=="__main__":
  main()

ВЫХОД:

[[0.09003057 0.24472847 0.66524096]]

Сумма всех оценок функции равна 1, поскольку они являются вероятностями.

Узнать больше: