神经网络与深度学习(田冉)

课程简介

深度学习是人工智能的核心技术之一,正在对我们生活的各个方面产生深远的影响。然而,这个领域对于初学者来说,无疑是困难和挑战重重的。过于复杂的数学公式,复杂的编程技巧以及成百上千行代码,都使得初学者在踏上深度学习的道路时,感到畏惧甚至放弃。我深感这些问题的存在,并坚信需要一本全面、深入且容易理解的课程来解决这些问题。因此我希望能够借助这本课程,帮助你避开我所遭遇的困难,更快更好地掌握深度学习相关的知识与技能。为了实现这个目标,我尽可能地把握两个重要的方向。首先,我希望本课程能够明确地解释和推导那些复杂的数学公式,并通过实际的编程例子,帮助读者理解和应用这些公式。其次,我尽量将理论知识与实践应用代码结合起来,以确保同学们在掌握理论知识的同时,也能有效地应用这些知识来解决实际问题。

本课程不仅包含了大量的公式推导和编程实例,同时也穿插了许多名人名言和思政内容,以及一些关于算法思路的讨论。我希望这些内容能帮助您更深入地理解深度学习,理解它的发展脉络,以及它是如何与我们生活相联系的,也希望这些思想能够启发读者,领悟其背后的哲学和生活联系,培养社会责任感和伦理意识,从而正确运用人工智能技术,促进科技与社会的和谐发展。

本课程已录制教程,
1. CG平台慕课可以看到完成的视频

2. B站视频(前5章) https://www.bilibili.com/video/BV155411t7ad/ 
由于视频难免有错误,还请大家在答疑中指出,谢谢。

注意:请各位同学在登录的第一时间在个人信息中录入手机号和邮箱,用于课堂签到和找回密码。

教师简介

田冉  tianran@nwnu.edu.cn

工学博士、博士生导师,硕士生导师。

长期致力于智能决策研究,目前主要探索智能运筹优化问题以及产业应用与大模型的结合。近年来在Transportation Research Part E: Logistics and Transportation Review、 IEEE Transactions on Intelligent Transportation Systems、Expert Systems with Applications 等行业顶刊发表论文多篇,获国家、省市级项目、发明专利多项。

  1. 智能运筹优化:基于深度学习、强化学习和大模型研究复杂系统优化方法,解决运筹优化问题(如库存优化、路径规划、装箱优化等)。
  2. 时序数据预测:基于深度学习研究动态场景中的复杂时序数据预测问题(如电力预测、补货预测、交通流预测等)。

硕士、博士 研究生招生广告:

非常欢迎热爱编程,对人工智能有强烈探索欲,有软硬件项目研发经验,有Kaggle、天池等竞赛的比赛经验,写过技术类博客,有Github开源项目或者发表过学术论文的同学们加入我们。

先导课程

线性代数、微积分、概率论

教学计划

第1章 深度学习绪论

1.1 人工智能与深度学习

1.2 深度学习的发展历程

1.2.1 深度学习的基础

1.2.2 深度学习的起步

1.2.3 深度学习的复兴

1.2.4 深度学习的热潮

1.2.5 什么是深度学习

1.3 深度学习的典型应用

1.3.1 计算机视觉

1.3.2 语音识别

1.3.3 自然语言处理

1.3.4 自动驾驶

1.3.5 运筹优化

1.4 小结

1.5 习题

第2章 深度学习编程基础

2.1 基于Numpy的数组编程

2.1.1 基础知识

2.1.2 创建数组

2.1.3 索引与切片

2.1.4 广播机制

2.1.5 数组的操作与运算

2.2 基于Pandas的数据处理

2.2.1 读取、写入数据

2.2.2 基本数据结构

2.3 基于Matplotlib的数据可视化

2.3.1 绘制线图

2.3.2 自定义绘制

2.3.3 3D图形绘制

2.4 小结

2.5 习题

第3章 机器学习基础

3.1 机器学习的基本概念

