...
sigmoid函数
Sigmoid函数是一个在生物学中常见的S型函数,将值映射到(0,1)之间,常用于神经元的**函数。σ(x)=1+e−x1
画出函数图像
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
x=np.arange(-10,10,0.1)
y=1/(np.exp(-x)+1)
plt.title("sigmoid")
plt.plot(x,y)
plt.show()
显然:x→+∞lim=1 , x→−∞lim=0 ,函数平滑、易于求导。
σ′(x)=(1+e−x)2e−x=1+e−x1−(1+e−x)21=σ(x)(1−σ(x))
因此sigmoid可用于二分类问题,输出p代表为1的概率。
二元交叉熵损失函数
y=1时,p(y=1∣x)=p
y=0时,p(y=0∣x)=1−p
可将上式合并得p(y∣x)=py(1−p)1−y
为方便计算两边取对数得到logp(y∣x)=ylogp+(1−y)log(1−p)
损失应取正值故添加负号L=−[ylogp+(1−y)log(1−p)]
假设m个样本独立同分布,最大似然可得P=i=1∏mp(yi∣xi)logP=i=1∑mlogp(yi∣xi)logP=−i=1∑mL
所以样本的平均误差可以定义为J=m1i=1∑mL(p,y)