google doc wordpressseo门户网站
news/
2025/9/24 9:18:43/
文章来源:
google doc wordpress,seo门户网站,wordpress转微信,自己如何注册网站来源#xff5c;Sophia知乎#xff0c;https://zhuanlan.zhihu.com/p/152362317本文仅用于学术分享#xff0c;如有侵权#xff0c;联系后台作删文处理编译#xff1a;极市平台最近在做笔记查阅内容#xff0c;觉得这个总结太美观了#xff0c;真是棒#xff01;吴恩达… 来源Sophia知乎https://zhuanlan.zhihu.com/p/152362317本文仅用于学术分享如有侵权联系后台作删文处理编译极市平台最近在做笔记查阅内容觉得这个总结太美观了真是棒吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习还适合机器学习从业者和研究者复习基本概念。这不仅仅是一份课程笔记同时还是一套信息图与备忘录。从深度学习基础、卷积网络和循环网络三个方面介绍该笔记深度学习基础1. 深度学习基本概念监督学习 所有输入数据都有确定的对应输出数据在各种网络架构中输入数据和输出数据的节点层都位于网络的两端训练过程就是不断地调整它们之间的网络连接权重。左上 列出了各种不同网络架构的监督学习比如标准的神经网络NN可用于训练房子特征和房价之间的函数卷积神经网络CNN可用于训练图像和类别之间的函数循环神经网络RNN可用于训练语音和文本之间的函数。左下 分别展示了 NN、CNN 和 RNN 的简化架构。这三种架构的前向过程各不相同NN 使用的是权重矩阵连接和节点值相乘并陆续传播至下一层节点的方式CNN 使用矩形卷积核在图像输入上依次进行卷积操作、滑动得到下一层输入的方式RNN 记忆或遗忘先前时间步的信息以为当前计算过程提供长期记忆。右上 NN 可以处理结构化数据表格、数据库等和非结构化数据图像、音频等。右下 深度学习能发展起来主要是由于大数据的出现神经网络的训练需要大量的数据而大数据本身也反过来促进了更大型网络的出现。深度学习研究的一大突破是新型激活函数的出现用 ReLU 函数替换sigmoid 函数可以在反向传播中保持快速的梯度下降过程sigmoid 函数在正无穷处和负无穷处会出现趋于零的导数这正是梯度消失导致训练缓慢甚至失败的主要原因。要研究深度学习需要学会「idea—代码—实验—idea」的良性循环。2. logistic 回归左上 logistic 回归主要用于二分类问题如图中所示logistic 回归可以求解一张图像是不是猫的问题其中图像是输入x猫1或非猫0是输出。我们可以将 logistic 回归看成将两组数据点分离的问题如果仅有线性回归激活函数为线性则对于非线性边界的数据点例如一组数据点被另一组包围是无法有效分离的因此在这里需要用非线性激活函数替换线性激活函数。在这个案例中我们使用的是 sigmoid 激活函数它是值域为0, 1的平滑函数可以使神经网络的输出得到连续、归一概率值的结果例如当输出节点为0.2, 0.8时判定该图像是非猫0。左下 神经网络的训练目标是确定最合适的权重 w 和偏置项 b那这个过程是怎么样的呢这个分类其实就是一个优化问题优化过程的目的是使预测值 y hat 和真实值 y 之间的差距最小形式上可以通过寻找目标函数的最小值来实现。所以我们首先确定目标函数损失函数、代价函数的形式然后用梯度下降逐步更新 w、b当损失函数达到最小值或者足够小时我们就能获得很好的预测结果。右上 损失函数值在参数曲面上变化的简图使用梯度可以找到最快的下降路径学习率的大小可以决定收敛的速度和最终结果。学习率较大时初期收敛很快不易停留在局部极小值但后期难以收敛到稳定的值学习率较小时情况刚好相反。一般而言我们希望训练初期学习率较大后期学习率较小之后会介绍变化学习率的训练方法。右下 总结整个训练过程从输入节点 x 开始通过前向传播得到预测输出 y hat用 y hat 和 y 得到损失函数值开始执行反向传播更新 w 和 b重复迭代该过程直到收敛。3. 浅层网络的特点左上 浅层网络即隐藏层数较少如图所示这里仅有一个隐藏层。左下 这里介绍了不同激活函数的特点sigmoidsigmoid 函数常用于二分分类问题或者多分类问题的最后一层主要是由于其归一化特性。sigmoid 函数在两侧会出现梯度趋于零的情况会导致训练缓慢。tanh相对于 sigmoidtanh 函数的优点是梯度值更大可以使训练速度变快。ReLU可以理解为阈值激活spiking model 的特例类似生物神经的工作方式该函数很常用基本是默认选择的激活函数优点是不会导致训练缓慢的问题并且由于激活值为零的节点不会参与反向传播该函数还有稀疏化网络的效果。Leaky ReLU避免了零激活值的结果使得反向传播过程始终执行但在实践中很少用。右上为什么要使用激活函数呢更准确地说是为什么要使用非线性激活函数呢上图中的实例可以看出没有激活函数的神经网络经过两层的传播最终得到的结果和单层的线性运算是一样的也就是说没有使用非线性激活函数的话无论多少层的神经网络都等价于单层神经网络不包含输入层。右下如何初始化参数 w、b 的值当将所有参数初始化为零的时候会使所有的节点变得相同在训练过程中只能学到相同的特征而无法学到多层级、多样化的特征。解决办法是随机初始化所有参数但仅需少量的方差就行因此使用 Rand0.01进行初始化其中 0.01 也是超参数之一。4. 深度神经网络的特点左上 神经网络的参数化容量随层数增加而指数式地增长即某些深度神经网络能解决的问题浅层神经网络需要相对的指数量级的计算才能解决。左下 CNN 的深度网络可以将底层的简单特征逐层组合成越来越复杂的特征深度越大其能分类的图像的复杂度和多样性就越大。RNN 的深度网络也是同样的道理可以将语音分解为音素再逐渐组合成字母、单词、句子执行复杂的语音到文本任务。右边 深度网络的特点是需要大量的训练数据和计算资源其中涉及大量的矩阵运算可以在 GPU 上并行执行还包含了大量的超参数例如学习率、迭代次数、隐藏层数、激活函数选择、学习率调整方案、批尺寸大小、正则化方法等。5. 偏差与方差那么部署你的机器学习模型需要注意些什么下图展示了构建 ML 应用所需要的数据集分割、偏差与方差等问题。如上所示经典机器学习和深度学习模型所需要的样本数有非常大的差别深度学习的样本数是经典 ML 的成千上万倍。因此训练集、开发集和测试集的分配也有很大的区别当然我们假设这些不同的数据集都服从同分布。偏差与方差问题同样是机器学习模型中常见的挑战上图依次展示了由高偏差带来的欠拟合和由高方差带来的过拟合。一般而言解决高偏差的问题是选择更复杂的网络或不同的神经网络架构而解决高方差的问题可以添加正则化、减少模型冗余或使用更多的数据进行训练。当然机器学习模型需要注意的问题远不止这些但在配置我们的 ML 应用中它们是最基础和最重要的部分。其它如数据预处理、数据归一化、超参数的选择等都在后面的信息图中有所体现。6. 正则化正则化是解决高方差或模型过拟合的主要手段过去数年研究者提出和开发了多种适合机器学习算法的正则化方法如数据增强、L2 正则化权重衰减、L1 正则化、Dropout、Drop Connect、随机池化和提前终止等。如上图左列所示L1 和 L2 正则化也是是机器学习中使用最广泛的正则化方法。L1 正则化向目标函数添加正则化项以减少参数的绝对值总和而 L2 正则化中添加正则化项的目的在于减少参数平方的总和。根据之前的研究L1 正则化中的很多参数向量是稀疏向量因为很多模型导致参数趋近于 0因此它常用于特征选择设置中。此外参数范数惩罚 L2 正则化能让深度学习算法「感知」到具有较高方差的输入 x因此与输出目标的协方差较小相对增加方差的特征权重将会收缩。在中间列中上图展示了 Dropout 技术即暂时丢弃一部分神经元及其连接的方法。随机丢弃神经元可以防止过拟合同时指数级、高效地连接不同网络架构。一般使用了 Dropout 技术的神经网络会设定一个保留率 p然后每一个神经元在一个批量的训练中以概率 1-p 随机选择是否去掉。在最后进行推断时所有神经元都需要保留因而有更高的准确度。Bagging 是通过结合多个模型降低泛化误差的技术主要的做法是分别训练几个不同的模型然后让所有模型表决测试样例的输出。而 Dropout 可以被认为是集成了大量深层神经网络的 Bagging 方法因此它提供了一种廉价的 Bagging 集成近似方法能够训练和评估值数据数量的神经网络。最后上图还描述了数据增强与提前终止等正则化方法。数据增强通过向训练数据添加转换或扰动来人工增加训练数据集。数据增强技术如水平或垂直翻转图像、裁剪、色彩变换、扩展和旋转通常应用在视觉表象和图像分类中。而提前终止通常用于防止训练中过度表达的模型泛化性能差。如果迭代次数太少算法容易欠拟合方差较小偏差较大而迭代次数太多算法容易过拟合方差较大偏差较小。因此提前终止通过确定迭代次数解决这个问题。7. 最优化最优化是机器学习模型中非常非常重要的模块它不仅主导了整个训练过程同时还决定了最后模型性能的好坏和收敛需要的时长。以下两张信息图都展示了最优化方法需要关注的知识点包括最优化的预备和具体的最优化方法。以上展示了最优化常常出现的问题和所需要的操作。首先在执行最优化前我们需要归一化输入数据而且开发集与测试集归一化的常数均值与方差与训练集是相同的。上图也展示了归一化的原因因为如果特征之间的量级相差太大那么损失函数的表面就是一张狭长的椭圆形而梯度下降或最速下降法会因为「锯齿」现象而很难收敛因此归一化为圆形有助于减少下降方向的震荡。后面的梯度消失与梯度爆炸问题也是十分常见的现象。「梯度消失」指的是随着网络深度增加参数的梯度范数指数式减小的现象。梯度很小意味着参数的变化很缓慢从而使得学习过程停滞。梯度爆炸指神经网络训练过程中大的误差梯度不断累积导致模型权重出现很大的更新在极端情况下权重的值变得非常大以至于出现 NaN 值。梯度检验现在可能用的比较少因为我们在 TensorFlow 或其它框架上执行最优化算法只需要调用优化器就行。梯度检验一般是使用数值的方法计算近似的导数并传播因此它能检验我们基于解析式算出来的梯度是否正确。下面就是具体的最优化算法了包括最基本的小批量随机梯度下降、带动量的随机梯度下降和 RMSProp 等适应性学习率算法。小批量随机梯度下降通常 SGD 指的就是这种使用一个批量的数据更新参数因此大大降低了一次迭代所需的计算量。这种方法降低了更新参数的方差使得收敛过程更为稳定它也能利用流行深度学习框架中高度优化的矩阵运算器从而高效地求出每个小批数据的梯度。通常一个小批数据含有的样本数量在 50 至 256 之间但对于不同的用途也会有所变化。动量策略旨在加速 SGD 的学习过程特别是在具有较高曲率的情况下。一般而言动量算法利用先前梯度的指数衰减滑动平均值在该方向上进行修正从而更好地利用历史梯度的信息。该算法引入了变量 v 作为参数在参数空间中持续移动的速度向量速度一般可以设置为负梯度的指数衰减滑动平均值。上图后面所述的 RMSProp 和 Adam 等适应性学习率算法是目前我们最常用的最优化方法。RMSProp 算法Hinton2012修改 AdaGrad 以在非凸情况下表现更好它改变梯度累积为指数加权的移动平均值从而丢弃距离较远的历史梯度信息。RMSProp 是 Hinton 在公开课上提出的最优化算法其实它可以视为 AdaDelta 的特例。但实践证明 RMSProp 有非常好的性能它目前在深度学习中有非常广泛的应用。Adam 算法同时获得了 AdaGrad 和 RMSProp 算法的优点。Adam 不仅如 RMSProp 算法那样基于一阶矩均值计算适应性参数学习率它同时还充分利用了梯度的二阶矩均值即有偏方差/uncentered variance。8. 超参数以下是介绍超参数的信息图它在神经网络中占据了重要的作用因为它们可以直接提升模型的性能。众所周知学习率、神经网络隐藏单元数、批量大小、层级数和正则化系数等超参数可以直接影响模型的性能而怎么调就显得非常重要。目前最常见的还是手动调参开发者会根据自身建模经验选择「合理」的超参数然后再根据模型性能做一些小的调整。而自动化调参如随机过程或贝叶斯优化等仍需要非常大的计算量且效率比较低。不过近来关于使用强化学习、遗传算法和神经网络等方法搜索超参数有很大的进步研究者都在寻找一种高效而准确的方法。目前的超参数搜索方法有依靠经验聆听自己的直觉设置感觉上应该对的参数然后看看它是否工作不断尝试直到累趴。网格搜索让计算机尝试一些在一定范围内均匀分布的数值。随机搜索让计算机尝试一些随机值看看它们是否好用。贝叶斯优化使用类似 MATLAB bayesopt 的工具自动选取最佳参数——结果发现贝叶斯优化的超参数比你自己的机器学习算法还要多累觉不爱回到依靠经验和网格搜索方法上去。因为篇幅有限后面的展示将只简要介绍信息图相信它们对各位读者都十分有帮助。9. 结构化机器学习过程我们需要按过程或结构来设定我们的机器学习系统首先需要设定模型要达到的目标例如它的预期性能是多少、度量方法是什么等。然后分割训练、开发和测试集并预期可能到达的优化水平。随后再构建模型并训练在开发集和测试集完成验证后就可以用于推断了。10. 误差分析在完成训练后我们可以分析误差的来源而改进性能包括发现错误的标注、不正确的损失函数等。11. 训练集、开发集与测试集上图展示了三个分割数据集及其表现所需要注意的地方也就是说如果它们间有不同的正确率那么我们该如何修正这些「差别」。例如训练集的正确率明显高于验证集与测试集表明模型过拟合三个数据集的正确率都明显低于可接受水平可能是因为欠拟合。12. 其它学习方法机器学习和深度学习当然不止监督学习方法还有如迁移学习、多任务学习和端到端的学习等。卷积网络13. 卷积神经网络基础计算机视觉任务涉及的数据体量是特别大的一张图像就有上千个数据点更别提高分辨率图像和视频了。这时用全连接网络的话参数数量太大因而改用卷积神经网络CNN参数数量可以极大地减小。CNN 的工作原理就像用检测特定特征的过滤器扫描整张图像进行特征提取并逐层组合成越来越复杂的特征。这种「扫描」的工作方式使其有很好的参数共享特性从而能检测不同位置的相同目标平移对称。卷积核对应的检测特征可以从其参数分布简单地判断例如权重从左到右变小的卷积核可以检测到黑白竖条纹的边界并显示为中间亮两边暗的特征图具体的相对亮暗结果取决于图像像素分布和卷积核的相对关系。卷积核权重可以直接硬编码但为了让相同的架构适应不同的任务通过训练得到卷积核权重是更好的办法。卷积运算的主要参数padding直接的卷积运算会使得到的特征图越来越小padding 操作会在图像周围添加 0 像素值的边缘使卷积后得到的特征图大小和原图像长宽不包括通道数相同。常用的两个选项是『VALID』不执行 padding『SAME』使输出特征图的长宽和原图像相同。stride两次卷积操作之间的步长大小。一个卷积层上可以有多个卷积核每个卷积核运算得到的结果是一个通道每个通道的特征图的长宽相同可以堆叠起来构成多通道特征图作为下一个卷积层的输入。深度卷积神经网络的架构深度卷积神经网络的架构主要以卷积层、池化层的多级堆叠最后是全连接层执行分类。池化层的主要作用是减少特征图尺寸进而减少参数数量加速运算使其目标检测表现更加鲁棒。14. 经典卷积神经网络LeNet·5手写识别分类网络这是第一个卷积神经网络由 Yann LeCun 提出。AlexNet图像分类网络首次在 CNN 引入 ReLU 激活函数。VGG-16图像分类网络深度较大。15. 特殊卷积神经网络ResNet 引入残差连接缓解梯度消失和梯度爆炸问题可以训练非常深的网络。Network in Network 使用 1x1 卷积核可以将卷积运算变成类似于全连接网络的形式还可以减少特征图的通道数从而减少参数数量。Inception Network 使用了多种尺寸卷积核的并行操作再堆叠成多个通道可以捕捉多种规模的特征但缺点是计算量太大可以通过 1x1 卷积减少通道数。16. 实践建议使用开源实现 从零开始实现时非常困难的利用别人的实现可以快速探索更复杂有趣的任务。数据增强 通过对原图像进行镜像、随机裁剪、旋转、颜色变化等操作增加训练数据量和多样性。迁移学习 针对当前任务的训练数据太少时可以将充分训练过的模型用少量数据微调获得足够好的性能。基准测试和竞赛中表现良好的诀窍 使用模型集成使用多模型输出的平均结果在测试阶段将图像裁剪成多个副本分别测试并将测试结果取平均。17. 目标检测算法目标检测即使用边界框检测图像中物体的位置Faster R-CNN、R-FCN 和 SSD 是三种目前最优且应用最广泛的目标检测模型上图也展示了 YOLO 的基本过程。18. 人脸识别人脸识别有两大类应用人脸验证二分分类和人脸识别多人分类。当样本量不足时或者不断有新样本加入时需要使用 one-shot learning解决办法是学习相似性函数即确定两张图像的相似性。比如在 Siamese Network 中学习人脸识别时就是利用两个网络的输出减少同一个人的两个输出的差别增大不同人的两个输出之间的差别。19. 风格迁移风格迁移是一个热门话题它会在视觉上给人耳目一新的感觉。例如你有一副图然后将另一幅图的风格特征应用到这幅图上比如用一位著名画家或某一副名画的风格来修改你的图像因此我们可以获得独特风格的作品。循环网络20. 循环神经网络基础如上所示命名实体识别等序列问题在现实生活中占了很大的比例而隐马尔可夫链等传统机器学习算法只能作出很强的假设而处理部分序列问题。但近来循环神经网络在这些问题上有非常大的突破RNN 隐藏状态的结构以循环形的形式成记忆每一时刻的隐藏层的状态取决于它的过去状态这种结构使得 RNN 可以保存、记住和处理长时期的过去复杂信号。循环神经网络RNN能够从序列和时序数据中学习特征和长期依赖关系。RNN 具备非线性单元的堆叠其中单元之间至少有一个连接形成有向循环。训练好的 RNN 可以建模任何动态系统但是训练 RNN 主要受到学习长期依赖性问题的影响。以下展示了 RNN 的应用、问题以及变体等循环神经网络在语言建模等序列问题上有非常强大的力量但同时它也存在很严重的梯度消失问题。因此像 LSTM 和 GRU 等基于门控的 RNN 有非常大的潜力它们使用门控机制保留或遗忘前面时间步的信息并形成记忆以提供给当前的计算过程。21. NLP 中的词表征词嵌入在自然语言处理中非常重要因为不论执行怎样的任务将词表征出来都是必须的。上图展示了词嵌入的方法我们可以将词汇库映射到一个 200 或 300 维的向量从而大大减少表征词的空间。此外这种词表征的方法还能表示词的语义因为词义相近的词在嵌入空间中距离相近。除了以上所述的 Skip Grams以下还展示了学习词嵌入的常见方法GloVe 词向量是很常见的词向量学习方法它学到的词表征可进一步用于语句分类等任务。22. 序列到序列序列到序列的方法使用最多的就是编码器解码器框架其它还有束搜索等模块的介绍。编码器解码器架构加上注意力机制可以解决非常多的自然语言处理问题以下介绍了 BLEU 分值和注意力机制。它们在机器翻译的架构和评估中都是不能缺少的部分。以上是所有关于吴恩达深度学习专项课程的信息图由于它们包含的信息较多我们只介绍了一部分还有很多内容只是简单的一笔带过。所以各位读者最好可以下载该信息图并在后面的学习过程中慢慢理解与优化。未来智能实验室的主要工作包括建立AI智能系统智商评测体系开展世界人工智能智商评测开展互联网城市云脑研究计划构建互联网城市云脑技术和企业图谱为提升企业行业与城市的智能水平服务。 如果您对实验室的研究感兴趣欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915472.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!