【进阶】神经网络基础理论
发布时间: 2024-06-26 17:07:34 阅读量: 59 订阅数: 110
![【进阶】神经网络基础理论](https://img-blog.csdnimg.cn/05e39dd4cd3940b194b5660262789d0b.png)
# 2.1 人工神经元模型
人工神经元是神经网络的基本组成单元,它模仿了生物神经元的行为。它接受输入信号,并通过激活函数产生输出信号。
### 2.1.1 感知器模型
感知器是人工神经元的最简单形式,它接收二进制输入信号,并输出一个二进制信号。感知器的输出由以下公式计算:
```
output = sign(w1 * x1 + w2 * x2 + ... + wn * xn + b)
```
其中:
* w1, w2, ..., wn 是权重
* x1, x2, ..., xn 是输入信号
* b 是偏置
* sign 是符号函数,它将正数映射为 1,负数映射为 -1
### 2.1.2 激活函数
激活函数是非线性函数,它引入非线性到神经网络中。激活函数可以是 sigmoid、tanh 或 ReLU 等。激活函数的目的是将神经元的输出限制在特定范围内,并引入非线性,以便神经网络可以学习复杂的关系。
# 2. 神经网络基本结构与算法
### 2.1 人工神经元模型
#### 2.1.1 感知器模型
感知器模型是神经网络中最简单的模型,它由一个线性组合器和一个激活函数组成。线性组合器将输入特征向量与权重向量相乘,然后加上一个偏置项,得到一个加权和。激活函数对加权和进行非线性变换,得到神经元的输出。
```python
import numpy as np
class Perceptron:
def __init__(self, weights, bias):
self.weights = weights
self.bias = bias
def predict(self, x):
weighted_sum = np.dot(self.weights, x) + self.bias
return np.sign(weighted_sum)
```
**逻辑分析:**
* `weights`是权重向量,`bias`是偏置项。
* `predict()`方法计算加权和,并使用符号函数作为激活函数,将加权和映射到二进制输出(-1 或 1)。
#### 2.1.2 激活函数
激活函数是非线性函数,它将神经元的加权和映射到输出值。常见的激活函数包括:
* **Sigmoid 函数:**将加权和映射到 0 到 1 之间的范围。
* **ReLU 函数:**将加权和映射到 0 或正值。
* **tanh 函数:**将加权和映射到 -1 到 1 之间的范围。
### 2.2 多层神经网络
多层神经网络由多个神经元层组成,其中每一层的神经元都与下一层的多个神经元相连。
#### 2.2.1 前馈神经网络
前馈神经网络是多层神经网络的一种,其中信息从输入层流向输出层,不会有反馈回路。
**结构:**
* 输入层:接收输入特征。
* 隐藏层:处理输入特征并提取特征。
* 输出层:产生最终输出。
**示例:**
```python
import numpy as np
class FeedforwardNeuralNetwork:
def __init__(self, layers):
self.layers = layers
def predict(self, x):
for layer in self.layers:
x = layer.predict(x)
return x
```
**逻辑分析:**
* `layers`是一个神经元层列表。
* `predict()`方法通过每个神经元层依次传递输入,得到最终输出。
#### 2.2.2 反馈神经网络
反馈神经网络是多层神经网络的一种,其中信息可以从输出层流回输入层。
**结构:**
* 输入层:接收输入特征。
* 隐藏层:处理输入特征并提取特征。
* 输出层:产生最终输出。
* 反馈连接:将输出层连接回隐藏层或输入层。
**示例:**
```python
import numpy as np
class RecurrentNeuralNetwork:
def __init__(self, layers):
self.layers = layers
def predict(self, x):
for layer in self.layers:
x = layer.predict(x)
x = np.concatenate([x, self.output], axis=1)
return x
```
**逻辑分析
0
0