神经网络系列一 感知机

一、感知机

二、学习方法

### 多层感知机模型概述 多层感知机(Multilayer Perceptron, MLP)是种前馈型人工神经网络,能够映射组输入向量到组输出向量。MLP由多个层次构成,除了输入层和输出层外,还包含个或多个隐藏层。这种结构使得MLP可以处理复杂的非线性关系。 #### 网络架构 在网络架构方面,每层都由若干个节点组成,这些节点被称为神经元。相邻两层之间的每个神经元都会相互连接,并且每个连接都有对应的权重参数。对于给定的组输入特征$x$,经过系列加权求和操作以及激活函数$f(\cdot)$之后得到最终预测结果$\hat{y}$: $$\hat{y} = f(W^{(L)} \times a^{(L-1)})$$ 其中$L$表示层数;$W^{(l)}$代表第$l$层的权重矩阵;而$a^{(l)}=f(z^{(l)})$则是该层计算所得的结果向量,这里$z^{(l)}= W^{(l)}a^{(l−1)}+b^{(l)}$包含了偏置项$b^{(l)}$[^1]。 ```python import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x)) class NeuralNetwork: def __init__(self, input_dim, hidden_dims, output_dim): self.weights = [] dims = [input_dim] + hidden_dims + [output_dim] for i in range(len(dims)-1): w = np.random.randn(dims[i], dims[i+1]) b = np.zeros((dims[i+1])) self.weights.append((w,b)) def forward(self, X): activations = [X] for w, b in self.weights[:-1]: z = np.dot(X,w)+b X = sigmoid(z) activations.append(X) last_w,last_b=self.weights[-1] logits=np.dot(X,last_w)+last_b return logits,activations nn = NeuralNetwork(input_dim=784,hidden_dims=[64,32],output_dim=10) logits,_= nn.forward(np.random.rand(1,784)) print(logits.shape) ``` #### 工作原理 工作流程主要分为两个阶段:正向传播与反向传播。前者用于计算当前样本集上的损失值;后者则负责调整各层间的连接权重以最小化误差。具体来说,在每次迭代过程中先执行次完整的前向遍历获得预测标签,再依据实际类别信息更新所有可训练变量直至收敛为止[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值