3.2 机器学习的三要素:以回归问题为例

3.2.1 模型:线性方程

3.2.2 学习策略:均方差损失函数

3.2.3 优化方法:梯度下降

3.2.4 实战1:基于梯度下降法的线性回归模型

3.2.5 回归问题的其他损失函数

3.3 二分类问题

3.3.1 二分类问题简介

3.3.2 模型:Logistic函数

3.3.3 学习策略:交叉熵损失函数

3.3.4 优化方法:梯度下降

3.3.5 实战2:逻辑回归解决二分类问题

3.4 多分类问题

3.4.1 多分类问题拆分策略

3.4.2 SoftMax回归

3.4.3 One-hot编码

3.4.4 优化方法

3.4.5 实战3:基于Softmax回归解决多分类问题

3.4.6 分类问题的其他损失函数

3.5 泛化误差

3.5.1 偏差、方差与噪声

3.5.2 偏差-方差困境

3.5.3 欠拟合与过拟合

3.5.4 正则化

3.6 小结

3.7 习题

第4章 神经网络基础

4.1 感知机

4.1.1  感知机模型

4.1.2  实战4:基于感知机算法解决二分类问题

4.2 非线性模型

4.2.1  神经元

4.2.2  激活函数的饱和性质

4.2.2  饱和激活函数与其导数

4.2.3  非饱和激活函数与其导数

4.2.4  Softmax函数与其导数

4.3 前馈神经网络结构

4.3.1  均方差损失函数梯度

4.3.2  交叉熵损失函数梯度

4.4 神经网络的梯度

4.4.1  神经元梯度

4.4.2  全连接层梯度

4.4.3  链式法则

4.4.4  梯度计算

4.5 反向传播算法

4.5.1 反向传播算法训练过程

4.5.2 实战5:基于随机梯度下降法的MNIST图片分类

4.6 小结

4.7 习题

第5章 Tensorflow框架

5.1 深度学习框架

5.2 变量与张量

5.2.1  变量

5.2.2  张量的创建、计算与转换

5.2.3  张量的合并与拆分

5.2.4  张量的数据统计

5.2.5  张量的填充、复制与限幅

5.3 实战6:数据集的加载与预处理

5.4 实战7:tf.Keras接口的调用与可视化

5.5.1  常用模块介绍

5.5.2  模型的装配、训练和测试

5.5.3  模型的保存与读取

5.5.4  自定义网络层和模型

5.5.5  测量工具与可视化

5.5 小结

5.6 习题

第6章 卷积神经网络

6.1 全连接前馈神经网络存在的问题

6.1.1 深层神经网络模型参数过多

6.1.2 感受野

6.1.3 权值共享

6.2 卷积运算

6.2.1 一维卷积

6.2.2 二维卷积

6.2.3 梯度计算

6.2.4 通道与卷积核

6.3 实战8:基于TF2的卷积运算

6.4 池化

6.4.1 最大池化

6.4.2 平均池化

6.4.3 全局平均池化

6.4.4 混合池化

6.5 卷积网络经典模型LeNet-5

6.5.1 卷积网络模型结构

6.5.2 实战9:基于LeNet-5的MNIST图片分类实战

6.6 小结

6.7 习题

第7章 深度卷积神经网络

7.1 AlexNet模型

7.1.1 模型结构

7.1.2 深度卷积网络的常用技术

7.1.3 实战10:基于AlexNet的图片分类实战

7.2 模型中的标准化(Normalization)

7.2.1 标准化处理的目的

7.2.2 标准化处理的方法

7.3 VGG模型

7.3.1 模型结构与优缺点

7.3.2 实战11:基于VGG的CIFAR-10图片分类实战

7.4 GoogLeNet模型

7.4.1 Inception v1

7.4.2 Inception v2

7.4.3 Inception v3

7.4.4 Inception v4

7.4.5 实战12:基于简版GoogLeNet的CIFAR-10图片分类实战

7.5 ResNet模型

