【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(4)

机器学习(Machine Learning)

简要声明

基于吴恩达教授(Andrew Ng)课程视频
BiliBili课程资源


文章目录


构建神经网络:从基础架构到实际应用

一、引言

在上一篇博客中,我们初步掌握了 TensorFlow 在深度学习神经网络中的基础代码实现,对简单模型的搭建和核心概念有了基础认知。本篇将深入探索如何构建更复杂、更具实际应用价值的神经网络架构,并结合具体案例,逐步掌握其在不同场景下的实践技巧。

二、构建神经网络架构

(一)简单神经网络架构示例

我们从一个直观的案例入手,解读 "Building a neural network architecture" 图中的网络结构:

  • 网络结构解析 :这是一个两层神经网络,输入层接收特征向量 x ⃗ \vec{x} x ,第一层包含 3 个神经元,采用 sigmoid 激活函数,能将线性输入转换为非线性输出;第二层仅有 1 个神经元,同样使用 sigmoid 函数,用于输出最终预测概率。使用 TensorFlow 的 Sequential 模型可轻松实现该结构:
python 复制代码
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential([
    Dense(units=3, activation="sigmoid"),
    Dense(units=1, activation="sigmoid")
])
  • 数据准备要点 :输入数据 x 是形状为 4 x 2 的 numpy 数组,意味着包含 4 个样本,每个样本具有 2 个特征;目标数据 y 则是对应的标签数据,同样以 numpy 数组形式呈现。例如:
python 复制代码
x = np.array([[200.0, 17.0],
              [120.0, 5.0],
              [425.0, 20.0],
              [212.0, 18.0]])
y = np.array([1, 0, 0, 1])
  • 模型训练与预测流程 :尽管图中 model.compile(...) 部分未详细展开,但我们知道这一步至关重要,需配置优化器、损失函数等关键参数。通过 model.fit(x, y) 进行模型训练,使其学习输入特征与目标标签的映射关系。训练完成后,使用 model.predict(x_new) 即可对新数据进行预测。

(二)数字分类模型架构

接下来分析 "Digit classification model" 图中的复杂神经网络架构:

  • 网络深度与设计:该网络包含三层,第一层 25 个神经元用于初步特征提取,第二层 15 个神经元进一步提炼特征,第三层单神经元输出最终预测结果,每层均采用 sigmoid 激活函数。我们可以分步定义各层,再组合成 Sequential 模型:
python 复制代码
layer_1 = Dense(units=25, activation="sigmoid")
layer_2 = Dense(units=15, activation="sigmoid")
layer_3 = Dense(units=1, activation="sigmoid")

model = Sequential([layer_1, layer_2, layer_3])
  • 数据特征与标签 :输入数据 x 是代表数字图像特征的 numpy 数组(如像素值等),由于图像数据维度较高,这里仅展示部分数据结构;目标数据 y 则是对应数字标签,例如:
python 复制代码
x = np.array([[0..., 245,..., 17],
              [0..., 200,..., 184]])
y = np.array([1, 0])
  • 完整训练预测链路 :与简单模型类似,先通过 model.compile(...) 配置训练参数,再使用 model.fit(x, y) 完成训练,最终利用训练好的模型对新图像数据进行预测。

三、构建神经网络的关键要点

(一)层的选择与设计策略

在神经网络构建中,层的选择直接决定模型性能:

  • 全连接层(Dense):适用于多种数据类型,其神经元全连接特性使其能捕捉全局特征关系,但计算复杂度较高。

  • 卷积层(Conv):专为图像数据设计,通过卷积核自动提取局部特征,大幅减少参数数量,有效避免过拟合,是计算机视觉领域的核心层。

  • 循环层(RNN 及变体 LSTM、GRU):擅长处理序列数据,如时间序列、文本等,能记忆历史信息,捕捉长距离依赖关系。

(二)激活函数的应用场景

激活函数是赋予神经网络非线性能力的关键:

  • sigmoid 函数:将输出压缩至 (0, 1) 区间,常用于二分类问题的输出层,但存在梯度消失问题,不适用于深层网络。

  • ReLU 函数 :以 f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x) 为核心逻辑,有效缓解梯度消失,加速训练,是隐藏层的常用选择。

  • tanh 函数:输出值域为 (-1, 1),相比 sigmoid 有更好的中心化效果,在某些特定场景表现优异。

(三)数据预处理的核心操作

高质量的数据是模型训练的基础:

  • 归一化处理:将图像像素值从 [0, 255] 归一化到 [0, 1],或使用标准化方法将数据转换为均值为 0、方差为 1 的分布,可提升模型稳定性与收敛速度。

  • 维度校验:确保输入数据维度与模型要求一致,如图像数据需注意通道数、尺寸等维度信息,避免因维度错误导致训练失败。


continue...

相关推荐
囚生CY6 小时前
【学习笔记】Langchain基础(二)
笔记·学习·langchain
大饼酥6 小时前
吴恩达机器学习笔记(2)—单变量线性回归
机器学习·线性回归·梯度下降·吴恩达·代价函数
Mallow Flowers7 小时前
Python训练营-Day31-文件的拆分和使用
开发语言·人工智能·python·算法·机器学习
忘川w9 小时前
《网络安全与防护》知识点复习
笔记·安全·web安全·网络安全
zkinglin10 小时前
AORSA编译指南
笔记·其他·能源
中國龍在廣州10 小时前
AI首次自主发现人工生命
人工智能·科技·机器学习·机器人
SunsPlanter11 小时前
机器学习--分类
人工智能·机器学习·分类
wu~97011 小时前
计算机网络-自顶向下—第一章概述重点复习笔记
笔记·计算机网络
Allen Bright12 小时前
【机器学习-线性回归-7】中心极限定理在机器学习线性回归中的重要性
人工智能·机器学习·线性回归
Blossom.11812 小时前
基于区块链的去中心化身份验证系统:原理、实现与应用
运维·服务器·网络·人工智能·机器学习·去中心化·区块链