激活函数和损失函数-Question

2020-11-19  本文已影响0人  魏鹏飞

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优点:

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 此时导数是线性的,因此不会存在学习速度过慢的问题。

上一篇 下一篇

猜你喜欢

热点阅读