7.5.1 深层神经网络的问题

7.5.2 残差学习

7.5.3 模型结构

7.5.4 实战13:基于ResNet的CIFAR-10图片分类实战

7.6 卷积的变体

7.6.1 转置卷积

7.6.2 空洞卷积

7.6.3 空间可分离卷积

7.6.4 深度可分离卷积

7.6.5 非对称卷积

7.7 小结

7.8 习题

第8章 循环神经网络

8.1 序列表示方法

8.1.1 单词的One-hot编码

8.1.2 嵌入层

8.1.3 词嵌入技术

8.1.4 实战14:基于Skip-Gram的单词向量表示

8.2 循环神经网络

8.2.1 循环神经网络结构

8.2.2 梯度的反向传播

8.2.3 SimpleRNNCell

8.2.4 SimpleRNN

8.2.5 循环神经网络存在的问题

8.3 长短时记忆网络

8.3.1 LSTM模型结构

8.3.2 LSTM的各种变体

8.3.3 实战15:基于LSTM的情感分类实战

8.4 门控循环神经网络

8.4.1 GRU模型结构

8.4.2 实战16:基于GRU的情感分类实战

8.5 循环神经网络的变种网络

8.5.1 堆叠循环神经网络

8.5.2 双向循环神经网络

8.5.3 递归神经网络

8.6 小结

8.7 习题

第9章 无监督学习

9.1 有监督与无监督

9.2 数据降维算法

9.2.1 主成分分析

9.2.2 基于特征值分解

9.2.3 基于奇异值分解

9.2.4 实战17:对MNIST数据集进行PCA降维

9.3 更多的数据降维算法

9.4 自编码器

9.4.1 自编码器模型

9.4.2 堆叠自编码器

9.4.3 实战18:基于自编码器的手写数字图片重建实战

9.5 稀疏自编码器

9.5.1 稀疏编码

9.5.2 字典学习

9.5.3 字典矩阵和稀疏编码求解

9.5.4 稀疏自编码器模型

9.5.5 实战19:基于稀疏自编码器的手写数字图片重建实战

9.6 自编码器的变种网络

9.7 小结

9.8 习题

第10章 深度生成模型

10.1 变分自编码器

10.1.1 自编码器的局限性

10.1.2 概率密度估计

10.1.3 生成样本

10.1.4 变分推断

10.1.5 重参数化技巧

10.1.6 实战20:基于变分自编码器的手写数字图片重建实战

10.2 生成对抗网络

10.2.1 博弈学习

10.2.2 生成对抗网络结构

10.2.3 模型训练

10.2.4 实战21:基于生成对抗网络的随机数据生成实战

10.3 深度卷积生成对抗网络

10.3.1 DCGAN的设计原则和网络结构

10.3.2 实战22:基于DCGAN的手写数字图片生成实战

10.4 Wasserstein GAN

10.4.1 GANs存在的问题

10.4.2 WGAN的改进

10.4.3 实战23:基于WGAN的手写数字图片生成

10.5 GAN的扩展模型

10.5.1 条件生成对抗网络(CGAN)

10.5.2 InfoGAN

10.5.3 BigGAN

10.5.4 GAN训练中的技巧

10.6 小结

10.7 习题

第11章 强化学习

11.1 强化学习简介

11.1.1 强化学习的应用场景

11.1.2 开发框架与实验环境

11.1.3 强化学习实验环境Gym与平衡摆游戏环境

11.1.4 强化学习实验环境冰湖游戏环境FrozenLake

11.2 强化学习基础

11.2.1 马尔可夫模型

11.2.2 强化学习的场景定义

11.2.3 马尔可夫决策过程

11.2.4 强化学习的目标函数

11.3 基于动态规划的强化学习方法

11.3.1 策略迭代算法(Policy Iteration)

11.3.2 实战24:基于策略迭代算法的FrozenLake游戏

11.3.3 值迭代算法(Value Iteration)

11.3.4 实战25:基于值迭代算法的FrozenLake游戏

