当前位置: 首页 > news >正文

网站建设需要多少钱?绿色在线网站

网站建设需要多少钱?,绿色在线网站,宽屏网站模板,做标准件网站1. 深度学习基础与MLP 1.1 框架#xff1a; 线性回归#xff1b; Softmax回归#xff08;实际上用于分类问题#xff09;#xff1b; 感知机与多层感知机#xff1b; 模型选择#xff1b; 权重衰退#xff08;weight decay#xff09;#xff1b; 丢弃法…1. 深度学习基础与MLP 1.1 框架 线性回归 Softmax回归实际上用于分类问题 感知机与多层感知机 模型选择 权重衰退weight decay 丢弃法drop out 数值稳定性 神经网络基础 1.2 知识点 pytorch本身会梯度累加因此在多次计算梯度时需将梯度归0 pytorch中结尾带下划线的method的作用通常为覆盖当前值如normal_(0, 0.01) batchsize越小相当于网络输入的噪声越大模型训练效果越好 lr和batchsize一般不会影响最终收敛效果只是可能耗时更久 当样本大小不是batchsize整数倍时可以取更小的batchsize或舍弃多余的样本、或从下个epoch中预取出一些 判断收敛两个epoch间loss变化不大1%或验证数据集精度不增加。多训练一点也没关系虽然数值不变但可能内部在微调  pytorch网络层定义时会自动带有参数初始值 回归输出为连续数值单个分类输出为每一类别的置信度多个  用交叉熵衡量两概率区别 分类问题只关心正确类的预测值置信度见交叉熵公式但有时会指定多个目标类别 num_workers为用于读取数据从硬盘上读取预读取等的进程数量 训练前需要检查数据读取速度与CPU性能有关最好比训练快很多 *args allows a function to accept a variable number of positional arguments, and *args can also be used when calling a function to unpack a sequence and pass its elements as individual arguments; 展平层flatten的作用就是把矩阵第0维度保留展为2D tensor Softmax回归的输出层是一个全连接层Linear线性层  softmax及其对数的计算都是在CrossEntropyLoss()中实现的 多层感知机即在感知机基础上增加隐藏层采用激活函数必须为非线性得到非线性模型且可用于多类分类问题 激活函数主要用于避免层数塌陷即其本质上为引入非线性不同函数的选择本质上没有太大区别 多层感知机Softmax回归隐藏层 隐藏层大小设置一般来讲根据数据复杂度越复杂m1层越大甚至m1层维度可以比输入多但后序必须逐渐减小压缩多层网络相比单层网络每层的神经元数可以少一些 输入与参数的乘积一般采用XWb的形式 模型更大数据拟合性会更好损失会下降但测试集精度不一定会上升 MLP相较于SVM在代码层面好调整其本身甚至可以理解为一种编程语言但SVM对超参数不敏感数学性更好两者最终性能差不多 一层神经网络包含权重箭头激活函数计算 理论上一层隐藏层可以拟合任意函数但实际做不到优化方法解不了 同样的网络复杂度更深的模型比更宽的模型好训练因为不需要同时并行过多神经元且可以每层学习一个简单任务所以一般会增加网络层数而不是增加神经元个数 模型深度/宽度的选择1先试无隐藏层的线性模型2再试单隐藏层设置不同的神经元个数3再增加隐藏层根据上一步结果进行设置。如此不断复杂 训练误差与泛化误差分别为在训练数据和新数据上的误差 训练数据集训练模型参数验证数据集拿出部分如50%训练数据不训练只评估模型超参数好坏测试数据集只用一次最终测试模型泛化性能推荐比例6:2:2 K-则交叉验证k-fold cross-validation没有足够多数据时将训练数据分为K常用5或10块For i 1,..., K使用第i块作为验证数据集其余作为训练数据集训练K次同一超参数得到K次不一样的模型参数报告K个验证集误差的平均K越大效果越好但计算也更贵 K-则交叉验证应用方法1取K折中表现最好的超参数再在整个训练验证数据集上训练一遍作为最终模型进行测试2直接取K折中表现最好的模型为最终模型进行测试较简单但少看了一部分数据3对K折训练出的所有模型进行测试测试精度做平均相当于做了voting增加模型稳定性每个模型都有偏移多个模型平均可以降低其方差 模型容量拟合各种函数的能力 估计模型容量对于相同种类算法1参数个数2参数值的选择范围 深度学习核心首先拥有大的模型容量再对其进行控制使泛化误差下降 VC维VC dimension统计机器学习中对于一个分类模型VC等于一个最大的数据集的大小不管如何给定标号都存在一个模型来对它进行完美分类作用提供为什么一个模型好的依据可以衡量训练误差和泛化误差之间的间隔但深度学习中很少使用因为衡量不很准确且计算困难  数据复杂度1样本个数2每个样本的元素个数3时间、空间结构4多样性 超参数选择1老中医2从所有可能的排列组合中随机100次取验证数据集上效果最好的那个 类别比例差距很大的问题在验证时两个类别的数据最好为1:1防止模型过于注重占比较大的那一类数据但如果现实世界也差别很大那就无需调整了关注更重要的部分是合理的还可以在loss中对小占比部分提高权重 所有深度学习模型不做泛化和正则化等的话都有可能是无限VC维的 神经网络本质上还是MLP理论上MLP可以解决所有问题只是训练不出来CNN和RNN等其实只是告诉模型要怎样处理信息帮助其更好地进行训练 权重衰退为处理过拟合限制参数值选择范围来控制模型容量使用均方范数作为硬/柔性限制硬性即单独subject to柔性即对loss加一penalty对w进行L2范数惩罚通常不限制b调整超参数λ一般取e-3从参数更新法则层面理解每次参数更新时都会先对当前w乘一小于1的数1-ηλ进行放小再减去学习率乘loss梯度 数据都有固定噪音因此总是会学到比数学最优解的值更大的模型参数所以权重衰退不会起负作用且使用有随机噪音的数据等价于Tikhobov正则增强模型对输入数据的扰动鲁棒 丢弃法在层之间无偏差前后期望相等地加入随机噪音即将一些输出项随机置0是一种正则项只在训练中使用通常作用于多层感知机的隐藏层输出上p一般取0.10.5或0.9 正则项作用控制模型复杂度防止过拟合 梯度爆炸值超出值域对学习率敏感 梯度消失梯度值变成0不管如何选择学习率训练没有进展对底部层尤为严重梯度爆炸与消失都是由于多个矩阵连乘使得梯度更新时次幂过高产生的 让训练更稳定使梯度值在合理范围内如[1e-61e3])1将乘法变加法2归一化3合理的权重初始和激活函数 Xavier初始可适配权重形状变换 数值稳定性通过合理地分配权重初始值Xavier训练开始时更容易数值不稳定和选取激活函数relutanh和变换后的sigmoid有在原点附近时满足f(x) x使每一层的输出和梯度均值为0方差为一固定数 训练出问题解决方式如准确率奇怪变化或出现nan除0或inf过大先尝试一直减小学习率不然就是模型数值稳定性出了问题 输出值太大 - 梯度爆炸sigmoid激活函数 - 梯度消失 定义层和块通过继承nn.module可以进行非常灵活的模型构造def __init__(self):def forward(self, X):这里nn.module将python built-in的__call__(self, X)定义为forward(self, X)了 得到网络所有参数的字典net.state_dict() 参数绑定定义并公用shared nn.Linear(8, 8)层 应用初始化net.apply() 定义自带参数的层用nn.Parameter()把数值包起来即可 torch.save和torch.load只能保存和加载网络参数不能保存网络定义 使用CPUtorch.device(CPU)使用GPUtorch.cuda.device(cuda), torch.cuda.device(cuda:1)默认使用CPU 将张量存储在GPU上X torch.rand(2, 3, device try_gpu(1)) 将网络copy到GPU上net net.to(device try_gpu()) GPU满负荷没问题主要看温度不要超过80度太久90度以上时CPU会自动降频保护容易烧cuda和GPU关系GPU为硬件cuda为SDK 2. 卷积神经网络 2.1 框架 卷积神经网络 填充padding和步幅stride 多输入多输出通道 池化层 LeNet AlexNet VGG NiN GoogLeNet 批量归一化Batch Normalization ResNet 数据增广强 微调Fine-tuningTransfer Learning迁移学习 目标检测 锚框Anchor Box 序列模型 语言模型 RNNRecurrent Neural Network 门控循环单元Gated Recurrent Unit, GRU 长短期记忆网路Long short-term memory, LSTM 深度循环神经网络 双向循环神经网络 机器翻译与数据集 编码器-解码器架构 序列到序列学习seq2seq 束搜索Beam Search 注意力机制Attention Mechanism 使用注意力机制的seq2seq 自注意力Self-Attention和位置编码Position Encoding Transformer BERT预训练 转置卷积Transposed Convolution 2.2 知识点 卷积是一个特殊的全连接层对全连接层使用平移不变性和局部性得到卷积层 卷积层实际计算使用的是交叉相关 卷积层将输入和核矩阵进行交叉相关加上偏移后得到输出。因为核大小是固定的永远看的是核大小范围内的数据因此无论输入维度多大都不会像MLP那样让参数维度变得特别大 填充在输入周围添加额外的行/列来控制输出形状的减少量。当图像较小时不想让卷积层将图像减小过快从而可以使用较深的模型代码中的padding一般指“一边”填充的大小 步幅每次滑动核窗口时的行/列步长可成倍减少输出形状。当图像较大时使图像以加倍的速度减小从而减少计算量一般只要填充取得好高宽为偶数步幅为2可将步幅直接视为将图像缩小一倍 无论卷积核多大模型最后一定能看到整张图像的信息 NAS (neural-network architecture search)训练超参数自动机器学习如果是正常情景的话没必要使用直接用经典的就好 Autogulon可以自动调参深度神经网络但特别贵 信息/特征永远是要丢失的机器学习本质上就是一种极端的压缩算法 验证集做得比较好的话过拟合一般可以被避免 卷积核越小计算复杂度越低计算越快 一个特定的卷积层可以匹配一个特定的纹理 深度学习相对传统方法对数据和人的要求更小更经济 随着网络深入特征由局部底层到整体 输入通道RGB 3个为前一卷积层的超参数卷积层运算时需要融合多输入通道 输出通道为当前卷积层的超参数通道设置太多容易过拟合 1x1卷积层只看一个像素不识别空间模式只融合通道相当于权重为的全连接层处理时将输入拉成多通道的1维向量即1个2维矩阵原本4维的K省略最后的1x1维转换为2维矩阵进行矩阵间惩罚最后对输出维度进行复原 二维卷积层计算量不小模型较小只需存个参数 输入输出feature map高宽都减半时通常会将输出通道多加一倍 池化层返回滑动窗口中的最大平均值可容像素移位缓解卷积层对位置的敏感性且可在一定程度上减少计算量并防止卷积层受具有窗口大小、填充和步幅输出通道数输入通道数默认stride就是其大小 池化层应用减少的原因1可以用带有stride的卷积层替代池化层2数据增强同样可以防止卷积层在图像某些具体位置上过于位置敏感而产生过拟合 LeNet卷积层学习图像空间信息 池化层降低位置敏感度 卷积层 池化层 2个全连接层 输出层转换类别空间识别check上的手写数字 卷积层后面也是要加激活函数的即卷积激活池化 相较于MLPCNN模型复杂度小不容易过拟合 CNN结束后需要Flatten成向量再输入至MLP中 CNN本质上是将输入的空间信息不断压缩并将压缩后的信息存入越来越多的通道中虽然其通道即pattern数在增大但总体而言压缩终归是会有信息损失的 AlexNet相较于LeNet改进更深更大丢弃法ReLuMaxPooling 核方法与深度学习区别核方法进行人工特征提取再通过SVM分类深度学习通过CNN学习特征再通过Softmax回归转换为分类概率即端到端地实现 VGG相较于AlexNet改进更深更大提出模块概念构建重复的VGG块 NiN相较于之前网络改进使用1x1卷积层代替全连接层为像素提供非线性性构成NiN块使用全局平均池化代替最后分类的全连接层参数更少不容易过拟合 Inception块v14个路径从不同层面抽取信息然后在输出通道维合并。其中白色1x1卷积是用来变换通道数的减小模型复杂度蓝色是在真正提取信息的1x1提取通道信息其他提取空间信息以上所有可使Inception块在增加多样性的同时有更少的参数个数和计算复杂度 Inception块变革1v2使用batch normalization2v3修改了Inception块5x5 → 2个3x35x5 → 1x7和7x13x3 → 1x3和3x1更深3v4使用残差连接 GoogLeNet一次高宽减半就是一个stage第一个达到上百层的网络通过并行其中v3和v4现在还是很常用 批量归一化起因靠近损失处梯度较大靠近数据处梯度较小较小的数连乘 → 靠近损失处收敛快靠近数据处收敛慢。但由于靠近数据处学的是底层特征靠近损失处学的是高层特征即便靠近损失处训练好了底层特征一变又要重新开始训练因此总体收敛较慢 → 如何在学习底部层的时候避免变化顶部层。 BN实现固定小批量里面的均值和方差然后再做额外的调整可学习的参数即标准正态分布之外的均值与方差学习出的是和的偏移和缩放。 BN作用方式作用在1全连接层和卷积层输出上激活函数前2全连接层和卷积层输入上。区别1对全连接层作用在特征维2对卷积层作用在通道维所有像素当样本同一像素的多个通道为特征通道层是卷积层的一个特征维可联想至样本维与特征维组成的二维矩阵更加直观 BN本质可能是在每个小批量内加入噪音非学习的随机偏移和随机缩放即随机选取的小批量内样本的均值和方差来控制模型复杂度若按此思路来讲则没必要与dropout混合使用 BN作用加速收敛速度各层输入输出均在一个稳定分布的范围内因此可以选用较大的学习率底层与顶层共同快速收敛但一般不改变模型精度 ResNet 类似VGG和GoogLeNet的总体框架但替换成了ResNet块。ResNet152指有152个卷积层Residual conection。使得很深的网络更加容易训练模型性能不会更差且先会优先训练小模型再逐步过渡到大模型甚至可以到1000层 ResNet处理梯度消失将乘法处理为加法使得无论网络多深底层总是可以拿到较大的梯度进行参数更新 残差块卷积 BN ReLu 卷积 BN ReLu然后在任意处跳跃连接至任意处。 数据增强对已有数据集进行操作使其有更多的多样性如再语言里面加入各种不同的背景噪音改变图片的亮度、颜色、截取部分大小和形状等从原始数据读图片随机进行在线生成接着使用增强后数据训练模型类似于正则项仅训练时使用。 数据增强方法1翻转左右翻转、上下翻转不总是可行2切割从图像中切割一块然后变形到固定形状。随机高宽比3/4到4/3、随机大小8%到100%、随机位置3颜色改变色调、饱和度、明亮度0.5到1.54几十种其他方法https://github.com/aleju/imgaug).要根据实际场景需求确定采用的方法类型。 一个神经网络可分为两块1特征提取将原始像素变成容易线性分割的特征2线性分类器如Softmax回归 微调概述即如何初始化模型权重。是一个正常训练任务但采用了更强的正则化更小的学习率更少的数据迭代。 微调方法1重用特征提取权重利用在源数据集上训练得到的预训练模型特征提取部分的参数对当前模型特征提取部分进行参数初始化线性分类器部分完全随机初始化进而在目标数据集上训练2重用分类器权重在源数据集也有目标数据集中部分标号时可使用预训练模型分类器中对应标号对应的向量来初始化3固定一些层 神经网络通常学习有层次的特征表示低层次特征更通用高层次特征更跟数据集相关可固定底部一些层参数不参与更新相当于更强的正则。  目标检测与图片分类图片分类只关注主体目标检测需要识别出图像中所有感兴趣的物体并找到它们的位置。目标检测需要对一张图像中的多个目标分别进行多次人工框选取均值数据集标注成本较高因此通常数据集比图片分类小 边缘框Bounding Box由4个数字定义左上x左上y右下x右下y或左上x左上y宽高。表示真实值。 锚框Anchor Box表示预测值。一类目标检测算法是基于锚框提出多个被称为锚框的区域 → 预测每个锚框里是否含有关注的物体 → 如果是预测从这个锚框到真实边缘框的偏移 数据集图片分类1csv文件一张图片对应一个标号2文件夹每个类放在一个文件夹下。常用ImageNet。目标检测文本文件每一行表示一个物体包含图片文件名、物体类别、边缘框共6个值。常用COCOcocodataset.org IoUIntersection over Union交并比计算两框之间的相似度0表示无重叠1表示重合。 赋予锚框编号 编码解码1CNN编码器将输入编码成中间表达形式特征解码器将中间表示解码成输出。2RNN编码器将文本表示成向量解码器将向量表示成输出3General任一个模型可被分为两块编码器处理输入处理为中间状态state解码器生成输出且解码器可额外接收一个输入。 随意线索Volitional Cue有意识寻找的线索。不随意线索Nonvolitional Cue无意识寻找的线索 注意力机制概念通过注意力池化层来由偏向性地选择某些输入随意线索——查询query每个输入——一个值value即Sensory Inputs和不随意线索key的对 注意力分数aNormalize前的注意力权重α即softmax的输入表示query和key的相似度 注意力池化层 h是超参数 加性注意力Additive Attention等价于将query和key合并起来后放入到一个隐藏大小为h输出大小为1的单隐藏层MLP。允许query、key和value各自具有不同长度需要学习参数。其中h为超参数 点积注意力Scaled Dot-Product Attention适用于query和key具有同样的长度d不需要学习参数。此处为对a的每一行做softmax n个querym个key-value对value的维度为va中每行表示一个query每列表示一个keyf中每行表示一个按照query与对应key相似度加权后的value 序列数据有时序结构可正序可逆序。 序列模型预测的内容和数据样本为同一东西即使用自身过去数据来预测未来也称自回归模型auto-regression 马尔科夫假设假设当前数据只跟个过去数据点相关则对过去长为的向量数据训练一个MLP模型预测一个标量即可 潜变量模型Latent Variable将函数/模型转换为变量使用潜变量来概括历史信息是由和得到的而是由和得到的 tokenize将一段话拆分成各个词元token。其中可以设定token为11个字符char只有27个数量较少但还要学习怎么由字符组成词21个词word比较方便学习但不同词数量很多。tokens是本身是包含行信息的二维列表。 文本词汇表Vocab构建一个字典通常也叫词汇表vocabulary用来将字符串类型的token映射到从0开始的数字index中可双向访问 unk表示unknown的token 总体流程tokenize → 构建Vocab → 将所有功能打包至load_corpus_time_machine函数得到的corpus为所有token注意是所有token而非uniq_token的index组成的向量。最终实现文本 → 整型的向量 隐变量hidden  variable与潜变量latent variable区别隐变量通常是现实生活中存在的东西只是我们没有观察到潜变量可指代现实生活中不存在人为创造的东西。但在神经科学领域不强调两者区别可都用隐变量表示 RNN其实就是有时间轴的MLP。Phi就是激活函数。没有对x建模所有的x序列信息都存在h里面即使用来存时序信息。去掉项就会变为MLP RNN的输出取决于当下输入和前一时间的隐变量包含历史和时序信息 语言模型本质上就是一个分类问题假设字典中有m个词预测下一个词其实就是做m类分类问题长度为n的序列就是做n次分类 衡量语言模型好坏平均交叉熵就可以即平均n次分类问题的交叉熵。但历史原因使用困惑度perplexity来衡量即。其好处是将细微提升的精度值通过指数放大。1表示完美很确信下一个词就是它等于k则有k种可能无穷大是最差情况 梯度裁剪Gradient Clip迭代中计算着T个时间步上的梯度在反向传播过程中产生长度为O(T)的矩阵乘法链导致数值不稳定。梯度裁剪能有效预防梯度爆炸。其中一般取5或10 RNN应用第一个其实就是MLP GRURNN所有信息都放在hidden state内时间一长会累积过多不利于抽取较长时间前信息。关注一个序列时只需要关注一些重要的点。要只记住相关的观察需要1更新门Update Gate能关注的机制2重置门Reset Gate能遗忘的机制。两者的都是sigmoid 候选隐状态Candidate hidde state不是真正的隐藏状态。是一个软的门因经过了sigmoid所以取值为0~1当取0时即前面信息全不考虑回到初始状态当取1时即把前面所有的隐藏状态都计算进来简而言之即要用到多少过去的隐藏状态的信息 隐状态Hidden state同样是一个软的门表示在计算新的隐状态时要用到多少新的与相关的信息。当取1时即不允许与新的相关的信息通过了 当全0全1时就回到RNN的计算方式。两种极端情况1全看与均为02不看为1随意。通常会在两种极端情况间调整 GRU总结加了两个门训练参数为RNN的三倍。 LSTM1忘记门将值朝0减少2输入门决定是否忽略掉输入数据3输出门决定是否使用隐状态 候选记忆单元取值为-1到1 记忆单元控制是否忘记过去的记忆单元控制是否考虑新的记忆单元。与GRU不同此处两者独立而不是相加为1。取值为-2到2 隐状态再对记忆单元采用tanh使其值范围恢复到-1到1之间表示是否要输出当为0时即表示过往内容都不要重置了 LSTM总结相较于GRU多了一个C可以视作H前未Normalize的辅助的记忆单元 深层循环神经网络使用多个隐藏层来获得更多的非线性 双向RNN使RNN不止可以看到过去还可以看到未来。不适合预测下一个词推理时没有位置信息适合对一个序列做特征提取如填空、翻译、改写、语音识别等。可做encoder不可做decoder 机器翻译两个句子可以有不同的长度 Seq2seq是一种模型的名称。将需要翻译的句子输入给一个RNN的cell可以是GRULSTM等等作为编码器可以是双向将最后一层RNN最后时刻输出的hidden state输入给decoder另一RNN再给decoder一个bosbegin of sentence的输入指示翻译开始每个时刻输出的单词再次作为下一时刻的输入直到输出eosend of sentence。从而将不定长的序列生成另一不定长的序列。 编码器-解码器细节编码器是没有输出的RNN编码器最后时间步的隐状态作为context用作解码器的初始隐状态。这里Sources指源句子target指翻译后句子的各个单词。 训练编码器的训练与推理相同。而对于解码器训练时使用目标句子作为输入防止误差累积但推理时不知道目标句子只能使用上一时刻的输出作为当前时刻的输入 BLEUbilingual evaluation understudy衡量生成“序列”好坏。完美是1。第一项在预测长度比实际长度小很多时会使exp变成非常小的值造成严厉地惩罚当计算较大n对应的n-gram时因其体现较好的生成结果会在第二项为其赋予较高的权重。 束搜索seq2seq中使用了贪心搜索来预测序列将当前时刻预测概率最大的词输出其效率是最高的但很可能不是最优的。束搜索是指保存k个候选贪心只有1个在每个时刻对每个候选新加一项n种可能在kn个选项种选出最好的k个。在计算分数时不止计算最终的k个选择中间选择也会记录下来短句子概率一般总是较高为防止总选短句子分数如下设置使长句子负的没那么多 使用注意力机制的seq2seq动机是机器翻译中每个生成的词可能相关于源句子中不同的词。 将编码器对每个词的输出作为key和value它们是等价的。解码器RNN对上一个词的输出是query。注意力的输出和下一个词的词嵌入合并进入RNN。即注意力机制可以根据编码器RNN的输出来匹配到合适的解码器RNN的输出来更有效地传递信息。 Self-attention既做query又做key又做value。并行度特别好为O(n)。最长路径为O(1)无视距离适合处理比较长的文本也因此计算复杂度较高为模型也较大 Self-attention与CNN和RNN对比讨论均应用于序列数据时。附图 Position encoding自注意力机制没有记录位置信息。当变换输入位置时输出的位置会发生变化但输出的内容没有变化。不将位置信息加到模型里面而是直接注入到输入里。P中每一行表示样本一个token每一列表示一个特征token向量表示的一个维度偶数列为sin奇数列为cos且不同奇/偶列周期不同周期相同的相邻奇偶列有平移。让模型自己去学会分辨在输入中加入的位置信息考验模型性能。 绝对位置信息1计算机使用二进制编码假设表示8个数字可以用维度为3的特征不同维度中0和1变化的频率不同从第一维到最后一维频率逐渐加快。2位置编码矩阵使用-1到1间的实数可以编码的范围较广如下热度图所示由前至后频率逐渐减慢。因采用sin与cos函数所以允许任意长度的d 相对位置信息位于处的位置编码可以线性投影位于处的位置编码来表示。只要相对位置不变无论处于何种绝对位置线性变换矩阵都不会改变投影矩阵与无关 Transformer基于编码器-解码器架构来处理序列对纯基于attention无RNN。编码器和解码器都有n个transformer块。 附图 Multi-head attention不限制具体的attension类型只要求多头。对同一key、value、query希望抽取不同的信息例如短距离关系和长距离关系。先经过FC层将qkv压缩成低维信息。使用h个独立的attention poolingconcat各个head输出再通过FC层得到最终输出。 Masked Multi-head attention解码器对序列中一个元素输出时不应该考虑该元素之后的元素。通过掩码实现计算输出时假装当前序列长度为即限制value长度为i后面部分掩掉不进入softmax算权重求和但输入时还是需要一次性都给只是算value权重求和时不同 Positionwise FFNFeed Forward Network基于位置的前馈网络本质就是全连接。将输入形状由b, n, d变换成bn, d其中b为batchsizen为序列长度d为每个token的维度。对其作用两个全连接层。再将输出形状由bn, d变化回b, n, d。等价于两层核窗口为1的1维卷积层。注因为网络应该可以处理任意长度的序列因此只能将n与b乘在一起。 层归一化批量归一化只能对每个特征d中的一维/通道里元素进行归一化即需要归一化的范围维bn而n在推理时是不断变化的会导致BN学的东西很不稳定因此不适合序列长度会变的NLP应用。层归一化Layer Norm对每个样本里的元素进行归一化虽然n还是会变但总归是在一个样本里学到的东西相对稳定。 信息传递将编码器的输出作为编码中第个Transformer块中多头注意力的key和value其query来自目标序列。这意味着编码器和解码器中块的个数和输出维度都是一样的为了简单、对称 预测预测第t1个输出时解码器中输入前t个预测值。在自注意力中前t个预测值作为key和value第t个预测值还作为query Transformer多通道输出的维度d本身就是多通道multi-head的每个head提取不同长度的信息也可以视为多通道 NLP里的迁移学习使用预训练好的模型来抽取词、句子的特征例如word2vec由一个词推测周围的或者填空或语言模型。一般不会更新预训练好的模型只把它当作一个编码器用后面还是得重新设计。且当需要构建新的网络来抓取新任务需要的信息时word2vec忽略了时序信息语言模型只看了一个方向。 BERT动机设计基于微调的NLP模型。使预训练的模型已经抽取了足够多的信息新的任务只需要增加一个简单的输出层 BERT架构只有编码器的Transformer。很深很大的网络大规模的数据集 BERT对输入的修改每个样本Token Embedding是一个句子对source target从cls即class开始用sep分开加入额外的片段嵌入Segment Embedding表示样本中两个句子分别位于哪部分不人为设置而是采用科学系的位置编码Position Encoding BERT预训练任务1带掩码的语言模型完形填空。而非预测模型所以允许查看双侧信息。需要mask的原因为Transformer的编码器是双向但标准语言模型要求单向。操作方式为带掩码的语言模型每次随机15%概率将一些词元换成mask。因为微调任务重不出现mask所以为了不让模型一见到mask就预测在80%概率下将选中的词元变成mask10%概率下换成一个随机词元10%概率下保持原有词元 BERT预训练任务2下一个句子预测。即预测一个句子对中两个句子是不是相邻。训练样本如下图所示设置。将cls对应的输出放到一个全连接层来预测 两个任务没有太多现实意义主要是训练一个比较泛化的任务以供微调使用 微调BERTBERT对每一个词元返回抽取了上下文信息的特征向量不同的任务使用不同的特征 句子分类将cls对应的向量输入到全连接层分类预训练判断两个句子是不是pair的时候用的就是这个输出可训练出句子级别的分类向量比较适合这一任务 命名实体识别识别一个词元是不是命名实体例如人名、机构、位置将非特殊词元放进全连接层分类 问题回答 给定一个问题和描述文字找出一个片段作为回答。对片段值描述文字问题放在第一个sep之前中的每个词元预测它是回答的开头/是回答的结束/都不是三分类问题 不论何种下游任务使用BERT微调时均只需增加输出层但根据任务的不同输入的表示和使用的BERT特征也会不一样 转置卷积用来增大输入高宽即上采样本质上仍为卷积操作卷积与对应转置卷积共享超参数严格来讲反卷积Deconvolution不同于转置卷积转置卷积只要求形状可逆而反卷积要求形状及卷积核内数值均可逆。但深度学习中有时会混用。 总结 简写i —— 预测的类别o —— 置信度σ —— 激活函数H —— 隐藏层输出 超参数学习率ηbatchsizeepochnum_workers隐藏层数每层隐藏层大小正则项λ控制模型容量丢弃概率核矩阵大小填充步幅输出通道数 常用损失函数1回归L2损失L1损失Hubers Robust Loss前两者的结合2分类交叉熵 常用激活函数sigmoid函数Tanh函数ReLU函数rectified linear unit与前两者性能差别不大主要是简单算得快 常用正则项权重衰退Dropout仅MLP 关注robustness研究新兴领域适用医疗 粒子群算法初始权值阈值 孪生网络一个文字输出很大一个图片输出很小 疑问 1. RNN部分公式下标怎么一直在变到底哪个x哪个h 2. 注意力机制矩阵运算V部分的原理是什么
http://www.pierceye.com/news/220043/

