NN技巧
文章平均质量分 58
普通攻击往后拉
Intelligent decision-making for scheduling and planning problems
展开
-
深度学习中Embedding的理解
Embedding的加法一般用于同类目的合集表示。就是因为不同one-hot做加法之后得到的向量可以反过来推断出包含了哪些向量,虽然序列信息无法放到里面。Embedding这个概念翻译过来的意思就是嵌入,就是把一个大的东西想办法嵌入到一个小的地方。例如,历史时间一般会按照1天内,7天内,30天内,一年内进行离散化再去embedding。此外,Embedding还多用于多模态特征的融合,因为多种模态数据最后都是汇聚到向量表示。Embedding拼接一般用于不同类目的合集,一般用拼接的方式放到神经网络去。原创 2024-08-29 00:36:34 · 396 阅读 · 0 评论 -
[经典论文分享] Attention, Learn to Solve Routing Problems!
1 背景自从有人基于指针网络解决组合优化问题以来,基于ML的组合优化问题求解模型逐渐被关注。基于深度强化学习的组合优化求解带来了较高的模型准确度和泛化性。但是目前基于DRL的CO求解准确度和训练效率一般,简单来说就是模型不是很成熟。针对模型的表现性能和训练效率,同时本着万物皆可基于transformer进行改进的思想,本文提出了一种面向VRP系列组合优化问题的改进的‘transformer’,作者称其为’Attention Model’。到现在2021年10月,这篇文章已经在谷歌学术上有了325次的引用。原创 2021-10-24 17:11:22 · 3501 阅读 · 7 评论 -
encoding和embedding的区别
这两个词主要来源于自然语言处理领域,代表对于词语的的数字化表征。相似点:都表示对于初始特征的转化,如XXX到X−X^-X− ,从而可以利用X−X^-X−更方便地做某些事情。不同点:1)根据attention is all you need的原文,encoding更多表示对特征的一种公式型转化,比如利用三角函数等这样相对白盒一点的转化方法;而embedding更多指的是一种基于神经网络的转化方法,比如把一个19维的特征映射为一个8维的特征。2)一般认为encoding是一个过程,从XXX到X−X^-X原创 2021-10-23 19:24:00 · 4177 阅读 · 3 评论 -
torch的使用tips-1
记录一下20210818-20210819两天发现的一些torchtips:1 cat可以用来对两个tensor进行拼接,可以实现类似于list append或者list +的操作。类似功能的还有stack。2 diag_embed按照输入生产对角矩阵,非常有用,可以用来将one-hot编码转化成对应的对角矩阵,例如:[0,0,1]->[[0, 0, 0],[0, 0, 0],[0, 0, 1]]3 zeros/ones按照输出生成固定形状的张量,也可以用zeros_like/原创 2021-08-19 19:07:40 · 397 阅读 · 0 评论 -
代码+通俗理解图神经网络GNN
1 类比CNN图神经网络GNN用于解决非欧几里得空间结构的数据结构的表征问题,其本质是依赖图形中边的连接关系表征节点或者图的信息。在说图神经网路是如何实现这一点时,可以先对比卷积神经网络对一般图像的处理过程:CNN对于图像的处理就是按照从上到下的顺序依次对图像进行卷积,从而提取整个图像的特征;而GNN对于图结构的处理,类似于按照节点为单位,用一个虚拟的卷积核按照节点的连接顺序对图中的节点依次进行处理。因此GNN与CNN的处理过程本质上是一样的。2 代码理解GNN的训练过程GNN的“模拟卷积核”在每原创 2021-08-14 22:57:22 · 11738 阅读 · 3 评论 -
代码+通俗理解attention机制
attention机制在机器学习领域人尽皆知,并且逐渐成为了从NLP扩散到各个领域的科研密码,但是一直对attention的理解不是很深入。尤其是看网上各种各样对论文的翻译和截图,看的云里雾里,因此特依次记录一下attention到底是什么以及其计算过程。1 attention在直观理解上的作用attention的作用是在一段文本中机器注意到关键的字词,或者在图片中机器注意到局部信息,比如:因此,attention是用于特征增强的技术,即突出强调单个样本中部分特征的信息。然而,实现这一点并不是像传原创 2021-08-13 21:59:22 · 1674 阅读 · 1 评论 -
强化学习中的MASK掩码约束动作action
在强化学习解决问题的场景中,动作是体现学习效果最直接的因素,直接影响了智能体下一步的走向和对环境状态的改变。在应用强化学习解决实际问题时,往往不同于gym库中倒立摆那样的情况,而是存在很多的约束。例如,在ttt时刻智能体可选的动作为1,2,31,2,31,2,3,但是在t+1t+1t+1时刻只能选1,21,21,2,333处于不可用的状态。在这种情况下,就需要借助掩码mask来对智能体的动作进行处理。有人会疑问:就不能制定相应的奖励函数使得智能体学习到这种约束吗?这样做是可以的,但是付出的训练代价很大,原创 2021-07-13 20:50:00 · 8732 阅读 · 12 评论 -
看待神经网络的两种角度
神经网络包括DNN、CNN、RNN以及其他变体网络结构,主要用于拟合历史数据,预测未来数据。神经网络的核心在于反向传播梯度,使得网络能够拟合历史数据的分布。最近一段时间看了一些相关顶会的论文,发现大佬们看待神经网络主要有两个角度,总结如下:1 认为神经网络是特征提取器这种角度更符合大多数计算机视觉领域的看法,认为神经网络实现的是特征的非线性映射和提取,实现深层与浅层特征的分离。在这种角度下,神经网络的每一层都被赋予不同的涵义,其中一般其代表的特征矩阵会随着网络层数的增多而逐渐加深,并将最后一层作为最后的原创 2021-07-07 11:54:47 · 216 阅读 · 2 评论 -
大厂们的python算法编程习惯
最近在看和使用github上的代码的时候,越来越发现不同来源的代码风格差异很大,个人的代码一般都比较直观,而大厂的代码都有一些固定的习惯。最近一直在看OpenAI的深度强化学习的python代码,发现了一些平时个人不怎么常用,但是却很不错的常用法,因此记录学习一下。1 enumerate()用于包装循环,返回索引和内容:list1 = [2, 3, 4]for i, eve in enumerate(list1): print(i, eve)结果会是:1 22 33 4之前自己喜欢用原创 2021-04-24 14:18:27 · 189 阅读 · 0 评论 -
梯度提升与梯度上升的区别
梯度提升是一种算法,指的是通过一种类似于模型加法的方法,将整个问题的最优解进行提高,对应的英文叫做Gradient Boosting,核心就是BOOST,和集成学习、随机森林这些算法有很大的相似之处。通过boost操作,可以在单个模型达到一定准确度上限时对结果进一步提升,一般的竞赛中都会用到。梯度上升与梯度下降是一样的,只不过优化的是目标函数的最大值,梯度下降优化的是最小值。实际上梯度上升与梯度下降是一样的,有时候反映到公式中就是一个负号的问题。在一般神经网络解决分类或者回归问题时,采用的都是梯度下降;原创 2021-01-04 15:26:30 · 1708 阅读 · 1 评论 -
图像识别:基于ResNet网络的cifar-10数据集图像识别分析与参数对比
1 图像识别的背景作为人工智能与计算机视觉的重要组成部分,图像识别技术是目标检测、图像语义分割等技术的基础,因此,图像识别的准确率往往决定了很多其他计算机视觉技术的效果。一般来说,图像识别任务主要包括对于图像的分类;但是准确的来说,计算机本身不具有理解图像的能力,图像识别就是为了让计算机有和人类一样对图像理解的能力,包括图像表示的内容,图像中物体之间的关系等要素。图像识别是一项比较传统的技术,从一开始的模板匹配法、霍夫变换(Hough Transform),到发展了一定时期后产生的基于贝叶斯模型和马尔科原创 2020-12-20 20:54:30 · 4201 阅读 · 4 评论 -
线性回归与对数几率(Logistic)回归的区别与联系
1 线性回归线性回归其实就是高中讲过的那种回归,但是不同的是线性回归在神经网络这个学科里大多使用梯度下降来计算参数w,bw,bw,b,而高中讲的是使用最小二乘法。线性回归想解决的问题也是回归问题,公式:y=wx+b y=wx+by=wx+b也可以写成:hθ(x)=θx h_\theta(x) =\theta x hθ(x)=θx用图形表示的话:如果更新方式使用梯度下降,其中损...原创 2020-03-31 21:22:17 · 4971 阅读 · 0 评论 -
神经网络的调参技巧与关键点汇总
1 六种常见的loss曲线2 常用的调参技巧2.1 模型结构的优化2.1.1 激活函数的选择2.1.2 添加更深层次的网络2.1.3 使用前人调好的稳定模型2.1.4 选择合适的激活函数2.1.5 选择合适的优化算法2.1.6 dropout层的添加2.2 参数值的设置优化2.2.1 参数初始化2.2.2 批归一化batch normalization2.2.3 损失函数添...原创 2019-09-01 15:30:50 · 6381 阅读 · 0 评论