sigmoid和交叉熵损失函数

sigmoid函数

Sigmoid函数是一个在生物学中常见的S型函数,将值映射到(0,1)之间,常用于神经元的激活函数。 σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1
画出函数图像

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)
#print(y)
plt.title("sigmoid") 
plt.plot(x,y) 
plt.show()

在这里插入图片描述
显然: lim ⁡ x → + ∞ = 1 \lim\limits_{x\to+\infty}=1 x+lim=1 , lim ⁡ x → − ∞ = 0 \lim\limits_{x\to-\infty}=0 xlim=0 ,函数平滑、易于求导。
σ ′ ( x ) = e − x ( 1 + e − x ) 2 = 1 1 + e − x − 1 ( 1 + e − x ) 2 = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\frac{e^{-x}}{(1+e^{-x})^2} =\frac{1}{1+e^{-x}}-\frac{1}{(1+e^{-x})^2}=\sigma(x)(1-\sigma(x)) σ(x)=(1+ex)2ex=1+ex1(1+ex)21=σ(x)(1σ(x))
因此sigmoid可用于二分类问题,输出p代表为1的概率。

二元交叉熵损失函数

y = 1 y=1 y=1时, p ( y = 1 ∣ x ) = p p(y=1|x)=p p(y=1x)=p
y = 0 y=0 y=0时, p ( y = 0 ∣ x ) = 1 − p p(y=0|x)=1-p p(y=0x)=1p
可将上式合并得 p ( y ∣ x ) = p y ( 1 − p ) 1 − y p(y|x)=p^y(1-p)^{1-y} p(yx)=py(1p)1y
为方便计算两边取对数得到 log ⁡ p ( y ∣ x ) = y log ⁡ p + ( 1 − y ) log ⁡ ( 1 − p ) \log p(y|x)=y\log p +(1-y)\log (1-p) logp(yx)=ylogp+(1y)log(1p)
损失应取正值故添加负号 L = − [ y log ⁡ p + ( 1 − y ) log ⁡ ( 1 − p ) ] L=-[y\log p +(1-y)\log (1-p)] L=[ylogp+(1y)log(1p)]
假设m个样本独立同分布,最大似然可得 P = ∏ i = 1 m p ( y i ∣ x i ) P=\prod_{i=1}^m p(y^i|x^i) P=i=1mp(yixi) log ⁡ P = ∑ i = 1 m log ⁡ p ( y i ∣ x i ) \log P=\sum_{i=1}^m\log p(y^i|x^i) logP=i=1mlogp(yixi) log ⁡ P = − ∑ i = 1 m L \log P=-\sum_{i=1}^mL logP=i=1mL
所以样本的平均误差可以定义为 J = 1 m ∑ i = 1 m L ( p , y ) J=\frac{1}{m}\sum_{i=1}^mL(p,y) J=m1i=1mL(p,y)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值