用Numpy实现sigmoid函数

  • Post category:Python

下面是详细讲解如何用Numpy实现sigmoid函数的完整攻略:

1. 什么是Sigmoid函数?

Sigmoid函数是一种常用的激活函数,线性回归和逻辑回归领域都广泛应用。Sigmoid函数可以将任意实数值映射到一个[0, 1]的区间内,函数的形状为S型曲线。

你可以根据下方公式,了解Sigmoid函数的计算方法:

Sigmoid函数公式:

$$ sigmoid(x) = \frac{1}{1+e^{-x}} $$

2. Numpy实现Sigmoid函数

下面是使用Numpy库,实现Sigmoid函数的代码:

import numpy as np

def sigmoid(x):
    """
    Sigmoid函数实现
    """
    return 1 / (1 + np.exp(-x))

我们使用Numpy库中的exp函数,对输入的数值进行指数运算,然后再进行数值计算。

3. 示例说明

目前为止,我们已经用Numpy实现了Sigmoid函数。接下来,我们可以使用下面两个例子,来进一步探讨Sigmoid函数的应用。

3.1 Sigmoid函数作为激活函数

在神经网络中,激活函数是非常重要的。Sigmoid函数是最早被广泛应用的激活函数之一。在使用Sigmoid函数作为激活函数时,我们可以通过将神经元的输出值,进行Sigmoid运算后,得到一个概率值来代表激活状态,从而完成神经元的激活操作。

import numpy as np

def sigmoid(x):
    """
    Sigmoid函数实现
    """
    return 1 / (1 + np.exp(-x))

class NeuralNetwork:
    def __init__(self):
        self.weights = np.array([0.5, -0.5])
        self.bias = 0.1

    def feedforward(self, x):
        """
        神经网络的前向传播
        """
        h = np.dot(self.weights, x) + self.bias
        y = sigmoid(h)
        return y

nn = NeuralNetwork()
x = np.array([2.0, 3.0])
print(nn.feedforward(x))

3.2 Sigmoid函数作为逻辑回归中的激活函数

Sigmoid函数不仅仅在神经网络中得到了广泛的应用。在逻辑回归中,Sigmoid函数也被广泛应用。在逻辑回归中,我们可以使用Sigmoid函数来处理逻辑回归中的输出,从而使得输出的值限定在[0,1]的范围内,方便我们进行二分类问题的判断。

import numpy as np

def sigmoid(x):
    """
    Sigmoid函数实现
    """
    return 1 / (1 + np.exp(-x))

class LogisticRegression:
    def __init__(self):
        self.weights = np.array([0.5, -0.5])
        self.bias = 0.1

    def predict(self, x):
        """
        预测
        """
        h = np.dot(self.weights, x) + self.bias
        y_pred = sigmoid(h)
        return y_pred

lr = LogisticRegression()

x1 = np.array([1.0, 0.5])
y1 = lr.predict(x1)

x2 = np.array([3.0, 1.0])
y2 = lr.predict(x2)

print("y_pred1:", y1)
print("y_pred2:", y2)

以上就是一个利用Sigmoid函数实现的逻辑回归的简单示例。

综上,通过以上两个示例,可见Sigmoid函数在神经网络和逻辑回归中的应用,Sigmoid不仅可以将输出值映射到一个[0,1]的区间内,还可以提升网络的准确率。