aiken's blog
  • home
  • archives
  • search
  • Aiken's Blog
  • home
  • posts
  • tags
  • categories
  • archives
  • about
  • search
  • linklog
Home

Posts

RL-MobaAI

Created by: Aiken H Desc: GAME, RL Finished?: Yes Tags: Paper 《Master Complex Control in MOBA Games with Deep Reinforcement Learning》 论文阅读笔记 @Aiken H 2021.06 Introduction and Related Research. MOBA游戏的复杂度和状态空间都远比以前的围棋之类的运动更大,所以难度会更大一些 早一些的游戏ai使用的是(2015) Deep Q-Network 通过 supervised learning and self-play 结合的训练策略在围棋上击败了专业人类,而最近更多的使用了DRL(Deep Reinforcement Learning)的方法在近几年被进一步的应用。 Neural Network Architecture Include Contributions the encoding of Multi-modal inputs 多模态输入 the decoupling of inter-correlations in controls 控制内关联解码 exploration pruning mechanism 剪枝设置 Action mask for efficient exploration ❓效率 attack attention(for target selection) Attention机制做目标选择 LSTM for learning skill combos LSTM 机制做技能释放和链接 Optimize by multi-label proximal policy algorithm(improved PPO) dual-clip PPO 帮助训练的收敛 present a systematic and thorough study ...

May 30, 2021 · 2 min · 279 words · aikenhong ·  RL
#RL

RL Notebook 01

Created by: Aiken H Detail: survey Finished?: No Tags: Paper URL1: https://www.cnblogs.com/pinard/category/1254674.html URL2: https://github.com/ljpzzz/machinelearning URL3: https://datawhalechina.github.io/easy-rl/#/ Chapter1 模型基础 强化学习(一)模型基础 强化学习是介于监督和无监督学习之间的,强化学习没有输出值,但是有reward: 同时这个reward是事后给出的,而不是及时回馈的。而无监督学习是只有数据特征,同时数据之间是独立的,没有前后依赖的关系。 Theory理论基础 简化模型介绍: 上面的大脑代表我们的算法执行个体,我们可以操作个体来做决策,即选择一个合适的动作(Action)At。下面的地球代表我们要研究的环境,它有自己的状态模型,我们选择了动作At后,环境的状态(State)会变,我们会发现环境状态已经变为St+1,同时我们得到了我们采取动作At的延时奖励(Reward)Rt+1。然后个体可以继续选择下一个合适的动作,然后环境的状态又会变,又有新的奖励值。。。这就是强化学习的思路。 强化学习的模型关键要素: 环境的状态S:t时刻环境的状态 $S_t$ 是它环境状态集中的某一个状态 个体的动作A:个体在某个时刻可能做出的动作集合 环境的奖励R:个体在某个时刻对应状态下做出的动作 $A_t$ 得到的奖励会在t+1时刻得到 个体的策略 $\pi$ :个体根据当前的环境选择采取动作的策略分布(函数),一般表示为一个条件概率分布的形式,概率大的动作被个体选择的概率显然更高 $$ \pi(a|s)= P(A_t = a | S_t = s) $$ 在策略 $\pi$ 和状态s采行动后的价值 $v_\pi(s)$ :一般是一个期望函数,因为我们不能每次只能选择当前的reward最大的策略,而是需要考虑大局,所以我们要有一个综合的(当前和后续)的延时奖励。 $$ v_\pi(s) = \mathbb{E}(R_{t+1} + \gamma R_{t+2} + \gamma ^2 R_{t+3} + ... |S_t = s) $$ 奖励衰减因子 $\gamma$ :也就是上式的权重,极端值考虑贪婪和一致等同,范围在[0,1] 环境的状态转移模型:也就是环境从s经过a后转化下一个状态的状态机,也可以表示为一个概率模型 $P_{ss^‘}^a$ (s→s’ , a) 探索率 $\epsilon$ :主要用于训练迭代中,我们一般选择当前价值最大的动作,但是为了搜索空间的完备,我们会用 $\epsilon$ 的概率去选择非最大价值的动作,来提升训练的鲁棒性 SUMMARY:主要介绍了强化学习模型的workflow以及其中需要考虑的8个主要参数和函数架构。最主要的机制还是Policy和reward设计这一块 ...

May 23, 2021 · 4 min · 748 words · aikenhong ·  RL
#RL

经典深度学习与机器学习算法