相关文章:

  • 下载网站源码聊城seo培训
  • 专用于做网站公司推广的方式有哪些
  • 网站如何规划c 手机网站开发模板
  • 哈尔滨网站建设优化公司室内设计网站
  • 厚街做网站的公司wordpress出现百度抓取404页面
  • 四川南充网站建设西安网站建设推广优化
  • 做企业门户网站都连连电商网站开发公司
  • 微商城网站建设价位公司要想做个网站这么弄
  • wordpress文章所属栏目关键词排名优化易下拉教程
  • 网站主题咋做免费网页模板素材网站
  • 网站建设对旅游意义公众号运营策划
  • 成都专业网站制作关于论文网站开发参考文献
  • 免费做代理郑州seo招聘
  • 做网站系统更新后wordpress
  • 兰州网站建站2024免费网站推广
  • 深圳模板建站企业网站出现搜索
  • app开发网站模板该网站正在紧急升级维护中
  • 公众号编辑器365保定seo推广
  • 陕西整站关键词自然排名优化外贸获客渠道有哪些
  • 网站策划需要具备什么福州高端建站
  • 域名注册没有网站美食网页设计素材图片
  • wordpress网站在哪里修改密码ps做网站要求高吗
  • 企业网站带商城源码Audiology wordpress
  • 星月教你做网站东营城乡建设局官网
  • 镇江网站建设开发旺店通erp系统
  • 体育直播网站建设深圳制作小程序
  • 手机微信管理系统搜索引擎优化的流程是什么
  • 壁纸公司网站源码做网站价格表
  • 潜江网站设计商务科技网站建设
  • 合肥企业网站制作网站开发公司简介