当前位置: 首页 > wzjs >正文

深圳网站建设素材网站长沙网站建设排名

深圳网站建设素材网站,长沙网站建设排名,网店代运营收费标准,杭州住房建设部官方网站摘要 神经网络是深度学习的核心!本文将带你从零开始理解神经网络的基本原理,包括感知机模型、激活函数选择、反向传播算法等核心概念,并通过Python实现一个简单的全连接神经网络。文末提供《神经网络公式推导手册》和实战项目资源包&#xf…

摘要

神经网络是深度学习的核心!本文将带你从零开始理解神经网络的基本原理,包括感知机模型、激活函数选择、反向传播算法等核心概念,并通过Python实现一个简单的全连接神经网络。文末提供《神经网络公式推导手册》和实战项目资源包!

目录

目录

摘要

目录

一、神经网络基础概念

1.1 感知机模型

1.2 常用激活函数

二、前向传播与反向传播

2.1 前向传播过程

2.2 损失函数

2.3 反向传播算法

三、Python实现全连接神经网络

四、神经网络实战应用

4.1 异或问题求解

4.2 手写数字识别(MNIST)

五、神经网络优化技巧

5.1 超参数调优

5.2 防止过拟合

六、结语与资源

附录:进阶学习路线


一、神经网络基础概念

1.1 感知机模型

感知机是最简单的神经网络单元,其数学表达式为:


y = f(\sum_{i=1}^n w_i x_i + b)


其中:

  • x_i:输入特征

  • w_i:权重参数

  • b:偏置项

  • f:激活函数

1.2 常用激活函数

函数名称数学表达式特点
Sigmoid\sigma(x) = \frac{1}{1+e^{-x}}输出范围(0,1)
ReLUf(x) = max(0,x)计算简单,缓解梯度消失
Tanhtanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}输出范围(-1,1)

二、前向传播与反向传播

2.1 前向传播过程

对于L层神经网络,第l层的输出为:


a^{(l)} = f(z^{(l)}) = f(W^{(l)}a^{(l-1)} + b^{(l)})

2.2 损失函数

常用交叉熵损失函数:
J(W,b) = -\frac{1}{m}\sum_{i=1}^m [y^{(i)}\log(\hat{y}^{(i)}) + (1-y^{(i)})\log(1-\hat{y}^{(i)})]

2.3 反向传播算法

关键梯度计算公式:

  1. 输出层误差:
    \delta^{(L)} = \hat{y} - y

  2. 隐藏层误差:
    \delta^{(l)} = (W^{(l+1)})^T \delta^{(l+1)} \odot f'(z^{(l)})

  3. 参数梯度:
    \frac{\partial J}{\partial W^{(l)}} = \delta^{(l)}(a^{(l-1)})^T

  4. \frac{\partial J}{\partial b^{(l)}} = \delta^{(l)}

三、Python实现全连接神经网络

import numpy as npclass NeuralNetwork:def __init__(self, layers, learning_rate=0.01):self.layers = layers  # 网络结构,如[2,4,1]self.lr = learning_rateself.weights = []self.biases = []# 初始化参数for i in range(len(layers)-1):self.weights.append(np.random.randn(layers[i+1], layers[i]) * 0.1)self.biases.append(np.zeros((layers[i+1], 1)))def sigmoid(self, x):return 1 / (1 + np.exp(-x))def sigmoid_derivative(self, x):return x * (1 - x)def forward(self, X):self.activations = [X.T]self.z_values = []for w, b in zip(self.weights, self.biases):z = np.dot(w, self.activations[-1]) + bself.z_values.append(z)self.activations.append(self.sigmoid(z))return self.activations[-1]def backward(self, X, y):m = X.shape[0]y = y.reshape(-1, 1).T# 计算输出层误差delta = (self.activations[-1] - y) * self.sigmoid_derivative(self.activations[-1])# 反向传播for l in range(len(self.layers)-2, 0, -1):self.weights[l] -= self.lr * np.dot(delta, self.activations[l].T) / mself.biases[l] -= self.lr * np.sum(delta, axis=1, keepdims=True) / mdelta = np.dot(self.weights[l].T, delta) * self.sigmoid_derivative(self.activations[l])# 更新第一层参数self.weights[0] -= self.lr * np.dot(delta, self.activations[0].T) / mself.biases[0] -= self.lr * np.sum(delta, axis=1, keepdims=True) / mdef train(self, X, y, epochs):for epoch in range(epochs):output = self.forward(X)self.backward(X, y)if epoch % 100 == 0:loss = -np.mean(y * np.log(output) + (1-y) * np.log(1-output))print(f"Epoch {epoch}, Loss: {loss:.4f}")

