深度学习入门笔记系列 ( 二 )

简介: 本系列将分为 8 篇 。今天是第二篇 。主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 。

1.Tensor 、Flow 、Session 、Graphs

TensorFlow 从单词上可以分成 Tensor 和 Flow 两个单词 。Tensor 即张量 ,表明了其数据结构 ;Flow 翻译可理解为流 ,直观的表达了张量之间通过计算相互转化的过程 ;还有一个很重要的概念 Session ,即对话的概念 ,用于执行定义好的运算 。简单的理解 ,Flow 体现了 TF 框架的计算模型 ;Tensor 体现了 TF 框架的数据模型 ;二者可组织数据和定义相应的运算 ,并用图(graphs)表示计算任务 。图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor 。而对话则是用于执行定义好的运算 ,即运算都是在 session 中执行的 。

上述介绍结构见下图 ,搭配起来就比较好理解了 。

59.jpg


值得一提的是运算的执行在会话中进行 ,如何进行有两种方式 ,一个是明确调用会话生成和关闭 。另一个是利用 with 上下文管理器 。这里建议利用 python 上下文管理器的机制 ,将所有的计算放在“with”内部即可 ,这样一来 ,当上下文管理器退出时候会自动释放所有资源 ,这样既解决了因为异常退出时资源释放的问题 ,还解决了忘记调用 session.close 函数产生的资源泄露 。上述介绍举例如下 :

60.jpg


2.loss function

首先得了解什么是代价函数 ,也可以是说是损失函数 。指的是一个可以衡量预测值和真实值差异的函数 ,具体形式可以有多种选择 。我们可以用 C(ω) 表示代价函数 ,根据其意义 ,不难理解代价函数有如下性质 :

  1. 对于每种算法来说 ,代价函数不是唯一的 ;
  2. 代价函数是参数 ω 的函数 ;
  3. 总的代价函数可以用来评价模型的好坏 ,代价函数越小说明模型和参数越符合训练样本 (x, y) ;
  4. 代价函数是一个标量 ;


常用的代价函数有如下几种 :

  1. 二次代价函数(quadratic cost)

61.jpg


交叉熵代价函数(cross-entropy)

62.jpg


  1. 对数释然代价函数(log-likelihood cost)


总的来说 ,我们在训练过程中 ,目标就是通过训练使得代价函数尽可能降低 ,从而使得预期输出和实际输出接近 。


3.欠拟合和过拟合

在我们机器学习或者训练深度神经网络的时候经常会出现欠拟合和过拟合这两个名词 。首先欠拟合是指模型没能较好的捕捉到数据特征 ,不能够较理想的拟合数据 ;相对的 ,过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了 ,导致在后期测试的时候不能够很好地识别数据 ,即不能正确的分类 ,模型泛化能力太差 。如下图所示(来源于吴恩达老师课程)

63.jpg


模型训练之初 ,往往是欠拟合的 ,所以我们才有进步空间 ,不断调整算法使得模型能够较好的拟合数据 。欠拟合的解决方法大体有下面几种思路 。

  1. 添加其他特征项 ,有时候我们模型出现欠拟合的时候是因为特征项不够导致的 ,可以添加其他特征项来很好地解决 。
  2. 添加多项式特征 ,这个在机器学习算法里面用的很普遍 ,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强 。例如上面的图片的例子 。
  3. 减少正则化参数 ,正则化的目的是用来防止过拟合的 ,但是现在模型出现了欠拟合 ,则需要减少正则化参数 。

至于过拟合 ,可以想象一个很复杂的网络 ,包含参数相当的多 ,但是我们用于训练的数据却相对有限 。反复的训练之下 ,模型学习太过彻底 。如上图过拟合图中在训练集上十分精确 ,但是在测试集中却得不到较理想的结果 ,即模型的泛化能力很差 。常见的解决办法如下 :

  1. 重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
  2. 增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
  3. 采用正则化方法。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。
  4. 采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。

本篇较为干燥 ,小詹自己写的都看不下去了 。但是上边提到的一些概念是本系列文章中会用得到的 ,比如过拟合的一些处理在 mnist 识别分类中就可以用上 。所以为了方便查看理解 ,还是枯燥一点写(读)下去吧 ,如果有纰漏 ,敬请批评指正 。


最后 ,如果觉得这个系列不错 ,记得扫码关注噢 !(大佬不在,小可爱代发,请多多指教!

相关文章
|
11天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
1月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
100 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
1月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
63 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
87 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(二):CKPT 转换成 PB格式文件
将TensorFlow的CKPT模型格式转换为PB格式文件,包括保存模型的代码示例和将ckpt固化为pb模型的详细步骤。
34 2
深度学习之格式转换笔记(二):CKPT 转换成 PB格式文件
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习之格式转换笔记(一):模型文件pt转onnx转tensorrt格式实操成功
关于如何将深度学习模型从PyTorch的.pt格式转换为ONNX格式,然后再转换为TensorRT格式的实操指南。
121 0
深度学习之格式转换笔记(一):模型文件pt转onnx转tensorrt格式实操成功
|
1月前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
54 0
|
1月前
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
63 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
1月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
152 1
深度学习环境搭建笔记(一):detectron2安装过程
|
1月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
184 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
下一篇
无影云桌面