一、深度学习概述
1. 深度学习概念
1-1. 深度学习基本概念
- 深度学习是机器学习的一个分支
- 基于人工神经网络(模仿人脑结构)
- 通过多层网络自动学习特征
- 能够处理复杂的模式识别问题
1-2. 深度学习的优点与缺点
优点
- 强大的特征学习能力
- 可以处理复杂问题
- 准确率高
- 自动化程度高
缺点
- 需要大量数据
- 计算资源要求高
- 训练时间长
- 可解释性差
1-3. 深度学习与传统机器学习区别
主要区别在于:传统机器学习是人工进行特征提取,深度学习是通过神经网络从数据里提取特征。
对比维度 | 机器学习 | 深度学习 |
---|---|---|
特征提取 | • 需要人工设计特征 • 依赖领域专家经验 • 特征工程占据大量工作 | • 自动学习特征 • 端到端学习 • 减少人工干预 |
举例说明 | 图像识别猫: • 人工定义特征:耳朵形状、胡须特征等 • 手动提取这些特征 • 基于提取的特征进行分类 | 图像识别猫: • 直接输入原始图像 • 网络自动学习关键特征 • 自动完成特征提取到分类的全过程 |
数据要求 | • 数据量要求相对较小 • 可以处理结构化数据 | • 需要大量数据 • 特别适合非结构化数据 |
计算复杂度 | • 计算量较小 • 训练速度快 | • 计算量大 • 训练周期长 |
2. 深度学习框架
2-1 深度学习框架定义
深度学习框架是一个软件库,提供了构建、训练和部署深度学习模型所需的工具和接口。它是连接理论与实践的桥梁,使开发者能够更高效地实现深度学习算法。
2-2 TensorFlow框架
利用数据流图进行数值计算的开源软件库;
可以在众多异构的系统上方便移植;
2-3 Torch 框架
很好的学习RNN途径
2-4 PyTorch 框架
2-5 Caffe框架
2-6 框架的选择
特点 | TensorFlow | Torch | PyTorch | Caffe |
---|---|---|---|---|
开发公司/组织 | 谷歌 (Google) | Facebook 人工智能研究院 (FAIR) | Facebook 人工智能研究院 (FAIR) | 伯克利 AI 研究中心 (BAIR) |
首次发布 | 2015年 | 2002年(Lua Torch) | 2016年 | 2014年 |
编程语言 | Python、C++、Java、Go 等 | Lua | Python、C++ | C++ |
模型构建方式 | 静态计算图(TF 1.x),动态计算图(Eager Execution, TF 2.x) | 动态计算图 | 动态计算图 | 静态计算图 |
易用性 | 中等,使用 Keras 可以简化模型构建 | 较低,基于 Lua 语言,学习曲线较陡峭 | 高,API 简洁直观,易于调试 | 中等,模型定义需编写配置文件 |
性能 | 高,支持 GPU 和 TPU,加上分布式训练 | 中等,性能依赖于 Lua 的效率 | 高,优化良好的动态计算图,支持 GPU 和分布式训练 | 高,专注于图像处理任务,优化良好 |
生态系统 | 丰富,包含 TensorFlow Hub、TensorFlow Lite、TensorFlow.js 等 | 较小,社区活跃度不及 PyTorch 和 TensorFlow | 丰富,包含 TorchVision、TorchText、TorchServe 等 | 较小,主要集中在视觉任务 |
社区和支持 | 广泛的社区支持,丰富的文档和教程 | 社区较小,主要集中在研究人员和特定领域 | 活跃且快速增长的社区,丰富的第三方资源 | 社区规模较小,主要用于特定应用场景 |
应用领域 | 广泛,涵盖计算机视觉、自然语言处理、强化学习等 | 主要用于计算机视觉和自然语言处理 | 广泛,涵盖研究和生产环境中的各种应用 | 主要集中在计算机视觉领域 |
调试和可视化工具 | TensorBoard 提供强大的可视化支持 | 限制较多,缺乏统一的可视化工具 | 支持通过第三方工具如 TensorBoardX 进行可视化 | 基本的可视化工具,功能有限 |
移动和嵌入式支持 | TensorFlow Lite 提供优秀的支持 | 支持有限,主要依赖第三方集成 | 支持通过 PyTorch Mobile | 支持通过 Caffe2(现已合并入 PyTorch) |
学习资源 | 丰富的官方教程、文档和在线课程 | Lua 资源相对较少,需依赖社区贡献 | 丰富的官方教程、文档和社区资源 | 资源较少,主要依赖官方文档和社区贡献 |
扩展性 | 高,支持自定义操作和模块 | 高,基于 Lua 可灵活扩展 | 高,易于定义自定义层和模块 | 中等,扩展需通过配置文件进行 |
3 神经网络
3-1 神经网络基础
3-2 神经网络租车
4. 激活函数
4-1 激活函数定义:
- 激活函数是一种在人工智能神经网络的神经单元桑运行的函数
- 激活函数是神经网络中引入非线性变换的数学函数
- 旨在帮助网络学习数据中的复杂模式
- 负责将神经元节点的输入映射到输出端。
- 用于决定神经元是否应该被激活。
4-2 常见激活函数:
Sigmoid激活函数
ReLU
Tanh
4-3 sigmoid激活函数
4-4 Tanh激活函数
4-5 ReLU激活函数
二、多层感知机
1. 感知机概述
2. 多层感知机
2-1 多层感知机概述
多层感知机是一种前馈神经网络,是最基础和经典的深度学习模型之一。
多层感知机由三类层构成:
- 输入层:接收原始数据
- 隐藏层:可以有一层或多层,负责特征提取和转换
- 输出层:产生最终预测结果
多层感知机主要特点:
- 每层神经元都与下一层全连接
- 使用非线性激活函数(如ReLU、sigmoid等)
- 通过反向传播算法训练
- 可以用于分类和回归问题
3. BP神经网络
类别 | 说明 |
---|---|
基本定义 | BP(Back Propagation)神经网络是一种基于误差反向传播算法的多层前馈神经网络 |
工作原理 | 前向传播: • 输入数据从输入层向前传递 • 经过隐藏层处理 • 最终在输出层产生结果 反向传播: • 计算实际输出与期望输出的误差 • 误差从输出层向输入层反向传播 • 不断调整网络权重和偏置 |
学习过程 | 1. 初始化网络权重和偏置 2. 输入训练样本 3. 计算实际输出 4. 计算误差 5. 反向传播更新参数 6. 重复步骤2-5直到满足条件 |
主要特点 | • 具有非线性映射能力 • 自学习和自适应能力 • 泛化能力强 • 容错性好 |
关键参数 | • 学习率 • 隐藏层数量 • 每层神经元数量 • 激活函数 • 迭代次数 |
优点 | • 适用性广 • 拟合能力强 • 可以解决复杂的非线性问题 |
缺点 | • 可能陷入局部最小值 • 训练时间可能较长 • 网络结构难以确定 • 可能出现过拟合 |
应用领域 | • 模式识别 • 预测分析 • 图像处理 • 语音识别 • 自动控制 |