激活函数和损失函数-Question

1. 有哪些激活函数,有什么用?

ReLU、Sigmoid、Tanh。作用:非线性变换。

2. ReLU、Sigmoid、Tanh函数和导数。

ReLU:
f(z)=max(0, z) => 导数 f(n) = \begin{cases} 1, & z>0; \\ 0, & z \le 0. \end{cases}

Sigmoid:
f(z)=\frac{1}{1+exp(-z)} => 导数 f'(z)=f(z)(1-f(z))

Tanh:
f(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} => 导数 f'(z)=1-(f(z))^2

3. Sigmoid和ReLU的区别,ReLU解决了什么问题?

Sigmoid和Tanh激活函数会导致梯度消失问题。
ReLU优点:

  • Sigmoid和Tanh均需要计算指数,复杂度高。ReLU只需要一个阈值即可得到激活值。
  • ReLU的非饱和性可以有效地解决梯度消失问题。
  • ReLU的单侧抑制提供了网络的稀疏表达能力。

1. 有哪些损失函数?

均方差损失(MSE)、交叉熵损失(CrossEntropy)
J_{MSE}=\frac{1}{N}\sum_{i=1}^N(\hat{y}_i-y_i)^2
J_{CE}=-\sum_{i=1}^N[y_ilog\hat{y}_i+(1-y_i)log(1-\hat{y}_i)]

2. 交叉熵、相对熵、

相对熵又名KL散度:D_{KL}(p||q)=\sum_x p(x)log\frac{p(x)}{q(x)}=\sum_x[p(x)log(p(x))-p(x)log(q(x))]

交叉熵:H(p,q)=-\sum_x p(x)log(q(x))

3. 交叉熵损失函数公式。

J_{CE}=-\sum_{i=1}^N[y_ilog\hat{y}_i+(1-y_i)log(1-\hat{y}_i)]

4. 为什么使用交叉熵,不用平方差?

平方差损失函数更适合输出为连续,并且最后一层不含sigmoidsoftmax激活函数的神经网络;
原因是:平方差损失函数相对于输出层的导数:\delta^{(L)}=(a^{(L)}-y)f'(z^{(L)}),如果z^{(L)}的绝对值较大,函数的梯度会趋于饱和,导致\delta^{(L)}的取值非常小,梯度学习非常缓慢。

交叉熵损失函数相对输出层的导数:\delta^{(L)}=a^{(L)}-y 此时导数是线性的,因此不会存在学习速度过慢的问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容