首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么你画的Seurat包PCA图与别人的方向不一致?

下面是转录组讲师实战单细胞的投稿 事情是这个样子的,老板扔给我一篇《单细胞数据挖掘》文献要我重复这个文章中的结果,然后,就然后,我发现我画出来的PCA图与作者的方向颠倒了。如下所示: ?...老板也不想 后来有我们的《单细胞转录组CNS图表复现交流群》一位同行也遇到过,他告诉我可能是随机种子的原因,一下子就找到了方向不是。...插个话题:关于随机种子 set.seed:设置R的随机数生成器的种子,这对于创建可复制的模拟或随机对象非常有用。 举个例子,创造可复制的模拟价值。...Tip:在运行模拟时使用set.seed函数,以确保所有结果、图形等都是可复制的。...经过初步探索,发现将seed设置为NULL就可以与文章中的图一致: 后面我发现只要seed大于2就会相反,小于2设置为2,比如1或者-1等都可以保持一致,这就很诡异了,作者本身的默认值42难道不是为了给大家在运行这个结果的时候保持一致的结果用的么

3.1K43
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CryptoShield勒索病毒分析

    如果我们进入这个函数,我们可以发现他从’A’循环到’Z’,当它循环到’C’的时候,GetVolumeInformation 这个API成功获得了C盘的序列号并且跳出了循环。...在我的虚拟机里面,’C’盘的序列号是EC4EBD1D。在第二个函数里面,它用了GetUserName这个API并且用用户名称来计算出一个数字。 ?...分析一下大致的算法就是,把每个字母的ascii值乘以128然后加下一个字母,一直循环下去。所以我的用户名’sam’就得到了1CF0ED。...这是病毒用来永驻系统的。它复制了自身,并且通过设置注册表来达到这个目的。看下注册表的改变。 ? 好了,我们继续。 ? 我划了红线那个函数就是加密函数了。双击进入。 ? 这个病毒检测了磁盘的类型。...我这里C盘病毒查找到的一个文件是python安装包里面的一个,所以可以看到python字样。 ? 大家可以看到,加密之后内容发生了改变。 为了让整个过程更加清晰,我画了一个图来表示整个过程。 ?

    1.3K60

    变革尚未成功:深度强化学习研究的短期悲观与长期乐观

    有时候这样做是必要的,但是我并不觉得我从中学到了什么。 作为参考,以下列出了「乐高堆叠」那篇论文中的奖励函数之一。 ?...在与其他强化学习研究者交谈的过程中,我听到了一些因为没有设计合适的奖励函数,而导致奇怪结果的轶事。 我的一位合作者在教智能体进行室内导航。如果智能体走出了边界,事件就会终止。...当智能体进行对抗训练时,就发生了某种协同进化。智能体非常擅长和对手对抗,但是当它们被部署在一个没有见过的智能体上时,性能就会下降。我还想指出的是,这些视频中唯一不同的地方就是随机种子。...下面是修复了所有 bug 之后的性能图。每一条曲线都是 10 次独立运行中的奖励函数。它们拥有相同的超参数,唯一的区别是随机种子。 ? 其中有 7 次运行是成功的,3 次没有成功,成功率是 70%。...ResNets、batchnorms 或者非常深的网络在这里没有任何作用。 [监督学习] 希望它起作用。即使把有些东西搞砸了,你也会得到一个非随机的结果。但是强化学习是被强迫起作用的。

    1.4K60

    反向用随机梯度下降来优化人生

    收敛情况很好的,往往是图片分类这种目标非常明确而具体的。比如真实机器人面临的搜索空间很大的任务,很容易发散[2]。 李沐:坚持走。不管你的目标多复杂,随机梯度下降都是最简单的。...每一次你找一个大概还行的方向(梯度),然后迈一步(下降)。两个核心要素是方向和步子的长短。但最重要的是你得一直走下去,能多走几步就多走几步。 反向:该放弃时就要放弃。...这里我引用一篇顶会论文中[4]的可视化结果, 左边的(a)对应很内卷,优化曲面不平滑;右边的(b)对应很平滑的过程 那么究竟是(a)好呢,还是(b)好呢?...如果你是在随机起点,那么做好准备前面的路会非常不平坦。越远离终点,越人迹罕见。四处都是悬崖。但随机梯度下降告诉我们,不管起点在哪里,最后得到的解都差不多。当然这个前提是你得一直按照梯度的方向走下去。...如果中间梯度炸掉了,那么你随机一个起点,调整步子节奏,重新来。 反向:太远就到不了了。如果间隔时间太长,奖励函数的折损会非常严重,这会严重影响强化学习的成功率。

    57720

    EM算法

    问如何估计三硬币正面出现的概率,即π,p和q的值。 解:设随机变量y是观测变量,则投掷一次的概率模型为: ? 有n次观测数据Y,那么观测数据Y的似然函数为: ?...这部分的难点是因为(3)多项式中+符号的存在,而这是因为这个三硬币模型中,我们无法得知最后得结果是硬币B还是硬币C抛出的这个隐藏参数。...那么我们把这个latent 随机变量加入到 log-likelihood 函数中,得 ? 略看一下,好像很复杂,其实很简单,请容我慢慢道来。...可能因为θ中多个参数的某种关系(如上述例子中以及高斯混合模型中的3类参数),导致上面的log似然函数无法直接或者用梯度下降法求出最大值时的θ值,那么这时我们需要加入一个隐藏变量z,以达到简化l(θ),迭代求解.../jerrylead/archive/2011/04/06/2006936.html, 一个将Andrew NG教授的公开课以及讲义理解非常好的博客,并且我许多都是参考他的 [5]http://blog.csdn.net

    1.1K80

    特斯拉AI负责人Karpathy的超全神经网络训练套路

    训练失败的神经网络 当你错误配置代码时,通常会遇到某种异常。比如你在一个预期字符串的位置插入了整数。因为该函数只需要3个参数,所以输入失败。对此我们通常可以为特定功能创建一个单元测试。...例如,在数据增强期间需要左右翻转图像时,你可能忘记翻转标签。你的网络仍然可以继续工作得非常好,因为它可以在内部学习检测翻转的图像,然后左右翻转其预测。...训练的内容通常包括可视化损失、准确度、模型预测等,并在此过程中使用伴有明确假设的一系列消融实验。 固定随机种子 始终使用固定的随机种子来确保当你运行代码两次时,还可以获得相同的结果。...我喜欢为我现在正在做的事情编写一个非常具体的函数,让它运行,之后概括它得出的的结果。这非常适用于矢量化代码,我一般都是先写出一个完全循环的版本,然后一次一个循环地将它转换为矢量化代码。...有一次我在寒假期间,在训练模型的时候不小心离开了,然后模型自己一直训练,当我1月份回来时,它是SOTA(达到了最好的状态) 结论 一旦你做到了以上所有这些,你会对技术,数据集和问题有更加深刻的理解,

    55730

    【深度强化学习突破】OpenAI Gym 玩游戏达到人类水平

    所以,它是这样的:我们有一个随机游走策略,它会从分布中抽取行动,而那些恰好最终带来好的结果的行动会获得更多的青睐,而带来坏的结果的行动则会受到更少的关注。...另外,回报并不一定需要以+1和-1的形式来表示我们最终赢得了比赛。它可以是对于结果质量的某种衡量。比如说,如果一切发展得非常好,回报可以是10,我们可以将这个数字替代原先的梯度进行反向传播。...我没对超参数做太多调整,在我的(速度很慢的)Macbook上运行了这个实验。即使如此,在训练了3个晚上之后,我得到了稍微强过AI的策略。...然而,我没有花太多时间运算或是调整,所以我们最后得到了一个下面视频中那样的AI——它表现得相当不错: 学习后的代理(agent,右边的绿色挡板)与游戏内置的AI对手(左边)抗衡 习得权重 我们也可以看一下习得权重...如果一个人类接触到Pong游戏但对它毫无了解(确实如此,特别是当回报函数是某个静态但随机的函数的时候)他在习得需要做什么时会有很大的困难,但是不了解任务对策略梯度来说没有什么意义,甚至可能让策略梯度的表现更为出色

    2.3K60

    一文搞懂Go中select的随机公平策略:并发编程的黄金法则

    这样的模式在你需要定时检查或者定时执行一些任务时非常有用! 代码运行结果: Working... Working... Job done!...但是,为什么还会执行退出 case,而且 return 时,时间来到了 601.3938ms 呢?...所以,Go 在十多年前新增 select 提交时就用了这种随机策略并保留至今,虽然中途有过细微的变更,但整体语义一直没有变化。 3....多个 case:通过运行时函数 runtime.selectgo 处理,从几个待执行的 case 中选择一个。...运行时 运行时,runtime.selectgo函数通过以下几个步骤处理 select: 初始化阶段,决定 case 的处理顺序。 遍历 case,查找立即就绪的 Channel,如果有则立即处理。

    53110

    这不就是产品给我留的数学作业!

    但可能杠精会喊,我就写个CRUD要什么逻辑、什么数据结构,还算法?...图 15-2 HashMap中的数据结构和数学逻辑 「重点」,HashMap 中涉及的知识点非常多,包括数据结构的使用、数组、链表、红黑树,也包括算法逻辑的实现:哈希、扰动函数、负载因子、拉链寻址等等。...为什么JDK8优化了数据扩容时迁移?那不就是因为计算哈希值求下标耗费时间吗,已经找到了数学规律,直接迁移就可以了,提高性能。 「看到了吗?」...图 15-3 模仿得物(毒) APP抽奖码需求 图 15-3 是我们模拟得物APP中关于抽奖码需求的样式图,核心技术点包括: 需要一个8位的随机码,全局唯一。...只需要将唯一值转换为对应64进制的字符串组合就可以了。 点评:这里的思路很好,但有几个问题需要解决。首先是雪花算法的长度是18位,在转换为64位时会会有10位长的随机字符串组合,不满足要求。

    3.1K30

    (小说版)【简历优化平台-3】随机唯一标识,贯穿时间长河

    她愣了愣,回答说:她遇到了点事,需要赚点块钱... 还有,这次改简历的一百块,可以不可以先欠着,等找到工作再还给我... 我想都没想,就说:没问题,不过你得告诉我你这十多年到底去了哪?...她听到这句话后,发了一个非常惊讶的表情,然后过了很久,她缓缓的打出了一句:“是你?”...有办法了,干脆在前端设计一个随机字符串,然后一起传给后台,后台用随机字符串命名简历文件,然后点击解析按钮的时候,再用这个字符串去解析同名简历。这样就可以保证了不同用户解析时,只能看到自己的简历了。...script来存放这个submit函数即可: 点击一下试试看: 如图,显示成功,证明我们的路数是没问题的,然后就是js生成随机字符串了: 上图,我们生成了10位的随机字母组成的字符串,这个同一时刻重复的概率几乎不可能...测试一下: 可以看到,每次的结果都不同。 然后就是关键的一步,我们要把这个字符串,永久存储到页面上,方便用户后面点击解析按钮时传入后端: 结果如下: 本节到此为止,欢迎继续追更!

    73520

    教程 | 通过Python实现马尔科夫链蒙特卡罗方法的入门级应用

    我不可能在每天晚上的同一时间睡觉,因此需要一个能模拟过渡过程的函数对这一渐进过程进行建模,显示变化特性。...综合而言,马尔科夫链蒙特卡罗在我们的问题当中基本步骤如下: 为 logistic 函数选择一组初始参数 α 和 β。 根据当前状态,把新的随机值分配给 α 和 β。 检查新的随机值是否与观察结果一致。...这些结果更好地反映了 MCMC 模型真正做了什么。MCMC 找到的不是一个简单的答案,而是可能值的样本。贝叶斯推理在现实世界中起到了重要作用,是因为它从概率的角度表示预测结果。...看起来我得处理一下我的闹钟了! 睡眠时长 出于好奇心和练习目的,我最终想创造的是关于我睡眠时长的模型。首先,我们需要找到一个函数来模拟数据的分布。...我猜想结果应该会是正态分布的形式,但是我们只有通过检查数据才能得到最终结果。 ? 正态分布确实可行,但这无法捕捉右侧的偏离点(即我睡眠时间非常长的情况)。

    2.3K90

    数据说话:Go语言的Switch和Map性能实测

    最基本的测试 取得下面结果的系统配置是:Intel i7-4790K,Ubuntu 14.04,运行的是go1.5.1 linux/amd64。测试的源代码和结果在Github上。...内联函数(Inlineable Functions) 之前的测试给出了一些结果,但是它们并不充分。有好几个影响测试的因素都没有考虑进去。首先是函数是否被内联。...9,919,244,177 branches 10,675,162 branch-misses # 0.11% of all branches 所以当跳转顺序可预测时分支跳转预测工作得非常好...结论 我最初想回答的问题是,用函数map来替换switch语句对性能是否会有影响。我假设switch语句会快一点。但是我错了。Map通常会更快,而且快好几倍。...虽然从百分比来看改变非常大,但绝对的时间差异其实很小。只有在每秒钟执行上百万次分支跳转而没有其它实际工作量时,这个差异才会显现出来。

    2.5K50

    BAT面试题3:请问GBDT和XGBoost的区别是什么?

    2 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。...xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。...它的节点和一般的DecisionTree不同吗? 这是一个非常好的问题,题主对各算法的学习非常细致透彻,问的问题也关系到这两个算法的本质。...这个问题其实并不是一个很简单的问题,我尝试用我浅薄的机器学习知识对这个问题进行回答。...Boosting的意思是这样,他通过迭代地训练一系列的分类器,每个分类器采用的样本分布都和上一轮的学习结果有关。其代表算法是AdaBoost, GBDT。

    4.2K30

    磁盘:最容易被忽略的性能洼地

    如上图,我们的顺序读/写的性能进步得非常快,很多新的机型,顺序读/写比起以前的性能,那是大幅度提升,跟SSD的差距已经缩小了很多。...第一个例子最简单,数据库的journal文件会导致随机写。当写操作在数据库的db文件和journal文件中来回发生时,则会引发随机写。...这样就实现了在应用进程启动时,控制在指定进程中运行I/O Monitor的功能。...正当我满怀欣喜地去调用手机自带的libsqlite.so 库时,读/ 写数据再一次没有被记录到, 我当时的内心几乎是崩溃的。为什么我自己编译的libsqlite.so 库可以,用手机上的就不行呢?...I/O数据,原来手机里面的libsqlite.so调用系统的pread64和pwrite64函数来进行I/O操作,同时通过Inline Hook获取到了数据库读/写磁盘时page的类型,sqlite的page

    1.2K20

    CVPR论文复现争议后续:华人一作苦战两月给出有态度的分析结果

    作者称这种做法表现良好,但我的复现结果并不理想,因此我决定对其进行测试。作者提供了他们用的代码,但是经过仔细检查,我发现他们的测试准确率计算有误,导致得出的所有结果无效。」...实际上,该 repo 中运行的第一个脚本已经使用了 PNN 中第一层的不可学习随机卷积。请查看 model.py 的第 513 行。读者可以对那一行进行注释,然后它会返回第一层的通常的可学习卷积。...或许最简单的替代性线性操作就是加性随机噪声了。这也是 PNN 后续工作的动机,其中我引入了一种非常简单但有效的模块——扰动层(perturbation layer),作为卷积层的替代。...我得承认,当 Michael Klachko 决定在 Reddit 上公开他所发现的问题时,我有些震惊,尤其是在那之前我已经同意查看他发现的问题。...不过我意识到,作为科研人员,接受大众的审查不是一种选择,而是责任。因此,我真的非常感谢 Michael,他不仅愿意花费时间和精力验证已经发布的方法,更重要的是,当发现事情不对劲时他能够及时说出来。

    58420

    OD常用断点 ^_^ 很全很全

    bp GetCurrentTime 获取当前时间(16位) bp SetTimer 创建定时器 bp TimerProc 定时器超时回调函数 GetDlgItemInt 得指定输入框整数值...它只是显示在另一个制作文件上,可是*.htm *.exe等) C.才是最难搞,也是很多人想知道的!包括我在内。不知道高手们有何提示了?...还有的是在本目录下留下注册信息,常见的有.dat .ini .dll等等, 我是用bpx readfile来中断的,还有的是在windows目录下留下注册信息。...当这两个软件被脱壳后都回出错,网络三国智能机器人会产生非法*作,而音乐贺卡厂会告诉你是非法拷贝,通过修改__vbaVarTstNe的返回值都可让它们正常运行。...所以当您遇到一个VB软件,脱壳后无法正常运行,而又找不出其它问题时,可试试拦截这个函数,说不定会有用哦。

    1.2K30

    ICLR 2018最佳论文AMSGrad能够取代Adam吗

    我运行了论文中概述的合成试验(使用随机配置)。下图为所得学习曲线。 ? 这和论文中的图形相当接近了,也和ycmario的重新实现的结果差不多。Adam错误地收敛于1,而x的最佳值为-1....在我的试验中,训练损失非常接近0,而论文中的数值则是0.3. 这当然是因为我用的是大得多的模型。...正如我们看到的,训练精确度和训练损失的表现差不多:AMSGrad比Adam收敛得快,但最终的结果差不多。...在论文中,作者声称(着重由我所加)“AMSGrad在训练损失和精确度上表现得比Adam好多了。此外,这一表现提升同样转换到了测试损失上。”...训练精确度的表现和训练损失非常类似,验证精确度同样如此。 验证精确度 ? 从这些结果来看,在实践层面,相比Adam,AMSGrad并没有明确的优势。结果取决于学习率和beta2的选择。

    1.8K20

    被骗了,原来随机梯度下降这么简单

    作者 | 梁唐 大家好,我是梁唐。 今天是梯度下降的最后一篇,我们来聊聊梯度下降算法的两个优化——随机梯度下降和批量梯度下降。 优化分析 在我们介绍具体的做法之前,我们先来分析一下问题。...根据我们随机选择计算梯度样本数量的不同,算法进一步划分为随机梯度下降和批量梯度下降。 随机梯度下降 随机梯度下降的原理非常简单,就是每次我们在需要计算梯度的时候,只从样本当中选择一条来计算梯度。...一开始的时候我们的学习率设置得稍微大一些。随着模型的收敛,学习率也逐渐减小。这样当模型到了极值点附近震荡之后,由于学习率减小,所以可以控制偏移量在一个很小的范围内。...搞清楚了原理,就到了硬核coding的时候了。我们先来搞定学习率,我们想要一个一开始很大,逐渐减小的学习率。利用反比例函数,可以很轻松地实现这一点。...但是如果你亲自跑一下代码比较一下两者的话,你会发现运行随机梯度下降的运行速度要比梯度下降快得多。 这也是预料之中的,毕竟相同的迭代次数,我们要比梯度下降快了 倍,这里的 是样本的数量。

    59220

    shell字符串单双引号的坑

    下面是粉丝随机投稿 入门生信时,我最接触的编程语言是python和R,最后才是shell。...学习shell时,我也只是草草了事,没有仔细对比三种编程语言间的差别和特点,自认为很聪明的把python和R的相关基础知识直接迁移到了shell。...最近踩到了坑,才让我意识到:基础不牢,缺乏思考,非常吃亏!.../W0${i}.sort.bam - done 运行非常成功!结果正常输出!然后我就愉快地去重并call variant,但是当我查看g.vcf文件时发现样本名为W0 这是怎么回事?...养成一个好的习惯是非常重要的....由于小小的字符串问题,我现在就需要把已经生成的bam文件的标签和g.vcf文件中的样本名都替换掉...如果不及时替换可以想象到在最后genotypegvcf时,我最后的得到的结果里会莫名其妙的少好几个样本变异信息

    5K40
    领券