1. Sigmoid、Tanh、ReLU激活函数
一个小示例:
import torch
import matplotlib.pyplot as plt
from torch import nn
# In[25]:
x = torch.tensor([ x for x in range(-10,10,1)])
print(x)
# In[45]:
jihuo1 = nn.Sigmoid()
sig_y = jihuo1(x)
plt.plot(x.numpy(), sig_y.numpy())
plt.show()
# In[36]:
jihuo2 = nn.Tanh()
tan_y = jihuo2(x)
plt.plot(x.numpy(), tan_y.numpy())
plt.show()
# In[46]:
jihuo3 = nn.ReLU()
relu_y = jihuo3(x)
plt.plot(x,relu_y)
plt.show()
实验结果:
ReLU
f
(
x
)
=
m
a
x
(
0
,
x
)
f(x) = max(0,x)
f(x)=max(0,x)
Tanh
f
(
x
)
=
1
−
e
x
p
(
−
2
x
)
1
+
e
x
p
(
−
2
x
)
f(x) = \frac{1-exp(-2x)}{1+exp(-2x)}
f(x)=1+exp(−2x)1−exp(−2x)
Sigmoid
f
(
x
)
=
1
1
+
e
x
p
(
−
x
)
f(x) = \frac{1}{1+exp(-x)}
f(x)=1+exp(−x)1
2. 多层感知机SVM
多层感知机(SVM)就是隐藏层加上激活函数的非线性模型,激活函数对于机器学习来说非常重要,体现在公式上就是:
h
=
σ
(
W
1
+
b
1
)
h = \sigma(W_1 + b_1)
h=σ(W1+b1)
o
=
W
2
h
+
b
2
o = W_2h+b_2
o=W2h+b2
其中
σ
\sigma
σ就是代表激活函数。
多层感知机的出现主要可以解决异或的问题,模型与线性模型训练方法是一样的。