文章的部分内容被密码保护: --- DON'T MODIFY THIS LINE --- LINK1 深度学习部分 DenseNet 任意的两层之间都存在直接的链接,每一层的输入都是前面的所有层的输出的并集,而该层学习的特征图也会是后面所有层的输入,DenseBlock中需要Feature_map保持一致; Block与Block之间的降采样则使用transition layer,使用BN,1*1的 conv,Pooling来降维 优缺点: 省参数,省计算 抗过拟合,泛化能力强 需要保存Feature占显存 EfficientNet 针对卷积神经网络的模型拓展,可以通过:1 增加网络规模可以、 增加模型宽度,增加模型深度,增加输入图像的分辨率,但是如何去人工调整这个比例和参数,比较麻烦, 实验发现ConvNet缩放过程中平衡网络宽度、深度、和分辨率的维度是很重要的 EfficientNet就是对这些的合理组合,复合型的模型扩展技术集合神经结构搜索技术获得 关键技术复合扩张技术 所以本文提出了复合扩张方法,这也是文章核心的地方, $$ \alpha,\beta,\gamma $$ 是我们需要求解的一组参数,如下图公式,带约束的最优参数求解。 $$ \alpha,\beta,\gamma $$ 分别衡量着depth, width和 resolution的比重,其中 $$ \beta,\gamma $$ 在约束上会有平方,是因为如果增加宽度或分辨率两倍,其计算量是增加四倍,但是增加深度两倍,其计算量只会增加两倍。 ...

April 23, 2021 · 4 min · 799 words · aikenhong ·  Survey
#Survey

Involution

@Aiken 2021-4-8 Ariticle ;Paper ;:star:Code; ZHIHU Intro 引子 提出了一种新的神经网络算子(operator或op)称为involution,它比convolution更轻量更高效,形式上比self-attention更加简洁,可以用在各种视觉任务的模型上取得精度和效率的双重提升。 通过involution的结构设计,我们能够以统一的视角来理解经典的卷积操作和近来流行的自注意力操作。 基本思想 将传统Convolution Kernel 的两个基本特性: **空间不变性:**在同个通道的HW上共享3*3的卷积系数,参数共享; **通道特异性:**在每个通道上有特异的卷积核,最终使用1*1 like的方式来进行通道间的整合 反对称的修改成: 空间特异性: 对每个Feature有对应size $H·W·K·K·G | G«C$ 的kernel,特异性的对不同图像的不同部分进行处理 G表示Involution操作的分组数,如果需要下采样,就需要接步长为2的平均池化层,最终可以得到,实际上是一个分组卷积的方式,也就是说,我们K个一组的共享一个Kernel。用G去切分C,最终组合起来 **通道不变性:**对每个通道之间共享这样的kernel,然后做简单的线性整合,对每个不同的channel有相同的处理方式。 传统的卷积基于邻域相关性的思想,同时旨在同一个channel中用单一的角度去分析特征,所以有空间不变性核通道特异性的这两个特征。 而Involution实际上更像是Self-Attention这种思路,通过Whole-Size的Kernel,执行一个特异性处理? 要点分析 这一部分主要介绍一些实现上的技术/理论要点: 生成FeatureMap对应Size的Kernel 通用的公式如下,我们可以自定义对应的Kernel生成Function,这是算法的开放性和潜力所在。 $$ \mathbf{H}_{i,j} = \phi(\mathbf{X}_{\Psi_{i,j}}) \\ \Psi_{i,j} 是邻域的一个index集合,\mathbf{X}_{\Psi_{i,j}}是包含i,j的邻域的一个patch $$ 其中可能会包含一些线性变换和通道缩减之类的变换,一种简单的实例化可以由下图来理解。 对某个index,首先转化生成对应的 $K^2$ ,对应的Value,然后通过加权整合得到最终的OutputValue, Channel 数的放射就又我们的对应生成的Kernel数去控制。 ...

April 8, 2021 · 1 min · 82 words · aikenhong ·  ML-Backbone
#ML-Backbone

Knowledge Evolution

Knowledge Evolution in Neural Networks @Aiken 2021.4.7 Article:只能当成OverView,技术细节写的很差 ;Mendeley; Code_PyTorch Intro引子 Problem:如何在较小的数据集上训练神经网络,这到底是个小样本的方法还是个类别增量的方法? Motivation: 考虑生物“基因”进化的方式,有一部分是“祖传”,另一部分是“适应”,通过对“祖传”的假设的不断学习进化,得到一个新的模型。 基因编码了从祖先到后代的遗传信息(知识),而基因传递将遗传信息从父母传递至其后代。虽然祖先并不一定具有更好的知识,但是遗传信息(知识)在几代人之间的发展将会促进后代更好的学习曲线。 Hypothesis: 拟合假设 $H^{origin}$ : 重置假设: $H^{later}$ TOBEUPDATE:将神经网络拆分成两个假设(子网络):通过重新训练多代网络来进化 $H^{origin}$ 中的知识,每一代都会扰乱 $H^{later}$ 的内部权重来鼓励 $H^{origin}$ 学习独立的表达形式。 将深度神经网络的知识封装在一个名为拟合假设的子网络H中,将拟合假设的知识从父母网络传递至其后代,即下一代神经网络。并反复重复此过程,在后代网络中证明了其性能的显著提升: Contribution: 提出了KELS(内核级卷积感知拆分),为CNN量身定做。虽然增加了训练时间,但是大大降低了推理成本,也减轻了较小数据集中的过拟合问题。 提出了KE,提升网络在较小数据集上的性能 KELS,训练时自动学习slim网络,支持CNN,降低推理成本 Related Work 与两种不同的训练方法作比较 DSD:在网络结构上与这种dense-sparse-dense 理论与实现细节 上图展示的是 普通Fliter:3in 4out ...

