
希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持!
⭐ 什么是深度学习?
人工智能、机器学习与深度学习的关系 💜
人工智能是一个综合性的领域,不仅包括
机器学习与深度学习,还包括
更多不涉及学习的方法。例如
,早期的国际象棋程序仅包含程序员精心编写的硬编码规则 (符号主义人工智能),并不属于机器学习。



- 【技术定义】机器学习:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示
- 【命名理解】深度学习:深度指的并不是利用这种方法所获取的更深层次的理解,而是指一系列连续的表示层 (参考上图:数字识别)
图解深度学习的工作原理 💜
机器学习是将输入(比如图像)映射到目标(比如标签“猫”),这一过程是通过观察许多输入和目标的示例来完成的。
-
【每层做什么:参数化】神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一串数字。用术语来说,每层实现的变换由其权重来
参数化(parameterize)
- 前向传播 ⤵️ 得到预测值
y'
- 前向传播 ⤵️ 得到预测值
-
【参数更新的依据:损失函数】找到所有参数的正确取值可能是一项非常艰巨的任务,特别是考虑到修改某个参数值将会影响其他所有参数的行为。想要控制一件事物,首先需要能够观察它。想要控制神经网络的输出,就需要能够衡量该输出与预期值之间的距离。这是
神经网络损失函数(loss function)
的任务,该函数也叫目标函数(objective function)
-
【参数更新的方法:优化器】深度学习的基本技巧是利用损失函数作为反馈信号来对权重值进行微调,以降低当前示例对应的损失值。这种调节由
优化器(optimizer)
来完成- 反向传播(backpropagation) ⤴️ 调节参数
深度学习的几何解释 💜
神经网络完全由一系列张量运算组成,而这些张量运算都只是输入数据的几何变换。因此,你可以将神经网络解释为高维空间中非常复杂的几何变换,这种变换可以通过许多简单的步骤来实现。
分享一个书中描述的非常形象的解释:
对于三维的情况,想象有两张彩纸:一张红色,一张蓝色。将其中一张纸放在另一张上。现在将两张纸一起揉成小球。这个皱巴巴的纸球就是你的输入数据,每张纸对应于分类问题中的一个类别。神经网络(或者任何机器学习模型)要做的就是找到可以让纸球恢复平整的变换,从而能够再次让两个类别明确可分。通过深度学习,这一过程可以用三维空间中一系列简单的变换来实现,比如你用手指对纸球做的变换,每次做一个动作:![]()
⭐ 深度学习的通用工作流程
后续教程中,我会对其中每步的细节有具体的展开
步骤 | 做什么 |
---|---|
1. 定义问题 | 搞清楚要解决的问题是什么:分类 or 回归 or 生成 |
2. 根据问题目标选择指标 | 怎么评断成功:准确率 or 召回率 or 自定义 |
3. 确定评估方法 | 衡量当前进展:预留验证集 or K 折交叉 or 其他 |
4. 确定损失函数 | 衡量当前进展:分类-crossentropy or 回归-MSE or 其他可微函数 |
5. 收集数据集 (假设输出是足够根据输入进行预测的) | 输入什么 输出什么 → 获取可用数据集 |
6. 预处理数据 | 格式化为张量→ 归一化→ 特征工程(人工构建更易学习的) |
7. 寻找模型欠拟合边界 | 找到一个小网络初具功效 |
8. 寻找模型过拟合边界 | 扩大模型规模(更多更大的层) 、更久的训练 |
9. 靠近理想模型 (最耗时的一步!加油~) | 解决过拟合问题&调节超参数 |
请记住,机器学习中无处不在的对立是优化和泛化的对立,理想的模型是刚好在欠拟合和过拟合的界线上,在容量不足和容量过大的界线上。为了找到这条界线,你必须穿过它。
TIPS:
- 数据量较小的情况下,从头训练网络(按前文步骤)难度大(因为很容易发生过拟合)
可以利用预训练网络提升效果 👉使用预训练网络的两种方法
参考书籍:Python 深度学习