11.4 模型无关的强化学习方法

11.4.1 蒙特卡罗方法

11.4.2 时序差分学习方法:SARSA算法

11.4.3 实战26:基于SARSA算法的FrozenLake游戏

11.4.4 时序差分学习方法:Q-Learning算法

11.4.5 实战27:基于Q-Learning算法的FrozenLake游戏

11.5 基于值函数的深度强化学习

11.5.1 深度Q-Learning网络(DQN)

11.5.2 实战28:基于DQN的平衡摆游戏

11.6 基于策略搜索的学习方法

11.6.1 策略梯度算法

11.6.2 实战29:基于REINFORCE算法的平衡摆游戏

11.7 Actor-Critic框架与算法

11.7.1 Actor-Critic算法

11.7.2 实战30:基于AC算法的平衡摆游戏

11.7.3 更多的动作评论算法

11.8 小结

11.9 习题

第12章 大模型的技术、应用与挑战

12.1 大模型的定义与核心价值

12.1.1 大模型的技术特征

12.1.2 大模型的发展简史:从Transformer到DeepSeek的技术跃迁

12.1.3 大模型的核心能力边界(生成、推理、多模态)

12.1.4 大模型的社会影响:DeepSeek在行业落地中的生产力变革

12.2 第2章 语言模型与注意力机制基础

12.2.1 2.1 语言模型的核心数学原理(概率链式法则与生成式AI)

12.2.2 2.2 注意力机制的革命性意义

12.2.3 2.3 自注意力(Self-Attention)的数学形式与计算流程

12.2.4 2.4 传统序列模型(RNN/LSTM)的局限性

12.3 第3章 Transformer架构与代码实践

12.3.1 3.1 Transformer核心组件解析(编码器、解码器、位置编码)

12.3.2 3.2 实验1:手动实现Self-Attention机制(可视化注意力权重)

12.3.3 3.3 实验2:构建Mini-Transformer模型(编码器-解码器实战)

12.3.4 3.4 掩码机制与并行化训练优势

12.3.5 3.5 位置编码的工程实现(正弦函数 vs 学习式编码)

12.4 第4章 大模型训练与优化技术

12.4.1 4.1 分布式训练框架(数据并行、模型并行、混合并行)

12.4.2 4.2 实验3:从零训练GPT-2微型版(简化架构与硬件适配)

12.4.3 4.3 优化策略:梯度裁剪、学习率预热、混合精度训练

12.4.4 4.4 高效微调技术:LoRA与适配器网络

12.4.5 4.5 模型评估指标(困惑度、BLEU、人类对齐度)

12.5 第5章 大模型应用与挑战

12.5.1 5.1 自然语言处理(文本生成、对话系统、代码生成)

12.5.2 5.2 多模态应用(CLIP图像理解、DALL·E创意生成)

12.5.3 5.3 行业落地案例(医疗诊断助手、金融风险分析)

12.5.4 5.4 伦理挑战(偏见放大、信息泄露、责任归属)

12.5.5 5.5 可持续性问题(算力能耗与碳足迹)

12.6 第6章 前沿方向与开发者指南

12.6.1 6.1 模型压缩技术(知识蒸馏、量化、稀疏化)

12.6.2 6.2 通用人工智能(AGI)的可能性与争议

12.6.3 6.3 DeepSeek开源生态与工具链(Hugging Face、LangChain)

12.6.4 6.4 开发者资源(数据集、预训练模型、部署框架)

参考文献

考试方式

以小组形式完成自选题目,在17、18周进行PPT汇报(应用场景、算法思路、结果),在本平台提交可执行的代码和说明(jupyter notebook)

参考书目

主要参考书目:

  《神经网络与深度学习》 https://nndl.github.io/  

课外阅读:

  《深度学习》  (花书)

  《机器学习》  (西瓜书)

  《TensorFlow深度学习实战》 (TF2.0版)

    https://tensorflow.google.cn/     

    https://pytorch.org/