1. 深度学习概述

1. 深度学习概述 0. 深度学习发展史1. 深度学习前言2. 深度学习概述深度学习Deep Learning机器学习有一个问题机器学习在处理 图像 和文本 数据方面能力较弱。所以在这里要分别针对 图像 和文本类的数据做一些进阶深度学习 主要来处理图像和文本图像有 CNN 卷积神经网络、文本有 RNN 循环神经网络1. 如针对图像类的有 CNNConvolutional Neural Network 卷积神经网络即卷积神经网络 CNN 主要是处理图像 – CV处理文本类的有RNNRecurrent Neural Network 循环神经网络即循环神经网络 RNN 主要处理文本 -- NLP2.接下来是他们的分层对于 CNN1️⃣ 卷积层提取图像局部特征的会涉及到一个卷积核 又叫滤波器会得到一个特征图 Feature Map2️⃣ 池化层用来做两个动作准确来说是两个字“降维”因为他会提取到大量的特征而池化一定要降维因为图像一般我们用的是 HWC 这三个参数HWC 指的是高、宽、通道如 写一个 32 * 32 * 3 指的就是 高和宽都是32像素、3指的是3通道即 RGB 3通道图像是这样来做的但层在处理时就不是了层在处理时我们需要把 C 放在前面即 CHW意味着需要的结果是 (3, 32, 32) 即 3个32 * 32 像素图就R 和 G 和 B 就红绿蓝这种情况下需要学习一下如何对 32 * 32 * 3 这个维度做转换把维度从 32 * 32 * 3 转成 (3, 32, 32) 这就是张量要学习的内容3️⃣ 全连接层对于 RNN1️⃣ 词嵌入层往下有 2️⃣ 循环网络层最后也是叫 3️⃣ 全连接层难点在词嵌入 和 循环网络尤其是词嵌入后期会做案例CNN 案例是 图像分类CIFAR10数据集 即CNN会做一个图像分类的案例用到 CIFAR10数据集此数据集很大训练集5万张图片、测试集 1 万张图片整个数据集加起来是 177MB(兆B)需要把文件夹整个加到项目目录下进行使用RNN 案例是 歌词AI生成器之前在python进阶中学习闭包装饰器时有一个杰伦歌词的数据集数据加载器分批生成数据的文件文本中共有5819条数据此中对此数据进行切词用到街8分词器前面 在朴素贝叶斯唯一一个靠概率进行分类的机器学习的算法的学习中做了一个商品评论、情感分析的案例一共20条评论先通过 J街8 L Cart对它进行切词朴素贝叶斯切完词后得到 37个词把这37个词带入到每个评论中如果评论中有这个词就用 1表示、没有就用 0表示所以最终所有的文本全都是一个 37 01 01的列表组成。此案例中用到的歌词数据集和之前的一样也是5819条数据对这些歌词进行切词切词后去重 会得到 5703个去重后的词要把这些词生成序号生成对应的维度即数值再来做预测如给到一个词 星星则围绕 星星 这两个字再给到一个长度来生成 50个词凑成一段歌词给到的词必须是前面去重后的 5703中的已有的词如果没有的话就无法实现3.全连接层是 CNN和 RNN两者都有的一个层对于全连接有一个叫 ANN (Artificial neural network 人工神经网络)它是由3层组成1️⃣ 输入层只会有1层2️⃣ 隐藏层可以有n层3️⃣ 输出层也是只能有1层所以说 后面提到的 深度学习的神经网络的深度它和 隐藏层有关所以 隐藏层就是 层的深度一般是越深越好但具体还要看业务需求4.学习时无论是CNN、RNN、ANN 其底层都是通过张量Tensor来做处理的后面就不会涉及到 标量、向量、矢量的概念了(标量是一个值的、向量可理解为一个列表、矢量是多维的)这些在这里统一都被称之为张量。张量是学习其他内容的基础如 图像是靠 高宽通道即 HWC要转成 CHW就是利用张量来完成的张量中有很多函数都能实现如 reshape重构…。张量的学习使用 Pytorch 框架之前的 TensorFlow框架已过时Pytorch 框架和TensorFlow框架的主要区别是①第一点关于生成的计算步骤(即计算路径)TensorFlow 生成的是一个静态湖 即当构建完执行流程后除非模型训练完中间是不能做修改的Pytorch 生成的执行图是一个 动态图可以边生成边修改这样会更加灵活②第二点 Pytorch 的API很简单、TensorFlow 的API过于复杂所以一般用 Pytorch 它是动态图的且 API 简单、功能强大所以学习步骤张量 Pytorch2days -- ANN人工神经网络2days -- CNN 卷积神经网络1day -- RNN 循环神经网络RNN 放在 CNN 之后学习的原因是CNN 进阶中有一个框架 CVComputer Version 计算机视觉RNN 中的技术 NLP自然语言处理ANN 只能处理二维数据给到 RNN和 CNN的数据时需要对数据降维文本一般用二维图像、语音一般都是多维的图像 一般用 CNN语音、文本一般用 RNN可以通过频谱图技术把语音转换成数值接着对语音做分析3. 流行深度学习框架4. 什么是深度学习Artificial Intelligence AI 人工智能仿智即用电脑模仿人类让电脑像人类那样理性的思考1. AI 包含 Machine Learning ML 机器学习机器学习中最重要的是 特征工程这一块是由人来做特征工程这个事的1️⃣ 机器学习的步骤加载数据、数据预处理、特征工程、模型训练、模型预测、模型评估2️⃣ 特征工程特征提取、特征预处理、特征降维、特征选择、特征组合3️⃣ 特征预处理归一化、标准化归一化是将值映射到 [0, 1] 之间(当前值 - 该列最小值) /(该列最大值 - 该列最小值)但它容易受到异常值的影响因为只考虑了最大和最小值所以需要标准化使用到该列的均值和方差。2. ML包含 Deep Learning DL深度学习深度学习的特征工程不仅可以人来做、也可以算法来做如图中的就是神经网络左边是输入层、右边是输出层、中间的一大段是隐藏层蓝色是隐藏层1、黄色是隐藏层2、右边蓝色是隐藏层3、可以有更多的45…层里面连接线的一个个点叫 做神经元每个神经元做两件事加权求和、激活函数3. 机器学习是实现人工智能的一种途径。深度学习是机器学习的一个子集也就是说深度学习是实现机器学习的一种方法。深度学习是机器学习中一种基于对数据进行特征学习的算法。深度学习是基于人工神经网络深度是指网络中使用多层如图画出的3个神经元竖着的并不是3层横着的才是 3层即便每层只有一个也还是 3层但每层一个是有问题的正常不会每层只有一个每层神经元至少两个每层都通过非线性变换处理数据并逐渐提取出更复杂、更抽象的特征输入层对接的是特征一行样本可以有多列数据一列数据称为特征 即输入层的神经元的个数与特征列有关样本有几个特征(或者说几列)则输入层就有几个神经元对于隐藏层的第一层(中间部分第一层)假设有100个神经元它会和输入层的每个神经元连接 即下一层的所有神经元会和上一层的每个神经元建立连接此为全连接层图一中 RNN 和 CNN 都有的 全连接层全连接一般有两个单词Linear、FCFull Connected即假设第1层有4个特征第2层有100个神经元则算法就会从前一层的4个特征中抽取出 100个特征用于第 2层怎么抽的、抽的哪个特征都不知道因为看到的都是数值若第 3层有100个神经元则会从 第2层的100个特征中抽取 100个特征用于第 3层即写了几个就会通过算法抽取多少个对于机器学习1️⃣ Input是输入、2️⃣ Output是输出、中间要经历3️⃣ Feature extraction 特征提取 -- 由人来做的、4️⃣ Classification 分类机器学习中有3类问题分类、回归、聚类聚类算法在实际项目中只有在项目初期时才会用到K-Means算法实际工作中基本用不到、分类问题用的最多熟练了解分类问题的指标 如精确度、召回率、F1值、ROC曲线 、AUC值等对于深度学习1️⃣ Input是输入、2️⃣ Output是输出、中间要经历3️⃣ Feature extraction Classification 由算法来做特征提取里面是黑盒的它的可解释性差如 图中为什么是3 层每层3个神经元 这样的效果好 这是由算法来计算决定的无法解释如果前一层传的是张三、李四不能抽取出 体积8 这种所以张量中只能是数值 且只能是浮点型或者布尔值因为布尔值会把 true看成1、false看成0 来做处理所以可说成 张量中只能是数值即从前一层的一堆数字中 基于某些公式再次抽取 一些数字用于后一层层层如此最终基于这些数值之间的关系来做预测输出结果图中每一个圆圈就叫一个神经元一个神经元做两件事先做加权求和、再做激活函数激活函数 就是把加权求和的结果映射成一个概率类似于逻辑回归这么做的原因是假设没有激活函数则整个神经网络全部都在做 加权求和意味着整个神经网络只能做线性问题不能做分类问题正是因为在加权求和的基础上做了激活函数有了概率神经元才能做分类问题换言之深度学习既能做分类问题、又能做回归问题所以 ML 和 DL 两者最大的区别是特征工程到底是 人做 还是 算法做人做就是 机器学习 ML算法做就是深度学习 DL5. 深度学习的特点多层非线性变换每一层都有神经元每个神经元都要做 加权求和 和 激活函数所以1️⃣ 多层非线性的意思是①深度学习由多个层次组成②每一层都应用非线性激活函数对输入数据进行变换每个神经元都先做加权求和在做激活函数这样做的目的是让深度学习既能处理回归、也能处理分类此为多层非线性变换这个非线性指的就是激活函数增加了一个分类的概率的值2️⃣ 自动特征提取由算法自动帮忙提取每个神经元都会和前层所有神经元连接此为全连接的由来3️⃣ 大数据和计算能力严格意义上讲与深度学习的关系并不大主要在硬件上4️⃣ 可解释性差5.1 什么叫反向传播对于正向传播数据特征从左到右逐层传递即先给到输入层输入层处理完后给到隐藏层隐藏层再给到输出层此为正向传播对于反向传播后一层的每一个神经元都要与前一层的每一个神经元做加权求和即多元线性回归加权求和y wx b对于黄色框的神经元来讲它需要6个参数即 5wb5即此神经元所在层的上一层即输入层有 5个神经元即x5再加一个b所以此神经元共有6个参数所在层的其它神经元也有6各参数对于它后一层的每个神经元都有 7个参数6个w b 7。正向传播传播到最后一层拿到结果了就能算出损失算出损失后基于损失 逆向传播即反向传播来更新权重更新权重每一层都有很多 w b即 w参数所以会基于这次的损失 来逆向更新w所有的参数更新完后再进行一次正向传播又可以再预测一次结果再算出损失再来反向更新 w参数这样会导致 参数越来越接近正确值模型拟合效果就会越来越好总结正向传播就是从前往后算出结果的过程逆向反向传播是拿着结果来反推更新前面的参数此为反向传播6. 常见的深度学习模型主要记住CNN 卷积神经网络、RNN 循环神经网络卷积神经网络CNN卷积层、池化层、全连接层这些是隐藏层、还有输入层、输出层他们的区别都在于隐藏层卷积神经网络 CNN 主要是处理图像 – CV循环神经网络RNN主要处理文本 -- NLP自编码器Transformer…总结深度学习 主要来处理图像和文本图像有 CNN 卷积神经网络、文本有 RNN 循环神经网络7. 深度学习的应用场景一共四个方面1️⃣ 计算机视觉Computer Version 处理图像的2️⃣ 自然语言处理Natural Language Processing NLP处理语言的3️⃣ 大语言模型Large Language Model…3️⃣ 推荐系统Recommendation Systems基于历史的评分和行为推荐相关的电影、音乐、电视剧4️⃣ 多模态大模型VLM/ MMM什么叫多模态之前的大模型只处理一种如倾向处理文本的、倾向处理视频的、倾向处理音频的即一种模型只处理一种但多模态大模型的一个大模型可以处理所有的任务只要用这一个模型即可