使用sigmoid函数的简单实例代码
时间: 2024-05-21 20:09:14 浏览: 21
sigmoid函数是一种常用的非线性函数,常用于神经网络中作为激活函数。其具体公式为:$$f(x)=\frac{1}{1+e^{-x}}$$
以下是一个使用Python实现sigmoid函数的代码示例:
```python
import math
def sigmoid(x):
return 1 / (1 + math.exp(-x))
```
其中,math.exp()是Python中自然指数函数。对于输入的任意实数x,函数sigmoid(x)会输出一个在0到1之间的数值。
相关问题
sigmoid函数介绍并举个例子
Sigmoid函数是一种常见的非线性函数,通常用于神经网络中的激活函数。它的数学表达式为:$\sigma(x)=\frac{1}{1+e^{-x}}$。
Sigmoid函数的特点是将输入值映射到0到1之间的范围内,因此常用于将输出值转化为概率值的情况。例如,在二分类问题中,我们可以使用Sigmoid函数将模型的输出值转化为预测为正例的概率值。
举个例子,我们可以将输入值x输入到Sigmoid函数中,如下所示:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
x = np.array([1, 2, 3])
print(sigmoid(x))
```
输出结果为:
```
[0.73105858 0.88079708 0.95257413]
```
这里的输出结果表示对于输入值为1、2、3的情况,Sigmoid函数分别将其映射到了0.73、0.88、0.95的概率值上。
如何使用sigmoid进行二分类代码示例
以下是一个使用sigmoid进行二分类的Python代码示例:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 训练数据
X_train = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y_train = np.array([0, 1, 1, 0])
# 初始化权重和偏置
w = np.random.rand(2)
b = np.random.rand()
# 学习率
lr = 0.1
# 迭代训练
for i in range(1000):
# 前向传播
z = np.dot(X_train, w) + b
y_pred = sigmoid(z)
# 计算损失
loss = np.mean(-y_train * np.log(y_pred) - (1 - y_train) * np.log(1 - y_pred))
# 反向传播
dw = np.dot(X_train.T, (y_pred - y_train)) / len(X_train)
db = np.mean(y_pred - y_train)
# 更新权重和偏置
w -= lr * dw
b -= lr * db
# 打印损失
if i % 100 == 0:
print("Epoch %d, Loss: %.4f" % (i, loss))
# 预测
y_pred = sigmoid(np.dot(X_train, w) + b)
y_pred = np.round(y_pred)
print("Predictions:", y_pred)
```
在这个例子中,我们使用sigmoid函数作为激活函数来实现二分类。我们使用4个训练样本(XOR问题),并使用随机初始化的权重和偏置进行训练。经过1000次迭代后,我们得到了比较好的分类结果。