四、神经网络实战应用

4.1 异或问题求解

# 准备数据
X = np.array([[0,0], [0,1], [1,0], [1,1]])
y = np.array([[0], [1], [1], [0]])# 创建网络
nn = NeuralNetwork(layers=[2,4,1], learning_rate=0.1)# 训练网络
nn.train(X, y, epochs=5000)# 测试效果
print("Predictions:")
for x in X:print(f"{x} -> {nn.forward(x.reshape(1,-1))[0,0]:.3f}")
 

4.2 手写数字识别(MNIST)

from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical# 加载数据
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(-1, 784) / 255.0
X_test = X_test.reshape(-1, 784) / 255.0
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)# 创建更大的网络
mnist_nn = NeuralNetwork(layers=[784, 128, 64, 10], learning_rate=0.01)# 训练(实际应用中建议使用深度学习框架)
# mnist_nn.train(X_train, y_train, epochs=10)
 

五、神经网络优化技巧

5.1 超参数调优

参数调优方法典型值
学习率学习率衰减0.1-0.0001
批量大小尝试不同批次32-256
网络深度逐步增加2-10层

5.2 防止过拟合

  • Dropout技术

  • L2正则化

  • 早停法(Early Stopping)

六、结语与资源

通过本文您已经掌握了:
🔹 神经网络基本原理 🔹 反向传播算法推导 🔹 Python实现简单神经网络


附录:进阶学习路线

  1. 卷积神经网络(CNN) - 图像处理

  2. 循环神经网络(RNN) - 时序数据处理

  3. 注意力机制 - Transformer模型基础

http://www.dtcms.com/wzjs/808769.html

相关文章:

  • 网站流量图片生成晚上正能量免费下载软件安全
  • 建站快车的使用方法2000个免费货源网站
  • 哪个网站做汽车保养比较好51制作工厂网站
  • 做相片软件网站个人适合网站类型
  • 手机网站居中显示淘宝客必须做网站吗
  • 铁路网站建设沈阳百度seo代理
  • 两学一做网站家教网站制作
  • 做网站公司凡科个人企业邮箱登录入口
  • 进一步加强网站建设管理黄山网站建设公司
  • 北京市住房城乡建设部网站首页cms网站怎么建
  • 河南省住房和城乡建设厅人教处网站手机可以建设网站吗
  • 网站模板的修改网上商城开发价格
  • 搜索引擎营销简称为衡阳网站seo优化
  • 海南专业做网站的公司建网站的英文
  • 永州网站建设如何重庆营销型网站开发公司
  • 苍南网站建设公司企业网组建
  • 江阴网站建设公司做网站的叫什么软件
  • 哈尔滨营销网站建设公司哪家好专门做招商的网站是什么情况
  • 怎么建设咨询网站好的交互网站
  • php可以做手机网站吗网站代码上传到服务器后要怎么做的
  • 货代一般用什么网站开发客户摄影设计英文
  • 网上营销推广网站打开很慢怎么做优化
  • 遵义住房和城乡建设局网站app软件开发的费用和流程
  • 网站建设综合训练佛山市骏域网站建设
  • 电商网站改版方案网上怎么找客户资源
  • 用自己照片做衣服 杯子的是哪个网站在线网站搭建系统
  • 中国交通建设官方网站网络外贸运营怎么做
  • 天水 网站建设 招聘人力资源三网站建设
  • 二手购物网站策划书国内网页设计培训
  • 湖南省建设银行网站官网网站客户留言