activation function & cost function

it2024-06-27  44

First of all, 有一篇总结的很好的博文: https://blog.csdn.net/qq_31347869/article/details/102799720

1. Activation Function

1) sigmoid

import numpy as np def sigmoid(x): s = 1 / (1 + np.exp(-x)) return s x = np.array([1, 2, 3]) sigmoid(x) >>> array([ 0.73105858, 0.88079708, 0.95257413])

2) softmax

import numpy as np def softmax(x): x_exp = np.exp(x) x_sum = np.sum(x_exp, axis = 1, keepdims = True) s = x_exp / x_sum return s x = np.array([[-3, 2, -1, 0]]) print(x) print(softmax(x)) >>> [[-3 2 -1 0]] [[ 0.0056533 0.83902451 0.04177257 0.11354962]]

Note: x_sum = np.sum(x_exp, keepdims = True)也可,因为x_exp是一维向量。 axis=1 以竖轴为基准 ,同行相加 keepdims主要用于保持矩阵的二维特性 实际应用中,e^V较大,所以:

3)tanh

Summary:激活函数的选择

(1)首选ReLU函数(只在隐藏层中使用),性能好、速度快;

(2)在ReLU出现很多死神经元的情况下,考虑使用Leaky ReLU函数;

(3)建议只在全连接层使用sigmoid函数;

(4)tanh函数在某些情况下有比较好的效果,但应用场景比较少;

(5)Maxout效果虽好但参数翻倍,因此一般不用。

最新回复(0)