单层神经网络和单隐层神经网络
时间: 2024-02-02 17:09:37 浏览: 27
单层神经网络是一种最简单的神经网络模型,也被称为逻辑回归模型。它由一个输入层和一个输出层组成,没有任何隐藏层。每个输入特征都与输出层中的神经元相连,通过权重和激活函数的计算,将输入特征映射到输出结果。
单隐层神经网络是一种具有一个隐藏层的神经网络模型。它由一个输入层、一个隐藏层和一个输出层组成。隐藏层中的神经元接收来自输入层的输入,并通过权重和激活函数的计算,将信息传递给输出层。隐藏层的存在使得神经网络能够学习更复杂的非线性关系,提高模型的表达能力。
以下是单层神经网络和单隐层神经网络的示例代码:
1. 单层神经网络(逻辑回归模型):
```python
import numpy as np
# 定义激活函数sigmoid
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义单层神经网络模型
class SingleLayerNN:
def __init__(self, input_size):
self.weights = np.random.randn(input_size)
self.bias = np.random.randn()
def forward(self, x):
z = np.dot(x, self.weights) + self.bias
a = sigmoid(z)
return a
# 创建单层神经网络模型
model = SingleLayerNN(input_size=2)
# 输入样本
x = np.array([1, 2])
# 前向传播计算输出
output = model.forward(x)
print(output)
```
2. 单隐层神经网络:
```python
import numpy as np
# 定义激活函数sigmoid
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义单隐层神经网络模型
class SingleHiddenLayerNN:
def __init__(self, input_size, hidden_size):
self.weights1 = np.random.randn(input_size, hidden_size)
self.bias1 = np.random.randn(hidden_size)
self.weights2 = np.random.randn(hidden_size)
self.bias2 = np.random.randn()
def forward(self, x):
z1 = np.dot(x, self.weights1) + self.bias1
a1 = sigmoid(z1)
z2 = np.dot(a1, self.weights2) + self.bias2
a2 = sigmoid(z2)
return a2
# 创建单隐层神经网络模型
model = SingleHiddenLayerNN(input_size=2, hidden_size=3)
# 输入样本
x = np.array([1, 2])
# 前向传播计算输出
output = model.forward(x)
print(output)
```