自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

铁锹的填坑记录

科技改变世界

  • 博客(103)
  • 收藏
  • 关注

原创 论文阅读24 - VAE - Variational AutoEncoder (Auto-Encoding Variationl Bayes)

VAE一篇讲的很好的博客理论推导博客论文原文斯坦福课件上面的博客已经很好很深入了,下面记录一下我个人的直观理解。具体理论移步上面的博客。这里只是作为日后使用时的快速查阅。不具有理论推导的严谨性。1. 直观理解:第一次接触VAE还是在World Model这篇论文。VAE主要由三部分组成:Encoder 编码器,用来中间向量z分布,即p(z∣x)p(z|x)p(z∣x)z向量 Encoder的输出,Decoder的输入。可以当做降维之后的输入。p(z)p(z)p(z)Decoder

2020-11-16 14:25:44 17

原创 论文阅读23 - Mixture Density Networks(MDN)混合密度网络理论分析

Mixture Density Networks最近看论文经常会看到在模型中引入不确定性(Uncertainty)。尤其是MDN(Mixture Density Networks)在World Model这篇文章多次提到。之前只是了解了个大概。翻了翻原版论文和一些相关资料进行了整理。1. 直观理解:混合密度网络通常作为神经网络的最后处理部分。将某种分布(通常是高斯分布)按照一定的权重进行叠加,从而拟合最终的分布。如果选择高斯分布的MDN,那么它和GMM(高斯混合模型 Gaussian Mixtu

2020-11-14 16:02:49 95

原创 RL论文阅读22 - MB - World_Model

RL论文阅读-World_Model写博客一年多了,当初拍脑袋想写个博客记录一下自己的学习历程,也算不辜负青春年华。写了一堆字多的字少的水的不水的读得懂的读不懂的,这个刚好第100篇。继续坚持。1. TittleOnline 版本2. 标签model based3. 解析 world model这篇论文属于基于模型的强化学习(MB-RL)一种。与一些其他的MB算法不同的是,world model 算法在建模时直接使用图片帧来进行过建模。该算法在模型训练好后,可以脱离实际环境,让

2020-11-12 21:19:40 20

原创 BatchNormalization和ResNet好文收录

BatchNormalizationResNet

2020-11-06 09:35:22 12

原创 RL论文阅读21-MB-PILCO2011

1. Tittle 20112. 标签model basedplanningdata efficientcontinuous / discrete3. 总结MB类算法,一个关键问题在于减少模型的偏差。一个模型偏差过大,那么使用这个模型进行planning必然不准确。PILCO减少误差的方式是学习一个基于概率的动力学模型,并且在进行long-term planning 时,引入了模型的不确定性(model uncertainty)PILCO可以使用很少的数据并且在少数尝试之后完成

2020-11-04 09:14:44 43 1

原创 最近总结和几篇好文收录

LSTM理论基础长短期记忆网络这篇博客《如何简单的理解LSTM——其实没有那么复杂》)介绍的很好英文原文《Understanding LSTM Networks》图片来自上述博客在应用的时候,我们只需要处理外部的三个变量hth_tht​, ctc_tct​, xtx_txt​pytorch使用解析LSTM相关的有两个已经包装好的类 LSTM和LSTMCell区别在于:LSTM类的默认输入一系列时间步,然后它你能够自动处理每一层的输出,不需要手写前向传播LSTMCell是LSTM

2020-11-02 16:42:04 15

原创 RL论文阅读20 - MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)

