10 2021 档案
摘要:物体检测 上图就是目标检测的一个应用实例。 在图片上标注框是有成本的,所以一般来说,目标检测的数据集要先对图片分类数据集小很多。 (人工标注需要很多很多的工具人) 目标检测中比较常见的数据集就是MS COCO,它的地位就相当于图片分类中的ImageNet。 边缘框实现 数据集 因为一般目标检测数据集
阅读全文
摘要:自注意力 在介绍transformer之前,先讲一个比价重要的东西=》 self-attention。self-attention其实没有什么特殊的地方,主要就是key,value,query到底要怎么选择,自注意力机制有自己的一套选法。 CNN,RNN,self-attention都可以用来处理序
阅读全文
摘要:使用注意力机制的seq2seq attention机制是在RNN中经常被使用到的一个机制。 对于attention这样一个机制,为什么会出现呢?主要就是我们采用传统的encoder-decoder来搭建RNN模型的时候,通常会存在一些问题。 问题一:无论输入的序列有多长,都会被编码成一个固定的向量表
阅读全文
摘要:想做深度学习研究的从这讲开始看就行了说实话... 注意力机制 随意:跟随意志 注意力机制是没有心理学背景的,但是可以从心理学的角度进行解释。 卷积、全连接、池化层都只考虑不随意线索 就像是池化也只是把其中最大那一块提取出来,其实也不知道要干什么,就看过去。 注意力机制则显示的对随意线索进行建模(主动
阅读全文
摘要:注意力分数 刚刚的注意力权重,如何设计使得和我们现在的东西比较相像?里面一个东西叫做注意力分数。 可以看看之前的使用过了高斯核的注意力。 上图有一堆key-value pair(训练时候的x和y),输入一个query(推理时候的x),然后query和每一个key做一个计算,得到一个注意力分数a,然后
阅读全文
摘要:
阅读全文
摘要:Seq2Seq seq2seq,从一个句子翻译到另外一个句子。 封面是一个基因转录,这个也是一个seq2seq的过程。 seq2seq最早是来做机器翻译的,不过现在基本都使用bert。(听说google的翻译和搜索都使用了bert) seq2seq是一个encoder-decoder的架构。 enc
阅读全文
摘要:双向循环神经网络 双向LSTM非常不适合做推理,基础是不能用在预测下一个词。 Bi-RNN的作用主要是对一个句子做特征提取,比如做翻译, 给句子A翻译句子B,那么可以对句子A使用Bi-RNN去双向的看它。 代码 这里代码不会讲具体实现,但是其实很简单,前向的隐藏层就正常进行运算。反向的怎么实现呢?首
阅读全文
摘要:深层循环神经网络 代码实现 QA 网络一般需要多深? 其实不会特别深,像MLP其实一般也只是2层3层这样。 为什么参数量增加,但是计算的时间却没有成倍增加? 因为框架会给你做一个很好的并行。
阅读全文
摘要:长短期记忆网络 LSTM 90年代发明的网络,其实挺复杂的,就现在其实大家也没有搞明白为什么要这么设计。 LSTM虽然是长得挺奇怪的,但是使用效果还是不错的,尽管是90年年代发明的网络。 LSTM其实要实现的效果和GRU是差不多的,只不过设计相对复杂一些。 GRU可以认为是对LSTM的一个简化? 但
阅读全文
摘要:门控制循环单元 GRU 首先这个GRU是最近几年才提出来的,它是在LSTM之后才提出来的,之所以先讲GRU是因为它相对比较简单一些。LSTM相对复杂,但是其实二者的表现效果差不多,所以实际使用哪个都是可以的。 GRU最主要是知道什么叫做“门控”。 我们之前说过,RNN是处理不了太长的序列的,是因为把
阅读全文
摘要:这个树叶分类比赛,难度不大,第一的同学准确率可以得到0.992。 沐神认为0.98已经是不错的了。
阅读全文
摘要:编码器-解码器架构 encoder-decoder是一个框架,这是近几年影响比较大的对一个模型的抽象。 代码 encoder-decoder是一种编程接口,后面基本NLP都是使用这种编程接口来实现的。
阅读全文
摘要:微调 fine tune 沐神:微调绝对是深度学习中一个非常重要的技术!整个深度学习为什么能够work,就是因为有微调。迁移学习(transfer learning) 在ImageNet上训练的模型,其实是可以为我所用的。 微调的核心思想就是在源数据集上(通常是比较大的数据集)训练的模型,我们可把做
阅读全文
摘要:数据增广 数据增广的话就不局限于图片,对文本、语音等都可以进行增广,这里主要是针对图片的技术。 代码 简简单单一个左右翻转的图像增广,就可以有效缓解让cifar10的过拟合情况。 其实不要奇怪,在ImageNet上,如果数据增广做的比较狠的话,经常是可以看到test acc高于train acc的,
阅读全文
摘要:分布式训练 其实分布式和单机多卡在逻辑上没有什么区别,只不过读数据之前从磁盘读取,现在换成了从网络读取;交换梯度之前通过内存处理,现在通过网络交换梯度。 下面是一个具体样例,看看分布式如何减少跨机器的通讯。 现在本机将梯度加起来,在进行发送。 这个就是epoch和batch_size有一个权衡...
阅读全文
摘要:就是一个小批量的数据,如果你有4张卡,那么这个批量的数据就可以分成4份。比如有100个样本,那么每张卡拿到25个样本,然后去计算梯度,最后再把梯度加起来做更新,这个就是多GPU的训练。 从零实现 理论而言,并行计算得到的结果应该是一样的。 两次结果不一样是因为存在随机性,如果固定住随机种子,理论两次
阅读全文
摘要:单机多卡并行 这里图片是4张980,但是因为GPU靠的太近了,一个月后就烧了一块GPU。这是沐神第一次装多GPU犯的错误。 一般都是进行数据并行。 什么使用使用模型并行呢?就batch_size=1的时候,一个GPU都不能计算的话,那么就会考虑进行模型并行,将模型分割到多个GPU来做,比如trans
阅读全文
摘要:更多的芯片 上面是一个高通的手机芯片结构图。 ASIC是Application-Specific Integrated Circuit( 应用型专用集成电路)。 AI ASIC AI的专用芯片。 这里最为代表的就是Google的TPU。 做ASIC芯片门槛会比通用芯片低很多,因为不用再去考虑那么多的
阅读全文
摘要:CPU和GPU 我们讲讲GPU和CPU是什么,而且为什么深度学习使用GPU会快。 上图最直观的就是CPU的浮点运算能力比显卡差很多,但是显卡的显存不会很大,32G其实也就封顶了,但是CPU的内存可以一直叠加。 物理核只有一个,但是可以有2个超线程。就是市面上很多说的4核8线程。 超线程对于有IO等待
阅读全文
摘要:ResNet的梯度计算 最最核心的思想就是乘法变加法。 如果是这种情况,加入g()这一层已经学的很好了,那么梯度就会变小,这样就对f()的梯度也会越来越小(相当于小数字的累乘) 但是如果是残差结构的话,直接使用加法,那么即使g()学的很好,其梯度很小,也不会影响f()的梯度。 正常的深度结构只能是从
阅读全文
摘要:
阅读全文
摘要:ResNet 如果说CNN只要你连接一个网路的话, 那么只要连接ResNet就可以了。ResNet是一个很简单的,也是一个很好用的网络。 模型越复杂精度就越高吗?不是的。可以看下图,五角星是最优解,下面F表示模型的解范围,解范围越大,也就表示模型越复杂,那么可以看到,F3的最优解是比F6的最优解距离
阅读全文
摘要:批量归一化 现在卷积神经网基本都是要使用到BN层的。BN层的思想不新,但是这个特定的层确实是最近几年才出来的,而且大家会发现效果很好。而且当大家要把网络做深的时候,这就是一个不可避免的层了。 梯度在上面的层会大,越往下面梯度会越来越小。 这就导致了一个很大的问题,就是上面的层梯度较大,那么权重更新比
阅读全文