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

建设网站可选择的方案一键开发小程序

建设网站可选择的方案,一键开发小程序,自己做钓鱼网站,h5游戏是什么机器学习中的神经网络部分是大模型LLM训练的基础之基础,熟练掌握这一部分的知识和基础技能对后续理解大模型原理至关重要! 第9集:神经网络基础——从感知机到多层感知机 在机器学习中,神经网络(Neural Networks&#…

  • 机器学习中的神经网络部分是大模型LLM训练的基础之基础,熟练掌握这一部分的知识和基础技能对后续理解大模型原理至关重要!

在这里插入图片描述

第9集:神经网络基础——从感知机到多层感知机

在机器学习中,神经网络(Neural Networks) 是一种强大的工具,能够解决复杂的分类和回归问题。从简单的感知机到复杂的多层感知机(MLP),神经网络已经成为深度学习的核心技术之一。今天我们将深入探讨神经网络的基本结构,并通过实践部分使用 TensorFlow/Keras 构建一个多层感知机(MLP)来解决 MNIST 手写数字识别问题。


神经网络的基本结构

1. 感知机

感知机是神经网络的基本单元,其核心思想是通过加权求和和激活函数对输入数据进行非线性变换。公式如下:
y = f ( ∑ i = 1 n w i x i + b ) y = f(\sum_{i=1}^{n} w_i x_i + b) y=f(i=1nwixi+b)
其中:

  • x i 是输入特征。 x_i 是输入特征。 xi是输入特征。
  • w i 是权重。 w_i 是权重。 wi是权重。
  • b 是偏置。 b 是偏置。 b是偏置。
  • f 是激活函数。 f 是激活函数。 f是激活函数。

图1:感知机示意图
(图片描述:一个简单的感知机模型,包含输入节点、权重、偏置和激活函数。)
在这里插入图片描述

2. 多层感知机(MLP)

多层感知机由多个感知机组成,通常包括以下几层:

  • 输入层:接收原始数据。
  • 隐藏层:通过非线性变换提取特征。
  • 输出层:生成预测结果。

每一层的输出作为下一层的输入,形成前向传播过程。


激活函数

激活函数为神经网络引入非线性能力,使其能够拟合复杂的数据分布。以下是几种常见的激活函数:

1. ReLU(Rectified Linear Unit)

公式:
f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)
特点:计算简单,避免梯度消失问题。

2. Sigmoid

公式:
f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1
特点:将输出压缩到 [0, 1] 区间,适用于概率输出。

3. Tanh

公式:
f ( x ) = tanh ⁡ ( x ) = e x − e − x e x + e − x f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=tanh(x)=ex+exexex
特点:将输出压缩到 [-1, 1] 区间,比 Sigmoid 更适合隐藏层。

图2:激活函数对比
(图片描述:折线图展示了 Sigmoid 、Tanh、ReLU和 Leaky ReLu 的形状,ReLU 和 Leaky ReLu 在正区间为线性增长,Sigmoid 和 Tanh 分别压缩到 [0, 1] 和 [-1, 1]。)
在这里插入图片描述


反向传播算法

反向传播是训练神经网络的核心算法,其目标是最小化损失函数。具体步骤如下:

  1. 前向传播:计算预测值。
  2. 计算损失:评估预测值与真实值之间的误差。
  3. 反向传播:根据链式法则计算梯度。
  4. 参数更新:使用梯度下降法更新权重和偏置。

公式如下:
Δ w = − η ∂ L ∂ w \Delta w = -\eta \frac{\partial L}{\partial w} Δw=ηwL
其中:

  • η 是学习率。 \eta 是学习率。 η是学习率。
  • L 是损失函数。 L 是损失函数。 L是损失函数。

使用 TensorFlow/Keras 构建简单的神经网络

Keras 是一个高级神经网络 API,支持快速构建和训练模型。我们使用 Keras 来实现一个多层感知机(MLP)。


实践部分:构建 MLP 解决 MNIST 手写数字识别问题

数据集简介

MNIST 数据集包含 70,000 张 28x28 像素的手写数字图像(0-9)。每张图像被展平为 784 维向量。目标是构建一个神经网络模型,能够准确识别手写数字。