PG类算法总结1. On-Policy类算法1.1 VPG:Vanilla Policy Gradienton policy 算法可用于动作空连续或者离散动作空间这个就是最初的PG版本。我们的目的是最大化有限的return。J代表的是无折扣的有限return。下面的公式推导见从PG到A3C![\nabla_{\theta} J(\pi_{\theta}) = \underE{\tau \sim \pi_{\theta}}{ \sum_{t=0}^{T} \nabla_{\theta

2020-10-19 17:23:14 76

原创 RL论文阅读18 - MF- SAC2018(Soft Actor-Critic)

1. Tittle![image-20201015093910870](18-SAC2018(Soft Actor-Critic).assets/image-20201015093910870.png)2. LabelModel-Freeoff-policyContinuous action space微小改动policy更新规则,可以用discrete action space3. 总结SAC算法相对于DDPG来说减少了一些超参数,使得算法更容易收敛,也更加稳定。例如DDPG在训练月球

2020-10-19 17:14:19 27

原创 RL论文阅读19 - AlphaGo Zero原理浅显分析

最近偶然看到一个写轻量版(5*5)围棋的问题,当时第一时间就想到了当年(2015年吧)让世界震惊的AlphaGo。好奇心驱使,查了一下相关理论。发现AlphaGo已经被它的新一代版本AlphaGo Zero(2017)给打败了。怀着对科研前辈瞻仰的心情,浅显的研究了一下AlphaGo Zero的原理。原来,AlphaGo Zero才是真正的棋神文章目录Tittle分析:MCTS是什么东西?AlphaGo Zero后记ReferenceTittle分析:AlphaGo Zero主要是有两部分组成.

2020-10-16 21:30:21 37

原创 RL论文阅读12-mf-HER2017(更新)

[TOC]1. Tittlesource20172. 标签model-free3. 总结针对的问题:reward function的设计是很复杂的,不仅需要反映任务的本质 而且还有精心设计才能够使策略最优化。稀疏奖励或者二进制奖励很难训练。提高reward是稀疏的或者是1/0的这种形式时的sample-efficiency,从而避免复杂的reward设计。解决方法:提出了一个新的技术叫做Hindsight Experience Replay。 能够针对所有的off-

2020-10-16 09:56:04 31

原创 2020年10月14日:最近几天复现论文踩坑记录

最近踩的坑:在ddpg算法类的actor网络中输入1个state来获取action,要扩展成batch_size为1的tensor。否则出来的维度不同,导致后面计算熵出错。出错还好,就是怕不报错,就需要慢慢排查。对于target类网络,不需要使用梯度更新的,可以关掉梯度来节省内存提高速度。iterator.chain()返回的迭代器只能使用一次,for循环后将失效。需要重新创建迭代器。(因为这个原因导致critic的网络没有被更新)l1 = [1,2,3]l2 = [4,5,6]l1

2020-10-14 19:34:18 25

原创 Linux(Ubuntu18.04)docker、conda、pip源等杂记

文章目录pip修改官方源Conda安装使用更换国内源设置默认不启动(去掉终端basic)简单用法docker常用pip修改官方源Linux下创建文件 ~/.pip/pip.conf[global]index-url = http://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com或者(win上同样适用)pip config set global.index-url http://mirrors.

2020-09-30 22:03:08 31

原创 RL论文阅读14-MB-PETS2018

1. Tittle2. 标签Model Based3. 总结3.1 针对的问题MB算法虽然能够获得很棒的sample efficienty,但是通常落后于最好的model-free。在大规模参数的函数估计器中更为明显,如神经网络。本论文就是研究如何跨越这个差距。提出了Probabilistic ensembles with trajectory sampling(PETS)。算法结合了 不确定性感知深度网络动力学模型和基于采样的不确定性传播。(uncertainty-aware deep

2020-09-28 22:24:34 39

原创 写在前面

本系列为笔者拜读《Head First Design Patterns》英文版笔记整理。其中代码大部分来自该书。如有理解偏差或错误请指正。

2020-09-20 19:25:52 11

原创 设计模式(12)Compund Pattern 各种模式的组合使用案例

<h1 id="模式的组合使用">模式的组合使用</h1><h2 id="案例一:小鸭子">案例一:小鸭子</h2><p>这里仍然使用书中第一章的鸭子的案例。</p><p>首先创建一个“叫”的接

2020-09-20 19:21:39 26

原创 20-今日三扣(剑指Offer)-变态青蛙跳台阶(dp)-矩形覆盖(dp)-二进制1的个数(移位).md

题目描述牛客网一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:无论怎么跳,对于n级台阶,青蛙最后一跳可能是1~n。假设青蛙对于m级阶梯的跳法有f(m)种。最后一跳是1,前面需要跳n-1级,所以此时为f(n-1)种可能。最后一条是2, 前面需要跳n-2级,此时为f(n-2)种可能。…最后一条是n,则青蛙一跃而上,此时只有1种跳法故最终为f(n-1)+f(n-2)+…f(1)+1使用动态规划,自底向上的构建思路,先计算f

2020-09-18 17:02:59 32

原创 设计模式(11)代理模式(The Proxy Pattern)- 2 虚拟代理和动态代理

代理模式定义为另一个对象提供一个代理或者占位符,来控制对他的访问。几个控制访问的方法:一个远程代理控制对远程对象的访问虚拟代理控制对创建成本较高的资源的访问保护代理控制对于权限资源的访问远程代理见:设计模式(11)代理模式The Proxy Pattern - 1 - 远程代理rmi虚拟代理虚拟代理用来标识一个需要昂贵代价去创建的对象。虚拟代理通常来推迟这个对象的创建,直到这个对象被需要时再创建。在被代理对象创建完成之前,虚拟代理扮演者被代理者(RealSubject)

2020-09-17 15:21:17 22

原创 OpencCV制作相框效果

思路:使用PS制作一个png格式的相框。中间为透明的。命名为wraper.png使用openCv读取wraper.png。判定通道4(alpha)是否为0。如果为0则表示透明的部分。如果为255则表示完全不透明的部分。将所有值不为0的像素点在图片中的行、列记录下来。读取要覆盖的图像src.jpg。根据第二步记录的位置坐标,将src.jpg中的图片像素替换成wraper.png的像素值。注意事项:imread()读取图片时,默认读取3个通道,即BGR通道。当读取png图片时,需要制定另一个参数

2020-09-13 22:21:15 15

原创 19-今日一扣(LeetCode)-223-两个矩形重叠面积以及融合面积计算-M

223. 矩形面积LeetCode计算两个矩形融合之后的面积。(非原题描述)题解:本体思路不是最优的,利用了之前的两个矩形重叠判断的思路。该思路也可以用来求解矩形重叠部分的面积。融合后面积 = 两个矩形的总面积 - 重叠部分面积重叠部分的面积 = x方向投影的交集长度 * y方向投影的交集长度在投影交集计算时,即计算[a,b]与[c,d]的交集的长度。手下令[a,b]域永远是左侧起点那个集合。如果不是,进行交换。class Solution { public int comput

2020-09-03 11:02:45 67

原创 import com.sun.jdi.xxx / the import com.sun.jdi cannot be resolved 解决方案(eclipse)

环境java9+eclipse问题表现:在使用sun.jdi包时无法导入该包。the import com.sun.jdi cannot be resolved解决方案:更换jre为jdk。window->preference->java->installed JRE我的默认是安装java时一起安装的jre。添加一个新的,位置为JDK的根目录,就会出现圈6的那个。就能找到相应的包了。...

2020-08-11 18:47:59 62

原创 1-剑指offer-1-剪绳子-DP-2-机器人的运动范围-DFS/BFS

1. 剪绳子题目描述Online给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述:输出答案。示例1输入8输出18题解分析:对于长度n的绳子,我们都进行不

2020-07-29 21:24:34 14

原创 18-今日一扣(LeetCode)-474-DP01背包-M

474. 一和零LeetCode在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。注意:给定 0 和 1 的数量都不会超过 100。给定字符串数组的长度不会超过 600。示例 1:输入: Array = {"10", "0001&q

2020-07-29 21:21:53 21

原创 17-今日一扣(LeetCode)-416-DP01背包-M-494-DP01背包-M

416. 分割等和子集-M给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.题解思路:向01背包问题转化。本题虽然是分成两个大小相同的组。也就是说,

2020-07-28 21:11:28 34

原创 16-今日两扣(LeetCode)-62-DP-M-413-DP-M

62. 不同路径-MLeetCode一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -> 向右 -&gt

2020-07-27 11:56:06 25

原创 14-今日三扣(LeetCode)-695-DFS-M-17-回溯-M-70-DP-E

695 岛屿最大面积-M-DFS两种写法题目:LeetCode给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0

2020-07-26 20:51:17 27

原创 15-今日扣(LeetCode)-64-DP-M

<h2 id="64最小路径和">64.最小路径和</h2><p><a href="https://leetcode-cn.com/problems/minimum-path-sum/">LeetC

2020-07-26 20:50:14 35

原创 13-今日再两扣(LeetCode)-445-贪心-E-435-贪心-M

455. 分发饼干-ELeetCode假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。一个小朋友最多只能拥有一块饼干。示例 1:输入: [1,2,3], [

2020-07-25 16:38:12 28

原创 12-今日三扣(LeetCode)-347-桶排序(出现频率的排序)-M-451-桶排序-M -75-荷兰国旗问题-M

347. 前 K 个高频元素LeetCode给定一个非空的整数数组,返回其中出现频率前 k 高的元素。要求时间复杂度nlogn以下。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]题解两个关键点:使用HashMap来记录访问的次数使用PriorityQueue创建大顶堆,根据HashMap里面存储的次序对其进行排序,然后取前k个。或者创建大小为k的小顶堆时间复杂

2020-07-25 10:27:19 74

原创 11-今日一扣(LeetCode)-215-快速选择排序-M*/堆排序

215. 数组中的第K个最大元素LeetCode在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4题解调用库函数现实工作中最常用的方法:效率高于纯的快排。2ms左右 public int findKthLargest(int[] nums, int k) {

2020-07-24 16:10:03 43

原创 10-今日一扣(LeetCode)-198-E-动态规划-213-E-动态规划

文章目录198-打家劫舍-E题解213-打家劫舍2-M题解198-打家劫舍-ELeetcode是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金

2020-07-24 08:23:10 29

原创 mySQL server has gone away

个别数据包太大,修改允许的最大值终端:set global max_allowed_packet = 6410241024

2020-07-23 11:10:21 51

原创 9-今日一扣(leetcode)-227-广度优先搜索BFS/双向广度优先搜索*-M

题目:单词接龙Leetcode给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。解决方案每次只能改变一个字符,且等长。

2020-07-12 21:29:39 66

原创 8-今日一扣-leetcode-376-递归/动态规划/递归贪心/BFS-M*

完全平方数题目Leetcode给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解决方案递归暴力破解法这个解法会超出时间限制。但是后续的算法是对该算法的一个提升。原理:numSquares(n)=min⁡(numSquare(n−square)+1

2020-07-10 17:26:08 45

原创 7-今日一扣-1091-广度优先搜索BFS-M

二进制矩阵的最短路径在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1)。一条从左上角到右下角、长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_2, …, C_k 组成:相邻单元格 C_i 和 C_{i+1} 在八个方向之一上连通(此时,C_i 和 C_{i+1} 不同且共享边或角)C_1 位于 (0, 0)(即,值为 grid[0][0])C_k 位于 (N-1, N-1)(即,值为 grid[N-1][N-1])如果 C_i 位于 (r, c),则 g

2020-07-09 18:07:41 33

原创 Model-Based RL-基于模型的强化学习-理论详解1:最优控制和规划问题(Optimal Control and Planning)/ CEM/MCTS/LQR

[TOC]1. MB概念引出1.1 概念强化学习的目标就是希望agent做出的动作序列得到最多的累计奖励,假设我们知道两个状态之间的转换概率$p(s_{t+1}|s_t,a_t)$,那么我们的算法可以表示为:上图中第一个式子是状态动作序列$\tau$的概率。优化agent训练的依据就是最大化序列奖励的数学期望。Model-Based reinforcement learning就是学习动力学转换概率,然后算出如何去选择动作。1.2 MB三个阶段知道了动力学模型,如何做出好的决策,最优控制和

2020-07-09 10:55:12 245

原创 6-今日一扣-95-分治递归-M*

生成二叉搜索树LeetCode给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。示例:输入:3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1

2020-07-08 20:20:58 41

原创 Java多线程笔记/java和go多线程区别/锁升级/锁的底层实现/volatile底层实现

[TOC] 视频地址: 马士兵老师公开课视频地址用户态、内核态以前的操作系统,os(操作系统)和app(用户应用程序)是在同一级别。这就导致app可以修改操作系统所占用的内存等,导致系统崩溃。现在的操作系统,内核与硬件(内存、网卡等)打交道,所有的app运行在内核的外部。app需要与内核交互才能获取相应的资源。(蓝色矩形代表内存)java多线程模型JVM虚拟机规范没有要求。Hostpot(Oracle的JVM实现) 1:1。JVM每个线程对应OS中一个线程。线程锁、线程调度都交给

2020-07-08 16:36:03 83

原创 5-今日一扣-241-分治递归-M*

题目leetcode给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: “2-1-1”输出: [0, 2]解释:((2-1)-1) = 0(2-(1-1)) = 2示例 2:输入: “23-45”输出: [-34, -14, -10, -10, 10]解释:(2*(3-(45))) = -34((23)-(45)) = -14((2(3-4))5) =

2020-07-07 20:23:49 40

原创 4-今日一扣-34-二分法-M

查找目标范围LeetCode给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]解决方案class Solution {

2020-07-06 18:45:58 664

原创 本系列说明

该系列是自己的Leetcode记录,用来激励自己坚持算法训练。其中刷题顺序参考CYC2018的github整理,在此表示感谢。Keep On!

2020-07-05 19:25:19 94

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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