April 7, 2021 · 1 min · 94 words · aikenhong ·  Semi-SL
#Semi-SL

Leetcode 刷题笔记

文章的部分内容被密码保护: --- DON'T MODIFY THIS LINE --- @Aiken 2021; 汇总LeetCode刷题以及刷《剑指offer》过程中遇到的一些不会做的题或者启发性很强的题目等等;内容主要以以下几个方面为主: 题目-题解-相关注释; 相关难点分析; 相关知识点索引 同时copy到数据结构或者c++的文档中) 《Fuck Algorithm》 针对各个专题指向性的去刷一些Leetcode中的题目,通过对这些题目进行分析整合来对巩固各个知识点,这一部分的代码整合到/leecode文件夹中,但是主要可能整合在md中; 这里可以顺便把git的内容整理一下,本地的git操作流程 最近先把数据结构刷了,变刷变看后面的搜索等等的内容,一部分一部分的往后看 第一课中回溯和其他规划的题还没看,后续再看看 思考C++中多返回值的设计 数据结构的存储方式 数据结构的存储方式 (物理层面的存储方式):数组(顺序存储)和链表(链式存储)。 最底层的存储架构上基本上只有这两种实现的方式,更高维的才是:栈、队列、堆、树、图这些高层结构; 而这些实现的高层实现上,分别使用量中架构有啥优缺点: 综上,数据结构种类很多,甚至你也可以发明自己的数据结构,但是底层存储无非数组或者链表,二者的优缺点如下: 数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内存空间必须一次性分配够,所以说数组如果要扩容,需要重新分配一块更大的空间,再把数据全部复制过去,时间复杂度 O(N);而且你如果想在数组中间进行插入和删除,每次必须搬移后面的所有数据以保持连续,时间复杂度 O(N)。 链表因为元素不连续,而是靠指针指向下一个元素的位置,所以不存在数组的扩容问题;如果知道某一元素的前驱和后驱,操作指针即可删除该元素或者插入新元素,时间复杂度 O(1)。但是正因为存储空间不连续,你无法根据一个索引算出对应元素的地址,所以不能随机访问;而且由于每个元素必须存储指向前后元素位置的指针,会消耗相对更多的储存空间。 二分查找专题 由于我经常写错二分查找的边界判断条件,所以这里进行一个整理操作: 二分查找总结专题 后续整理的时候在进行阅读一下,加深一下理解 其中需要注意的是: 我们使用 left+(right-left) /2 来代替 (l+r)/2 ,因为这样的话可以防止right和left太大溢出的操作; mid +- 1 以及最终的返回条件 <= 还是小于 我们分情况来讨论: 求的是特定值,求的是左右的边界值的时候, cpp int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { left = mid + 1; } else if (nums[mid] > target) { right = mid - 1; } else if(nums[mid] == target) { // 直接返回 return mid; } } // 直接返回 return -1; } int left_bound(int[] nums, int target) { int left = 0, right = nums.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { left = mid + 1; } else if (nums[mid] > target) { right = mid - 1; } else if (nums[mid] == target) { // 别返回,锁定左侧边界 right = mid - 1; } } // 最后要检查 left 越界的情况 if (left >= nums.length || nums[left] != target) return -1; return left; } int right_bound(int[] nums, int target) { int left = 0, right = nums.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { left = mid + 1; } else if (nums[mid] > target) { right = mid - 1; } else if (nums[mid] == target) { // 别返回,锁定右侧边界 left = mid + 1; } } // 最后要检查 right 越界的情况 if (right < 0 || nums[right] != target) return -1; return right; } 数据结构的基本操作 所有数据结构的基本操作一般都局限在 遍历+访问,更具体一点就是:增删改查; ...

February 23, 2021 · 62 min · 13050 words · aikenhong ·  Leetcode ·  Cpp
#Leetcode #Cpp

SSH 常用场景和操作

