
机器学习
文章平均质量分 70
包括传统机器学习和现代深度学习
音程
这个作者很懒,什么都没留下…
展开
-
自然语言处理基础面试
bert的Embedding层由3个子层求和得到,分别是词向量层Token Embedings,句子层Segment Embeddings以及位置编码层Position Embeddings,特别注意的是,bert中的位置编码层是采用随机初始化训练学习得到,和transformer的正弦函数编码不同。原始bert是静态mask,也就是每个epoch训练的内容mask部分都是一致的,这样没法学习到更多有用的信息,roberta采用的是动态mask,每个epoch训练的mask都是重新处理的,效果更好。原创 2024-04-20 23:38:32 · 537 阅读 · 0 评论 -
大模型(e.g., ChatGPT)里面的一些技术和发展方向
具体来说,再训练一个模型C,这个模型学习如何给一个(问题,答案)打分,至于说给多少分,也是需要人类标注数据的,人类需要标注(问题,答案,打分),也就是说一个问题可能会有多个答案,好的不好的答案都有,但打分不同,这个模型C训练好了之后,就可以用来监督模型D了。在模型A的基础上,输入一个问题,模型A会输出一个答案,这个答案和问题一起交给模型C,我们可以得到一个得分,这个得分会反馈给模型A,从而模型A不断学习,想要提高得分,得到模型D。有监督微调,也就是给定问题和答案,对1中学习的预训练模型进行微调。原创 2024-04-20 11:24:04 · 1266 阅读 · 0 评论 -
What is case-based reasoning (CBR)? 基于案例的推理
有人说,不知道名字有啥的,反正大家都会用,不需要学它叫什么名字。话虽如此,但是如果你说你的这种技术大有来头,等到你汇报给别人听的时候,或者写论文的时候,别人就会觉得你的东西逼格高,而不是干巴巴的说,我们提出了一个方法,这个方法非常直觉。这个方向其实挺小众的,然后其实也很直觉,所以你可能其实一直在用这个技术,只不过你不知道这个技术有一个专业的名字《基于案例的推理》而已。原创 2024-03-24 11:56:00 · 960 阅读 · 0 评论 -
(完全解决)如何输入一个图的邻接矩阵(每两个点的亲密度矩阵affinity),然后使用sklearn进行谱聚类
网上倒是有一些关于使用sklearn进行谱聚类的教程,但是这些教程的输入都是一些点的集合,然后根据谱聚类的原理,其会每两个点计算一次亲密度(可以认为两个点距离越大,亲密度越小),假设一共有N个点,那么就是。参数其实就是距离计算公式你选用哪个的意思,比如我们常常知道的欧式距离,曼哈顿距离,当然谱聚类里面不是这些。总之,实际使用中,哪个效果好用哪个,建议官方提供的距离你都可以试一试。然后算法再根据这些亲密度进行聚类,即亲密度越大的点,他们应该聚在一起。,注意邻接矩阵需要为正数,否则报错,所以我们下面用了指数。原创 2023-10-22 20:25:59 · 1561 阅读 · 0 评论 -
(入门以及简介+实战)超参数寻找器hyperopt库中常见的函数或类的作用
用来找超参数的,我们常常用的是格子搜索以及贪婪搜索对不对。它这个库有着更多的策略。一个例子好了,上面引入了3个函数,fmin, tpe, hp。其中hp用来指定参数空间,比如hp.uniform(‘x’, -10, 10),其表示我们有一个参数x,其可能取值在-10到10之间,并且是均匀分布。tpe则是用来指定我们的搜索策略,比如可能是格子搜索之类的。max_evals=100则表示,由于我们的参数x取值连续,不可能说取遍所有值,所以尝试了100次不同的x值之后就结束。然后再说fn这个参数,上面是一个原创 2022-12-05 16:07:48 · 1426 阅读 · 0 评论 -
(一分钟)简单介绍MLFLOW
MLFLOW有很多功能,但是大家来找的应该是指其记录(追踪)超参数的功能。本文也只是简单说说这个,让你有一个大致了解。原创 2022-10-23 10:52:07 · 1553 阅读 · 0 评论 -
logistic function 和 sigmoid function的区别
大家都习惯把standard logistic function(即公式)称为sigmoid function,因此在没有特殊说明的情况下,文献资料或老师讲课中提到的‘sigmoid function’都是指公式对应的函数。满足公式的形式的函数都是logistic function。只要曲线是 “S”形的函数都是sigmoid function;两者的相同点是: 函数曲线都是“S”形。转载 2022-10-15 11:08:27 · 1404 阅读 · 0 评论 -
使用sklearn进行kmeans实战
很多人写得太复杂了,更多人谈到sklearn的时候,早就知道了kmeas的原理,只是想快速上手而已。我们知道,kmeans是无监督,没有标签。6个数据点,每一个点是二维的。我们使用kmeas进行聚类。是不是很简单,核心已经说完了。...原创 2022-08-15 16:41:24 · 1582 阅读 · 0 评论 -
(完美解决)为什么在train/val/test数据集上用train模式效果都很好,但是在eval模式下全部很差
因此,一个简单的对比就是,你在你的模型训练了好几轮,觉得效果不错了之后,停下来,选择几个训练集数据,比如5个,分别在train模式和eval模式下,打印他们输入,中间层以及结尾的结果,这个你自己看着办即可。在train模式下好,eval模式下差,我们可以理解为train模式下,最后一层得到的那一堆向量好,eval得到的那一堆向量差,从而逐步往前推。不管怎么说吧,首先引人注目的就是,我的4个数据,输入的均值和方差都特别不一样,尤其是方差,3万多的方差,吓死。成功了,同时发现,归一化之后训练得很快!...原创 2022-07-26 15:28:28 · 3068 阅读 · 0 评论 -
模型的权值以及loss或者中间变量变成了nan怎么回事
文章目录前言原因解决办法前言一开始是因为中间变量变成了nan,不知道怎么处理,后来发现,权值以及loss其实也是nan,我就更加懵逼了。看了很多人说的方法,觉得说得不彻底,不通透。比如什么调小学习率之类的,治标不治本,各位看官也就图一乐呵。所以这里说点个人理解。原因为什么会造成这种情况呢?我举个例子,如果我们的模型是要使得两个词向量的内积越来越大,那么模型就会一直增大这两个词向量,使得这两个模型参数会变成nan,同时内积变成nan,loss也会变得无限小。解决办法那么我们该怎么办呢?我认为最原创 2022-04-21 15:33:28 · 1258 阅读 · 0 评论 -
(以pytorch为例)路径(深度)的正则化方法的简单理解-drop path
文章目录原理代码原理drop path的原理就是:对于一个输入进来的向量x=(0.4,−0.2)x=(0.4,-0.2)x=(0.4,−0.2)(不妨设),以p的概率随机将xxx所有元素置为0,,也就是说经过drop path之后,x=drop path(x)x只有两种可能:x=(0.4,−0.2)x=(0.4,-0.2)x=(0.4,−0.2)x=(0,0)x=(0,0)x=(0,0)可以看到,这和dropout逐元素失活不同,dropout可能产生结果:x=(0.4,0)x=(0.4原创 2022-02-11 20:01:12 · 3165 阅读 · 3 评论 -
图像放大算法一:最近邻法(Nearest Interpolation)
图像放大算法有好几个,但是如果我们自己设计图像放大算法,这个或许是我们最容易想到的,其他的没有一点功底,恐怕不会搞。图像放大算法总体思想:由于原来的图片像素少,现在的图片像素多,所以我们需要无中生有,这就叫做插值。其思想很简单:加入我们现在有一个2*2的图片:[[1,2],[3,4]],我们要变成2*4的图片,你怎么搞?如果是我,我会这么搞:[[1,1,2,2],[3,3,4,4]]。即从原图中复制数字过来到新图,原图中第一行前一半是1,后一半是2,那我新图也这样。这就是最近邻法(Ne原创 2022-01-14 21:44:25 · 4713 阅读 · 0 评论 -
强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍
文章目录前言CartPole-v1游戏结束stateaction和rewardPendulum-v1通用操作前言gym官网:http://gym.openai.com/envs/#classic_control。这gym的游戏真他妈坑,有很多游戏,但是只是粗略说说,而不说游戏具体规则。不但如此,坑2:Pendulum-v0都已经被gym官方认定过时了,导入会报错。但是这个网站却还没有更新Pendulum-v1过来,蛋疼。还有坑3:大家要看这个游戏的具体规则要进入github里面去看。例如Car原创 2021-12-05 19:43:13 · 15618 阅读 · 0 评论 -
(深入理解)强化学习中的policy-based和value-based区别是什么?
想要知道区别,我们得先知道他们分别是怎么做的。value-based:输入s,输出Q(s,a)policy-based:输入s,输出p(s,a)不但如此,还有区别value-based:输入s,输出Q(s,a)后,我们要选一个动作。其选取方法是:训练时使用epsilon-greedy(有一定探索)测试时使用argmax Q(s,a)(确定),也就是1-greedy(确定)。policy-based:输入s,输出p(s,a)后,我们要选一个动作。其选取方法是:训练时根据概率p(s,a)选原创 2021-12-03 11:47:37 · 5817 阅读 · 3 评论 -
(深入理解)强化学习中on policy和off policy的区别
前言这两个东西区别我个人感觉还挺玄学的。看到有很多说法,但是却感觉说的不是一个东西。就比如有人总是喜欢把off policy分为行为策略和目标策略,说什么行为策略用来探索,目标策略用来学习。但是这个明显是DQN的特征(没学过DQN的有点吃亏哈)所以,甚至官方描述也是用这样的:On-policy: The agent learned and the agent interacting with the environment is the same. 行为策略和目标策略一样Off-poli.原创 2021-12-02 09:47:16 · 2186 阅读 · 4 评论 -
(深入理解)强化学习中Model-based和Model-free的区别是什么
强化学习方法分为Model-free和Model-based方法,那么这两种方法的区别在哪: 首先我们定义强化学习中的马尔可夫决策过程MDP,用四元组表示<script type="math/tex" id="MathJax-Element-8"></scrip...原创 2021-11-28 20:45:14 · 13815 阅读 · 11 评论 -
强化学习之gym初战实战案例:悬崖案例CliffWalking-v0。
文章目录强化学习简介gym简介不踩悬崖走到终点实战强化学习简介我们知道,强化学习广泛应用于玩一些较为简单的游戏,其思想就是:过一段时间(例如0.1秒)拍一张(游戏)图片,然后机器看一下,看完之后做出决定,下一步应该干些什么,例如是往左移动还是往右移动,还是射击。执行完这一步动作之后,机器会读取游戏的分数,如果分数高机器就会记住,以后遇到那个图片的时候就走这一步,相反,如果分数低或者直接被敌人杀了,机器就会记住下次再遇到那个图片,就不走那一步了。如此反复下去,直到学会怎么玩游戏。在这个例子中,机器(玩家原创 2021-11-27 16:35:31 · 8265 阅读 · 0 评论 -
增量学习简介(incremental learning)
文章目录前言基于正则化的增量学习基于回放的增量学习前言个人认为增量学习的定义的边界并不明显,其与其他概念例如:持续学习(Continual Learning)、终身学习(Lifelong Learning),在线学习(online learning),迁移学习(transfer learning)都有交集。所以我个人粗糙的定义就是:模型基于旧数据学好了参数,但是如今新数据产生了,如何更新模型?最笨,也最无懈可击的办法就是,将旧数据和新数据混在一起,然后对模型进行继续训练。现在的一个问题是:能不能不原创 2021-11-17 18:40:01 · 15136 阅读 · 1 评论 -
Tri-Party Deep Network Representation
Tri-Party Deep Network Representation 目标方法步骤 目标 将网络节点嵌入成向量。另外,值得一提的是:本文所使用的是cora数据集,简单介绍就是一共有2708个节点(每一个节点代表一篇论文),每个节点有一个类别(比如这篇论文是属于机器学习还是传统算法,逻辑之类的),总类别数为7类,然后节点直接可能会右边,是有向边,如果a指向b,那么表示a论文呢引用b论文。所以是一个有向图。不但如此,我们还拥有的信...原创 2021-11-13 18:59:09 · 317 阅读 · 0 评论 -
Neural Tensor Network详细介绍
文章目录前言思想NTN前言论文原文:Reasoning With Neural Tensor Networksfor Knowledge Base Completion。作者比较有名,有吴恩达。这个神经网络是2013年提出来的,所以非常简单,你现在看他就跟玩一样,尤其是你如果训练过词向量(2013年mikolov那篇)的话,这篇的讲解你会跟喝水一样简单。思想为什么说简单?因为2013年的时候NLP流行做嵌入,这里也不例外,所以是无监督模型。这篇论文的目的就是说:我们要设计一个网络,给定一个知原创 2021-11-13 16:12:58 · 4474 阅读 · 2 评论 -
sklearn.preprocessing下的数据标准化(scale、MinMaxScaler)
from sklearn.preprocessing import MinMaxScalerMinMaxScalera=np.arange(4).reshape(2,2)atool = MinMaxScaler(feature_range=(-1, 1))tool.fit_transform(a)解释:按列进行min-max标准化。可以得到第一列为0,1,第二列也为0,1。注意,min-max标准化的结果都一定是在[0,1]之间的。由于提供了feature_range=(-1,原创 2021-11-05 19:25:49 · 2401 阅读 · 0 评论 -
深入理解transformer中的位置编码
啊打发原创 2021-10-31 20:19:51 · 12910 阅读 · 0 评论 -
超易懂的MapReduce思想讲解
文章目录统计词频词出现在哪些文章中MapReduce架构揭秘本文通过两个例子来理解什么是MapReduce。统计词频注:上面左边的0,1,2表示的是3篇文章0,1,2。注:2,3,4其实就是map服务器群。5,6,7,8其实就是reduce服务器群。注:split其实就是map服务器群从服务器1取数据。shuffle其实就是reduce服务器群从map服务器群取数据。词出现在哪些文章中我们知道,一个词会出现在很多文章中,现在我们就要统计这个信息。MapReduce架构揭秘我们可以看原创 2021-10-29 19:44:15 · 850 阅读 · 0 评论 -
自然语言处理的发展历程
NLP的发展趋势:规则—>统计—>深度学习。自然语言处理的发展大致经历了4个阶段:1956年以前的萌芽期;1957-1970年的快速发展期;1971 -1993年的低谷的发展期和1994年至今的复苏融合期。57年快速发展的一个原因是:1956被称之为人工智能的元年,那一年召开了达特茅斯会议,首次正式提出了“人工智能”。1956年8月,在美国汉诺斯小镇(其实就是美国的东北部沿海的一个州下面的一个镇)宁静的达特茅斯学院中,约翰·麦卡锡(John McCarthy)、马文·闵斯基(Marvin原创 2021-10-24 17:08:27 · 8092 阅读 · 0 评论 -
seq2seq中的beam search算法过程
在seq2seq模型中,我们以自然语言处理技术的集大成者机器翻译为例:在模型训练好了之后,我们开始测试我们的模型(中文翻译成英文),比如Encoder中输入"我 是 中国 人”(分词处理了,中国是一个词),然后我们的模型中的Decoder需要开始机器翻译成英文。对于我们最常见的Auto-Regressive的模型,预测了英文的第一个词之后,会把这个词又当作Decoder的输入,继续往下预测。但是,我们的模型第一次输出的是英文的第一个词的概率分布,并没有确切说英文的第一个词是什么,这个时候有两种做法:原创 2021-10-16 10:09:44 · 446 阅读 · 0 评论 -
使用sklearn进行最简单的t-SNE实战
看了很多其他人写的t-SNE如何使用,全部都在用项目举例子,无语死了,想要学怎么用t-SNE竟然还要去看一个项目,这不是南辕北辙嘛?所以这里直截了当的告诉你怎么用。总体思路就是:使用TSNE对高维进行降维,然后用matplotlib对降维后的数据进行散点图可视化,由于通常我们各个点会有类别,所以我们会为每一个类别配上颜色。高维进行降维import numpy as npfrom sklearn.manifold import TSNEX = np.array([[0, 0, 0],[0,0,0.原创 2021-10-09 11:16:00 · 3845 阅读 · 4 评论 -
什么是Attention机制以及Pytorch如何使用
文章目录前言注意力概况标准注意力变种注意力QKV前言看了网上大部分人做的,都是说一个比较长的项目(特别是机器翻译的多)。其实没有必要,很多人并不是想看一个大项目,只是想看看怎么用,并把Attention机制用到自己的任意一个项目中。下面来介绍之。注意力概况首先告诉大家,注意力这个词本身是一个非常高屋建瓴的词,其作用于两个东西,然后计算他们的注意力。两个东西是什么?随便你,比如可以是向量,可以是矩阵,可以是你想要的一切,不过,计算机中也只有向量和矩阵,因为计算机只能表示数字。一般是向量。有了两个原创 2021-10-09 09:38:45 · 5903 阅读 · 0 评论 -
原理详解AUC、ROC和average precision (AP)以及sklearn实战
文章目录前言TPR,FPRROCAOC鸣谢前言开门见山,想要知道AOC必须知道ROC,想要知道ROC必须知道TPR,FPR,完。TPR,FPREXAMPLE 1: 我们有一个模型算法,它能够根据一系列的属性(比如身高、爱好、衣着、饮食习惯等)来预测一个人的性别是男还是女。下面是这个模型算法对10个人的是男还是女的预测值和10个人的真实值。其中预测值为0.72表示72%的概率认为是男,28%的概率认为是女。如果我们设定区分男女的阈值是0.5,那么预测值大于0.5的都是男性,小于0.5都是女性。原创 2021-09-11 15:10:21 · 8397 阅读 · 0 评论 -
KL散度(主)和交叉熵(次)的介绍
文章目录前言KL散度背景引入正题收尾前言熵是什么自己先看看。KL散度KL散度也叫做:Kullback-Leibler divergence或相对熵(relative entropy)。从KL散度或许我们没有得到任何的信息量,但是相对熵或许会比较好理解。背景引入根据shannon的信息论,给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码平均需要的比特数等于这个字符集的熵:举个例子原创 2021-09-02 10:23:44 · 1764 阅读 · 0 评论 -
mini-batch 和batch到底是什么
mini-batch是将所有数据分批,然后按顺序处理,每一批计算一次loss,更新参数,然后下一批。也就是我们代码必用的(例如batch_size=128),只是我以前一直以为这个叫做batch,原来这个叫做mini-batch。所以以后要改口了,因为论文中这个更新参数的方法都是写成mini-batch的。...原创 2021-08-08 10:31:22 · 6466 阅读 · 0 评论 -
Micro-F1和Macro-F1详解
请先知道什么叫做准确率P和召回率R。文章目录例子micro-F1macro-F10类别1类别代码检查例子micro-F1解释:答对了4个,答错了了1个。macro-F1这个更加复杂,需要分类别讨论F1值,然后取平均值。0类别解释:只考虑0类别,其答对了3个,但是多打了一个0。1类别解释:只考虑1类别,其只答了一次,但是答对了,漏答了一次。代码检查...原创 2021-08-07 16:36:05 · 4215 阅读 · 1 评论 -
如何使用华为云的计算资源来进行机器学习(CodeLab)
1.进入官网:https://www.huaweicloud.com2.点击ModelArts。3.这个时候可以根据你的需要,选择购买或者进入控制台,我们选择后者。4.点击立即体验。6.我选了pytorch,进入下面界面:原创 2021-06-30 20:30:18 · 1242 阅读 · 1 评论 -
如何看懂一个深度学习的项目代码
搞深度学习的人,两大必备日常除了读论文之外就是读代码。 深度学习项目代码,小到几百行的测试demo,大到成千万行的开源项目,读起来方法肯定各有不同。 如下图Mask R-CNN项目代码和PyTorch源码的对比: 可以看到,Mask R-CNN作为一个经典...转载 2021-06-24 21:59:29 · 26742 阅读 · 10 评论 -
如何查找一篇论文的实现代码从而复现论文?以及如何查找一篇论文被哪些论文引用?
有的时候看了一篇论文,尤其是深度学习方面的,想看看代码,但是作者的代码常常都没有公开(所以你可以尝试直接通过论文上的邮箱给作者发邮件求代码,只不过不一定会理你,或者看看能不能在谷歌学术上找到其个人主页,有的时候也会公开)。但是上面这招通常不好使,而且我个人觉得不是太有必要。因为复现论文要从基础做起,你先找几篇你所在领域的经典、知名论文或者谷歌学术引用量比较高的论文,这些通常都已经被广大网友写好了代码。你对这些代码好好学习,并且消化。然后复现新的论文你也差不多自己有能力自己写了。所以本文介绍的是那些经典、原创 2021-06-24 19:57:14 · 113084 阅读 · 36 评论 -
神经网络早期的感知机模型
上篇文章接受了40年代的MP模型,现在来50年代的感知机模型,即Perceptron。最早感知器模型由Roseblatt提出。这个模型和之前的MP模型改进不是在模型上,而是给出了训练的概念,并提出了训练方法。即,模型还是和MP一样,都是一层的。而且变成了纯线性,不需要激活函数,下面的θ\thetaθ是阈值,可以理解为偏置,但是注意是减号,即y=w1x1+w2x2−θy=w_1x_1+w_2x_2-\thetay=w1x1+w2x2−θ,这才符合阈值的定义。注1:上面的xxx是xix_ix原创 2021-05-11 15:41:15 · 914 阅读 · 0 评论 -
神经网络早期的M-P(Warren McCulloch-Walter Pitts)模型
今天说说最早的神经网络模型:这发生在1940年代。上面即为:这个现在的神经网络基本一样,看起来已经很高级了。不过其最大的局限性应该在于思想上,当时还没有训练的概念,也就是说那些权重、阈值、激活函数都需要提前手算好。比如用以上MP模型,完成一些逻辑运算。注意:以上情况指定不需要激活函数。...原创 2021-05-11 14:57:21 · 6459 阅读 · 0 评论 -
runge phenomenon(龙格现象)和过拟合
龙格现象龙格现象是指这么一种现象:给定一些样本点,对其进行多项式拟合时,多项式次数越高,反而和真实的函数差距越大。实验我们的真实函数以y=11+25x2y=\frac{1}{1+25x^2}y=1+25x21为例,挖取其中的一些点,使用numpy进行不同次数的多项式拟合,查看最终的函数与真实函数的拟合情况。我们先看看这个真实函数的样子。x=np.linspace(-2,2,10000)y=1/(1+25*x*x)plt.figure(figsize=(20,8),dpi=80)plt.pl原创 2021-03-19 15:47:03 · 5819 阅读 · 3 评论 -
机器学习-情感分析-入门实战案例
前言情感分析属于自然语言处理的一部分,其任务是,给定一个文本,判断这个文本所表达的情感是正面的,中立的,还是负面的。这被广泛用于:1. 商品好评度自动检测。2. 微博推特等平台用户发言是开心赞美还是批评抱怨。本次带领大家使用机器学习的方法对情感分析做一次实战。注意:此次侧重于机器学习实战的一个流程,而不会详细讲具体的机器学习算法。对于想要体验一把的新手会比较友好。另外,对于新手,我要提醒的是,体验一个完整的流程并弄明白,耗时很久是很正常的事,切勿急躁哦。相关数据我们的数据是推特上用户发的推特,原创 2021-01-27 22:39:30 · 3480 阅读 · 8 评论 -
sklearn警告:ConvergenceWarning: lbfgs failed to converge (status=1):
问题这个警告是训练逻辑回归模型的时候出来的。model=LogisticRegression()train_model("logistic regression",model,trainxv,trainy,testxv,testy)结果如下:ConvergenceWarning: lbfgs failed to converge (status=1):STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.解决上面默认运行了:LogisticRegr原创 2021-01-25 22:35:45 · 33633 阅读 · 20 评论 -
onehot编码的python详细实现以及使用sklearn中的TfidfVectorizer实现one-hot编码
def onehot(label): #label=[1,2,3,3] #留下各异的标签 ulabel=np.unique(label) #ulabel=[1,2,3] #查看一下各异标签的数量。num_label=3 num_label=ulabel.shape[0] #查看训练数据的个数n=4。 n=label.shape[0] #初始化最终的one-hot的label。4*3列的最终向量是我们想要的。 """array(原创 2021-01-24 21:48:58 · 802 阅读 · 2 评论