一、说明
在逻辑回归和一些机器学习算法中, Logistic函数和Softmax函数是常用到的,今天就先讨论下这两个函数。
二、Logistic Function
Logistic function一般用于二分类问题,它的函数定义如下:
f(x)=11+e−x(1)
f(x) = \frac{1}{1+e^{-x}} (1)
f(x)=1+e−x1(1)
它的图像如下:
由于logistic 函数的图形很像S,所以也叫sigmod 曲线。下面求一下logistic函数的导数,它在机器学习算法的推导过程中可能用到。
f′(x)=[(1+e−x)−1]′=−(1+e−x)−2∗e−x∗(−1)=e−x(1+e−x)2=11+e−xe−x1+e−x=11+e−x1+e−x−11+e−x=11+e−x(1−11+e−x)=f(x)[1−f(x)]
f'(x) = [(1+e^{-x})^{-1}]' \\
= -(1+e^{-x})^{-2}*e^{-x}*(-1) \\
= \frac{e^{-x}}{(1+e^{-x})^2} \\
= \frac{1}{1+e^{-x}} \frac{e^{-x}}{1+e^{-x}} \\
= \frac{1}{1+e^{-x}} \frac{1+e^{-x}-1}{1+e^{-x}} \\
=\frac{1}{1+e^{-x}} (1- \frac{1}{1+e^{-x}}) \\
=f(x)[1-f(x)]
f′(x)=[(1+e−x)−1]′=−(1+e−x)−2∗e−x∗(−1)=(1+e−x)2e−x=1+e−x11+e−xe−x=1+e−x11+e−x1+e−x−1=1+e−x1(1−1+e−x1)=f(x)[1−f(x)]
即 f′(x)=f(x)[1−f(x)]f'(x)=f(x)[1-f(x)]f′(x)=f(x)[1−f(x)]
通过logistic函数,可以把变量xxx映射到[0, 1]之间,在分类问题上,x是训练集上数据和对应维度特征参数的组合:θTx+b\boldsymbol{\theta ^Tx}+bθTx+b, 具体会在后边讲到。
三、Softmax Function
Softmax function 是sigmod 函数的扩展,它可以用于多分类问题。它的定义如下所示:
Yk=ϕ(zk)=ezk∑i=1Kezi,k=1,2,…,K
Y_k =\phi(z_k)= \frac{e^{z_k}}{\sum_{i=1}^Ke^{z_i}}, k= 1,2, \dots, K
Yk=ϕ(zk)=∑i=1Keziezk,k=1,2,…,K
其中,zzz往往是关于参数和样本数据的复合函数,softmax 函数的目的是求使得$Y_k 取值最大的取值最大的取值最大的z中的参数,中的参数,中的参数,k表示有k个分类。图中的](https://img-blog.youkuaiyun.com/20160603165051193)
图中的](https://img−blog.csdn.net/20160603165051193)图中的P(t|z)表示对于给定的输入表示对于给定的输入表示对于给定的输入z,它属于t的概率值。关于具体的推导,可参照文献2.但是注意,文献2中的,它属于t的概率值。关于具体的推导,可参照文献2. 但是注意,文献2 中的,它属于t的概率值。关于具体的推导,可参照文献2.但是注意,文献2中的\phi_K = \frac{\phi_i}{e^{\beta_i}}$, 有问题请随时留言。
四、参考文献
- http://peterroelants.github.io/posts/neural_network_implementation_intermezzo02/
- http://blog.youkuaiyun.com/hejunqing14/article/details/48980321