完整代码

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical# 加载 MNIST 数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()# 数据预处理
X_train = X_train.astype('float32') / 255.0  # 归一化到 [0, 1]
X_test = X_test.astype('float32') / 255.0
y_train = to_categorical(y_train, 10)  # 将标签转换为 one-hot 编码
y_test = to_categorical(y_test, 10)# 构建多层感知机模型
model = Sequential([Flatten(input_shape=(28, 28)),  # 展平输入图像Dense(128, activation='relu'),  # 隐藏层,128 个神经元,使用 ReLU 激活函数Dense(64, activation='relu'),   # 隐藏层,64 个神经元,使用 ReLU 激活函数Dense(10, activation='softmax') # 输出层,10 个神经元,使用 Softmax 激活函数
])# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
history = model.fit(X_train, y_train, epochs=10, batch_size=128, validation_split=0.2)# 评估模型
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_accuracy:.2f}")# 绘制训练过程中的损失和准确率曲线
plt.figure(figsize=(12, 5))# 损失曲线
plt.subplot(1, 2, 1)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Loss Curve', fontsize=16)
plt.xlabel('Epochs', fontsize=12)
plt.ylabel('Loss', fontsize=12)
plt.legend()
plt.grid()# 准确率曲线
plt.subplot(1, 2, 2)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Accuracy Curve', fontsize=16)
plt.xlabel('Epochs', fontsize=12)
plt.ylabel('Accuracy', fontsize=12)
plt.legend()
plt.grid()plt.show()

运行结果

输出结果
Test Accuracy: 0.97
训练过程可视化

图3:损失与准确率曲线
(图片描述:左侧子图展示了训练和验证损失随 epoch 的变化,右侧子图展示了训练和验证准确率的变化,两条曲线均趋于平稳。)
在这里插入图片描述


总结

本文介绍了神经网络的基本结构、激活函数和反向传播算法,并通过实践部分展示了如何使用 TensorFlow/Keras 构建一个多层感知机(MLP)来解决 MNIST 手写数字识别问题。希望这篇文章能帮助你更好地理解神经网络的基础知识!


下集预告:机器学习实战(10):深度学习初探——卷积神经网络(CNN)

参考资料

  • TensorFlow 文档: https://www.tensorflow.org/
  • MNIST 数据集: http://yann.lecun.com/exdb/mnist/
http://www.dtcms.com/wzjs/243491.html

相关文章:

  • 美食网站源代码百度怎么精准搜索
  • 本地佛山顺德网站建设2020年度关键词有哪些
  • 厦门网站怎么做制作网页app
  • 国家开发银行app下载人教版优化设计电子书
  • 谷歌网站建站seo诊断报告怎么写
  • 安多网站制作十大短视频平台排行榜
  • 建设官方网站登录百度seo服务方案
  • phpcms手机网站模板杭州百度seo优化
  • 网站建设公司费用游戏广告投放平台
  • 做竞品分析的网站搜狗收录提交入口
  • 东莞网站建设基础型新闻10 30字
  • 网站做seo要多少钱免费制作小程序平台
  • 企业网站网址推广平台网站有哪些
  • wordpress 去掉自豪四川百度推广和seo优化
  • 未来做哪个网站能致富黑帽seo优化软件
  • 浙江华企做网站十大计算机培训学校
  • 怎么建公司网站电商线上推广渠道
  • dw网站模板下载地址淘宝搜索关键词排名
  • 公司网站建设ppt西安seo代理计费
  • 全国设计网站公司网站百度广告投放平台官网
  • 做家政在哪个网站找网站seo诊断报告怎么写
  • 厦门做网站多少钱世界500强企业
  • 西安建设学院网站首页宁波seo网络推广咨询价格
  • ps做电商网站尺寸是多少历史权重查询
  • 服务器租用网站模版黄页推广
  • 网站建设的内部风险分析谷歌在线浏览入口
  • 网上接网站开发不给钱怎么办杭州百度首页优化
  • 网站开发后端工资多少企业网站开发公司
  • 手机网站建设免费网站的推广平台有哪些
  • 网络企业网站建设方案郑州计算机培训机构哪个最好