主要介绍ssh服务在以下的几个方面(windows,linux)的使用情况:远程服务器连接(22),git&github(gitee),vscode免密登录。 ssh-key GITHUB关于SSH的教程 👈可以直接切换成中文模式的 查看是否已存在 bash ls -al ~/.ssh **初始化 / 生成 ssh key ** bash # github 推荐,优先度从上到下递减 ssh-keygen -t ed25519 -C "your_email@example.com" # if not support ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # tradition ssh-keygen -t rsa -C "chenlangl@outlook.com" 将ssh添加到github的个人权限界面中 ...

February 22, 2021 · 2 min · 229 words · aikenhong ·  SSH ·  Git
#SSH #Git

GANs 01

fGAN 对GAN理论的深度理解 @Aiken 2021 onenote部分的拓展编写,到时候拷过去,整合在一起。 fGAN: 不只是JS-Div散度,我们可以将所有的散度都应用到GANs的框架中。该部分的阅读是对GAN的基本理论最重要的文章之一。 基本理论体系和推演 首先给出fGAN中提出的基本理论:可以将所有的Div放入GANs的框架中,来做那个核心的关键演化判别指标: $$ D_{f}(P||Q) = \int_xq(x)f(\frac{p(x)}{q(x)}dx) $$ 上述公式将衡量P和Q两个分布之间的差距,公式中的 $f$ 可以是很多不同的版本,但是要求满足如下的两个条件: 是一个凸函数; $f(\frac{(x1+x2)}{2})\leq \frac{[f(x1)+f(x2)]}{2}$ ,需要注意国内外的凹凸相反 $f(1)=0$ 。 而我们知道 $q(x)$ 是概率密度分布函数,实际上可以看成凸函数性质的推广,所以我们可以证得: $$ D_{f}(P||Q) = \int_xq(x)f(\frac{p(x)}{q(x)}dx) \geq f(\int q(x) \frac{p(x)}{q(x)} dx) = f(1) = 0 $$ 显然当我们取得合适的f,KL( $f(x) = xlog(x)$ ); ReverseKL( $-log(x)$ );chi square ( $f(x) = (x-1)^2$ ); Fenchel Conjugate共轭 补充Fenchel共轭的知识来对后续的fGAN推导进行补充,定理内容如下: 每个凸函数都有一个对应的共轭函数读作 $f^*(x)$ $$ f^*(x) = \max \limits_{x\in dom(f)} xt - f(x) $$ t是给定的,对于所有的变量t, $xt-f(x)$ 对应了无数条直线: ...

October 19, 2020 · 2 min · 253 words · aikenhong ·  GAN
#GAN

Latex Function Test

该文档主要目的是用于测试Latex语法对应前端的渲染能力,主要用于测试Hexo站点是否能正常渲染Latex。 Example1: 2 inline in one sentence. When $a \ne 0$, there are two solutions to $(ax^2 + bx + c = 0)$ and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ Example2: Matrix Example $$ \begin{bmatrix} 1&x&x^2\ 1&y&y^2\ 1&z&z^2 \end{bmatrix} \ \begin{bmatrix} 1&x&x^2\\ 1&y&y^2\\ 1&z&z^2 \end{bmatrix} \ vmatrix ||、Bmatrix{}、pmatrix() $$ Example3: the Conditional Formula $$ f(x)= \begin{cases} 0& \text{x=0}\\ 1& \text{x!=0} \end{cases} $$ Example4: Sprcial Symboy $$ \lim_{\alpha \rightarrow +\infty} \frac{1}{\alpha(\beta+1)} $$ ...

September 15, 2020 · 1 min · 165 words · aikenhong ·  Util
#Util

Image Caption Dataset

Goals: 1.数据量要求 2.标注的标准 3.标注的手段 Microsoft COCO Captions: 使用Amazon的Mechanical Turk(AMT)收集数据,再对数据进行标注。 “Each of our captions are also generated using human subjects on AMT.” 一些其他信息:(Caption Evaluation Server): 好像是可以评价caption的生成质量,但是应该是仅仅针对于使用COCO数据进行的,所以这一部分就不分析了。 文中(section 3)包含了几种不同评价方法的介绍: BLEU ROUGE METEOR CIDEr 在进行Evaluation之前的 Tokenization and preprocessing中: 使用了工具来添加caption标记: Stanford PTBTokenizer in Stanford CoreNLP tools (version 3.4.1) 这个工具是模仿的是peen treebank3. 其参考文献和相关链接如下: “The Stanford CoreNLP natural language processing toolkit,” in Proceedings of 52nd Annual Meeting of the Association for Computational Linguistics: System Demonstrations, 2014, pp. 55–60. related-link ...

January 14, 2020 · 2 min · 281 words · aikenhong ·  Dataset ·  Image Caption
#Dataset #Image Caption
<< « Prev 15/17 Next 17/17 » >>
© 2025 aiken's blog Licensed under CC BY-NC 4.0 · Powered by Hugo & PaperMod Visitors: Views: