多分类问题 softmax公式的使用

文章目录

  • 一、多分类问题使用sigmod解决的问题
  • 二、softmax公式

一、多分类问题使用sigmod解决的问题

多分类问题 softmax公式的使用_第1张图片
使用sigmod对每一个计算权值

如何使用sigmod计算权值?看这里
玩耍:
在这里插入图片描述

[[-0.9697223 ]
 [19.13764586]]

学习:
多分类问题 softmax公式的使用_第2张图片

[[ 0.02997379]
 [-0.15720643]]

跳舞:
在这里插入图片描述

[[  0.60928238]
 [-30.35856277]]

当我们预测 800岁人的爱好时,出现了下溢。
多分类问题 softmax公式的使用_第3张图片

二、softmax公式

从上面我们可以看出:对于多分类问题,使用sigmod已经变得不再合适了,因为当特征值多大时,可能有多个预测值都接近于1,无法区分这多个特征值谁的概率更大(即学习和跳舞的概率都是1)。所以为了区分特征值的概率,我们引入softmax公式。
多分类问题 softmax公式的使用_第4张图片

import numpy as np

# 玩耍
weight1 = np.array([[-0.9697223],
                    [19.13764586]])
# 学习
weight2 = np.array([[0.02997379],
                    [-0.15720643]])

# 发呆
weight3 = np.array([
    [[0.60928238],
     [-30.35856277]]
])
features = np.array(
    [800, 1]
)
play = np.dot(features, weight1)
study = np.dot(features, weight2)
dance = np.dot(features, weight3)
print("玩耍:")
print(np.exp(play) / (np.exp(play) + np.exp(study) + np.exp(dance)))
print("学习:")
print(np.exp(study) / (np.exp(play) + np.exp(study) + np.exp(dance)))
print("跳舞:")
print(np.exp(dance) / (np.exp(play) + np.exp(study) + np.exp(dance)))

我们使用softmax公式时 ,学习和跳舞的概率就会被拉大,很好区分

多分类问题 softmax公式的使用_第5张图片

你可能感兴趣的:(人工智能+大数据,分类,概率论,python)