自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 神经网络模型底层原理与实现10-softmax的实现

def train_ch3(net, train_iter, test_iter, loss, num_epochs,batch_size,params=None, lr=None, optimizer=None):#num_epochs训练次数,lr学习率。acc_sum += (net(X).argmax(dim=1) == y).float().sum().item()#item将tensor类型转为数据类型。def cross_entropy(y_hat,y):#公式是-y*log(y_hat)

2024-04-14 11:47:55 555

原创 神经网络模型底层原理与实现9-可解释性

3.其他方法:用一个可解释的模型(比如树)来替代深度学习模型的效果(可以只模仿一小个区域内的效果,整体模仿树模型可能做不到。举个例子:左边这张图,人眼判断这是不是马可能是靠看这匹马,而机器判断是靠左下角的字,这样就不对了。必要性:在金融、医药、自动驾驶方面,模型必须可解释,知道分类错在哪才可以更好的改进模型。具体操作:a.把图片中的一部分删掉,如果分类错了很多,可得这一部分对分类是很重要的。c.在深度学习中,还可以把中间几层的结果抽出来,用PCA等方法降纬,看特征是什么。2.根据模型参数得出一只猫长啥样。

2024-04-12 12:38:32 367

原创 神经网络模型底层原理与实现8-BERT

bert中如何创造x':以文字处理为例,把字随机遮住或者随机替换一些,把新的字符串组输入bert后经过linear和softmax层得到的结果和实际字符(比如这里是湾)做交叉熵,从而训练bert的参数。普通的有监督学习是每个x对应有个y',x训练得到y,将y与y'作比较,而自监督是没有对应y',直接把一部分样本x作为训练目标x'',训练得x'后和x''对比。方法:在输入的字符串前面加cls字符,通过这个字符的输出经过线性层后得到类别,bert的作用是得到一个比较好的初始化参数(注:需要有提前标注的数据)

2024-04-10 17:13:18 621

原创 神经网络模型底层原理与实现7-transformer

1.训练时采用的是单个字的cross entropy 求和,测试时是算blue score,可能会有偏差,但不能在训练时直接用blue score,因为不能微分(可以用强化学习解决)2.在训练的时候,每次都是由正确的输入得出输出,但在测试时不是这样,可能导致一步错步步错的情况,解决方法是在训练中就加入一些错误输入。整体结构:把encoder输出读到decoder里面,然后根据一个特殊字符的输入开始,以此输出中文字,每个输出选择概率最大的那个。NAT:同时输入多个begin,并行输出。模型结构讲完再来讲下。

2024-04-10 11:31:23 781

原创 你绝对没看过的求职及职场经验分享2—简历篇

1.个人总结的三句话:第一句写自己得到的认可(比如职级、升职情况),第二句写自己是个怎么样的人(比如好奇爱学习,最好有论据),第三句写我接下来会成为怎么样的人,我能和团队一起变得更好。4.简历只写一页,那如何精简呢:把吸引人的点(比如收益增长了多少倍)写上去,其他的点面试再聊(简历上写论点和核心论据,面试时再补充论据,有对应关系面试时更好说)5.不用把项目吹的很牛逼,做的事情和投的岗位相关且自己做项目时有收获(比如完成了okr的百分之多少,哪里还不足)就可以。6.一件事只写在一行上,每行只写一件事。

2024-04-08 08:23:20 270

原创 你绝对没看过的求职及职场经验分享1—面试篇

关于行业产品公司面试官的了解(有意无意透露自己做了准备,想聊可以聊)-防止面试官不断在你做的项目里变化情况,这种是很难回答的。核心:考察人才的三个维度:速度(做过的事情、知识)、加速度(潜力、做事的意愿)、和公司的匹配度。可以说我的项目和您有什么类似的地方,哪些经验可以复用。1.当时做过的事情,做了什么,情况怎么样,如果某些情况改变怎么做,反思。2.给一件新的事情(做过的事和新公司要做的事的一种结合)问题解决(以前的、新的(不用很细节但能经受一定推敲))交流(表达、接收到信息后能get到点并返回出信息)

2024-04-03 08:37:27 473 1

原创 神经网络模型底层原理与实现6—自注意力机制

接下来根据相关性抽取重要资讯:再对每个向量分别求v1-vn,对应相乘累加得bi,哪个的相关性分数大,就将决定bi。输出是什么:给每个向量打标(词性)/整个向量组打标(情感分析)/输出的类型数不定(比如写一段话概括一篇文章)多头注意力机制:如果需要考虑多种相关性,则可讲每个q分别去乘多个矩阵得到qi,1...qi,n再去分别算。原理讲到这儿,下面和CNN做个对比:CNN其实是一个简化版的自注意力机制,它只考虑一个范围内的格子。解决的问题:之前的网络针对的输入都是一个向量,现在是一串向量(比如句子、语音)

2024-04-02 20:46:50 403

原创 神经网络模型底层原理与实现5—网络结构的变迁与设计思路

在训练模型的时候,用前一个的输出x和f(x)做差,然后拟合这个差值(有点类似xgboost的思想)方法:NIN块:卷积层后跟两个步幅1无填充的卷积层(实际作用和全连接层一样,混合通道)解决问题:之前提到的三种网络卷积层后的第一个全连接层参数量都很大,容易过拟合。结构:卷积层取特征,池化层减小图片大小,最终全连接层转化到类别空间。4.更大的池化窗口和更大的卷积核窗口和步长,用以处理更大的图片。解决方法:设计残差块,f(x)=x+g(x)(x为原来的输出)方法:n个卷积层和一个最大池化层组成一个块,进行堆叠。

2024-03-29 16:20:08 455

原创 神经网络模型底层原理与实现4—权重衰退、丢弃法、数据增广等小技巧

情况说明:工作日只能地铁上手机码字,因此无法更新相关代码,工作日会统一更新,感兴趣的可以先点个关注喔。思路:好的模型应该要抗干扰噪音,因此考虑在层之间加上噪音的同时保持每层的输出不变,数学算法如下。把第一个式子带入上面的式子可得第二个式子,因此可知权重是不断变小的,称为权重衰减。目的:控制模型的容量,一般思路是给目标函数加惩罚函数,使得w的值不会过大。这篇补充前面提到的权重衰退、丢弃法、数据增广、微调的理论知识。注意:只在训练集时做丢弃,测试集上用效果最好的那个丢弃结果。则可得参数的更新公式为。

2024-03-28 16:52:17 456

原创 神经网络模型底层原理与实现3—为什么要用卷积神经网络,整体架构如何设计

关于步幅和边缘轮廓设定:在实际操作中,一般设定平移的步幅为1或2(以保证每次的感受野有一定重合,不会错过某些信息)。1.局部性:每层神经网络作用是学习图像的一部分特征,因此不需要看整张图片,由此得感受野(比较常用的是3*3的),在计算过程中给每格一个学习的权重,对应相乘后相加得特征值。4.这么做会不会只能提取到局部的信息—不会,因为每一层都能提取到上一层的特征,越上面的层就越能提取到全局的特征。把棋盘看成19*19的向量,黑白空分别表示为-1、1、 0,算出下在哪个地方是最好的(概率最大的)

2024-03-28 15:02:04 409

原创 神经网络模型底层原理与实现2—如何做好训练(二)

有时损失可能已经不下降了(右上角的图)但实际上并没有到达最优点,原因是如左图所示在两侧山坡上来回(由于这个点梯度较大导致)因此我们需要动态调整步幅(梯度越大学习率越小)注意:之前提到的动量是决定了迭代方向的改变,而本次提到的分母这项是只考虑大小,因此虽然都是由过去的梯度得到,但效果不会抵消。改进1如图所示,原本学习率固定为n,现在随着训练进行,要除所有梯度的平方平均。这两个改进导致的值数量变化的大小主要是由所在位置的梯度大小决定的。改进2:希望以前的梯度权重能小一些,得到rmsprop算法。

2024-03-27 18:58:03 240

原创 神经网络模型底层原理与实现2—如何做好训练(一)

如果你拿整个数据集去训练,可能走到左图中的点就走不下去了,但如果有很多小批次,多做几次尝试后可能在另一个批次的曲线上能够走出这个局部最小值点,另外实验表明,小批次在测试集上的效果也更好。针对过拟合:模型的复杂度高于数据的复杂度,解决方法有两个:增加训练数据量(收集更多的数据或是做数据增广)/增加对网络的限制(共享参数,CNN,减少特征,丢弃法,正则化)a.如果走进了第2点中说的没有训练到最好的点,如何判断它是局部最优值点还是鞍点(也就是沿某些方向训练,损失还会减少,但目前你没走这个方向的点)

2024-03-27 14:52:43 305

原创 神经网络模型底层原理与实现1—为什么要用激活函数,为什么要有反向传播

已知所有函数均可近似表达为上方的表达式,则从右往左看这个图,第一个+节点就是用来算b1+西格玛(wij+xj),之后再往左经过蓝色激活函数得以此计算,不断循环叠加计算得神经网络图。线性函数有很大的局限性,比如要拟合图中这根红线就无法只用线性函数做到,但可以用图中的几根蓝线+一个常量函数拟合, 但是图中的蓝线是无法用线性函数变换得到。而dc/dz=da/dz * dc/da,第一项是激活函数的导数,第二项需要根据后面的网络结构再算,由链式法则可得第二个式子,可见这个问题递归了。1.为什么要用激活函数。

2024-03-26 15:49:15 533

原创 模型套路番外——模型保存、读取及已有模型修改

深度学习模型保存、读取及已有模型修改

2024-03-24 19:11:47 231

原创 模型套路4——用GPU进行训练

print("训练次数:{},loss:{}".format(total_train_step, loss.item()))#item作用是把tensor转为数字。writer.add_scalar("train_loss",loss.item(),total_train_step)#后两个是横纵坐标。print("整体测试集上的loss:{}".format(total_test_loss))print("----------第{}轮训练开始-------".format(i+1))

2024-03-24 15:05:08 487

原创 未来更新计划

为了督促自己有计划的更新,先列出未来希望自己更新的内容,大家一起学习讨论进步,同时也让关注的朋友知道未来会看到些什么。目标是以pytorch、C++、深度学习原理为基础技能,以金融实战及推荐系统实战为落地目标的算法工程师。3.金融风控中如何处理实际变量、如何建模(结合自己做过的项目以及看过的书籍介绍)2.神经网络模型底层实现(结合李宏毅老师和李沐老师的课自己总结理论框架及实现)1.深度学习训练的套路(进行中)9.leetcode题目解题模板。6.kaggle实战经验。7.spark使用方法。

2024-03-24 10:48:28 186

原创 模型套路3——神经网络模型的正确率、优化网络运行效率的方法

print("训练次数:{},loss:{}".format(total_train_step, loss.item()))#item作用是把tensor转为数字。writer.add_scalar("train_loss",loss.item(),total_train_step)#后两个是横纵坐标。print("整体测试集上的loss:{}".format(total_test_loss))print("----------第{}轮训练开始-------".format(i+1))

2024-03-24 10:21:03 605

原创 模型套路2——神经网络的测试及图像展示

本文主要介绍模型测试、模型图像展示以及模型保存得方法

2024-03-23 20:53:25 1348

原创 模型套路1——神经网络模型训练

深度学习代码框架

2024-03-23 09:45:00 541 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除