Softmax

Softmax推导

主要从事FPGA,在xilinx网站看到machine Learning on Xilinx Devices 将会支持Tensorflow (目前支持Caffe—-Facebook支持的深度学习工具,考虑到市场热衷程度选择Google),找了一个https://classroom.udacity.com/courses/ud730/lessons/6370362152/concepts/63815621490923 的网站,里面由视频教程。
Softmax 模型
Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的,MNIST 是一个手写数字识别库。
softmax是什么东东?试着找到一些说明一大堆公式本人也试着推到了一下:公式(这个公式编译器真实太恶心了)
在Softmax回归中将 x 分类为类别 j 的概率为:
 p(y(i)=jx(i);θ)=e(θTJx(i)kl=1(θTlx(i)
其中, k 为列别数,θj是行向量,表示每个输入 x 与第j个输出分类连接的权重, θTi 可能被换成函数关于 x 的函数fi(x)
公式的推到http://www.cnblogs.com/Deep-Learning/p/7073744.html
http://www.cnblogs.com/daniel-D/archive/2013/05/30/3109276.html(前辈们整理的很好了)。
“”“Softmax.”“”的练习题,用python3.5 运行,同时安装了numpy数组运算/pyplot画图工具

scores = [3.0, 1.0, 0.2]

import numpy as np
def softmax(x):
    """Compute softmax values for each sets of scores in x."""
    pass  # TODO: Compute and return softmax(x)
    return np.exp(x)/np.sum(np.exp(x),axis=0)
print(softmax(scores))
# Plot softmax curves
import matplotlib.pyplot as plt
x = np.arange(-2.0, 6.0, 0.1)
scores = np.vstack([x, np.ones_like(x), 0.2 * np.ones_like(x)])
plt.plot(x, softmax(scores).T, linewidth=2)
plt.show()

输出结果为

[ 0.8360188     0.11314284   0.05083836]

这里写图片描述
首先softmax函数的形式表明了,是对输入个数个变量做概率归一化。所以几个输入则有几个分类输出可能。
好,我们显然从照片可以看出,这个softmax对于该3分类问题。有以下特性:
1.蓝色的类别的主体区间在-2到6,如果大过这个主题区间则蓝色类概率趋于1,其他两类趋于0。
2.如果同比缩小输入为原来的十分之一。则值更接近0附近。很可能造成一个接近均匀分布的输出。

这两类问题是我们以后有可能需要考虑到的,如果使用softmax,那么如何让输入处在一个使得分类输出可靠的
区间里面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值