GitHub 项目:机器学习
仓库地址:https://github.com/DorsaRoh/Machine-Learning
星级:2452 | 作者:多萨罗
项目描述:从零开始的机器学习
===================================================
自述文件内容:
# 从头开始机器学习
仅使用 numpy 实现 ML。
1. [神经网络](#neural-networks)
2. [变压器](#transformer)
3. [分布式模型](#distributed)
## 神经网络
在人工神经网络的背景下:
- 神经元是一个保存数字的简单单元
- 这个数字称为它的*“激活”*
### 什么是神经网络?
- 神经网络由组织成*层*的许多神经元组成
- 通常有三种类型的层:
1.输入层
2. 隐藏层
3.输出层

### 神经网络有什么作用?
1. 从训练数据中学习**模式**
2. **将**这些学到的模式应用于新的、未见过的数据
## 神经网络如何工作
### 神经元之间的连接
- 一层中的每个神经元都连接到**下**层中的**所有**神经元
- 每个连接的*强度*称为它的“权重”
- 在训练期间,调整这些权重以更准确地识别数据中的模式
### 如何确定神经元的激活
神经元的激活基于以下公式计算:
1. **前**层**所有**神经元的激活
2. 与这些神经元的连接的**权重**
它的工作原理如下:
1. 将每个传入神经元的激活(来自前一层)乘以其相应的权重
2. 总结所有这些产品
3. 添加一个名为“bias”的特殊值
这可以用以下公式表示:
````蟒蛇
加权和 = w1*a1 + w2*a2 + ... + wn*an + 偏差
````
其中:
- `w_i` 是上一层神经元 `i` 的连接权重
- `a_i` 是上一层神经元 `i` 的激活
- 偏差是一个额外的可调值

### 偏见的作用
偏置会改变激活函数。
- 这允许神经元调整其对输入的敏感度
- 正偏差使神经元更有可能激活
- 负偏差使其不太可能被激活

### 激活函数
计算加权和后,我们应用*“激活函数”*。常见的选择包括:
1. Sigmoid 函数:将输出映射/*归一化*到 0 到 1 之间的范围
2. ReLU(整流线性单元):如果输入为正则输出,否则输出0
在本指南中,我们将重点关注 ReLU:
````蟒蛇
def relu(自身, x):
返回 np.maximum(0, x)
````
ReLU 很受欢迎,因为它可以帮助网络更有效地学习。
## 训练神经网络
现在我们了解了神经网络的基本结构和操作,让我们看看它是如何学习的。
### 前向传播
这是通过网络传递输入以获得输出的过程:
1.从输入层开始
2. 对于每个子