机器学习
文章平均质量分 58
机器学习笔记
哇-WA
这个作者很懒,什么都没留下…
展开
-
CV笔记。
矩阵可视化:import matplotlib.pyplot as pltplt.matshow(search_image)plt.show()原创 2021-12-15 20:44:30 · 2504 阅读 · 0 评论 -
NLP-自注意模型
我们之前已经学过了注意力模型,但是那是基于RNN模型的。RNN模型的结构决定了它不能并行运算,只能按照时间步一步一步地进行计算。自注意模型解决了这个问题。 自注意模型引入了3个变量q,k,v。q是用来对其他的k进行匹配的,k是用来被其他q匹配的,这两个值用来计算注意力系数α\alphaα。v是抽取出的特征。图中的a是one-hot编码经过embedding后的值。...原创 2021-08-24 15:59:01 · 276 阅读 · 0 评论 -
论文笔记:Graph Attention Network with Memory Fusion for Aspect-levelSentiment Analysis
Graph Attention Network with Memory Fusion for Aspect-level Sentiment Analysis(方面级情感分析的带有记忆融合的图注意力网络)1 摘要 方面级情感分析(ASC)预测文本或评论中每个特定方面术语的情感极性。最近的研究使用基于注意力的方法能有效提升方面级情感分析的表现。这些方法忽略了方面和它相应的上下文单词之间的句法关系,导致模型错误地关注语法上不相关的单词。一个提出的解决方案,图卷积网络(GCN),不能完全避免这个问题。但它的原创 2021-08-17 18:11:32 · 487 阅读 · 0 评论 -
NLP-Memory Network
Memory Network是Attention 的进阶版本。假如现在要让机器看一篇文章,然后问它一个问题,看机器是否能给出正确答案。像机器翻译需要进行word embedding一样,我们需要对文章进行sentence embedding。这样我们能得到一组向量,每一个向量代表一个句子。用一个向量q表示问题。然后用q和文章中所有句子向量进行匹配,得到一组向量。将其乘以对应的x向量并相加,得到的值丢到DNN里面,最终得到答案。还有另外一个更复杂的版本。抽取特征的句子向量和算匹配的..原创 2021-08-12 18:02:55 · 173 阅读 · 0 评论 -
NLP-注意力机制
我们以机器翻译为例。“机器学习”->“machine learning”传统的做法是这样的:我们先用RNN对“机器学习”进行编码(encoder),即把最后一个隐藏层的输出拿出来,作为输入丢进RNN生成器里面进行解码(decoder)。为了防止初始编码的影响力减弱,可以对每一个时间步都将初始编码作为一个输入。编码器和解码器是放在一起训练的。他们的参数可以是一样的,也可以是不一样的。在做聊天机器人的时候,我们通常要考虑之前...原创 2021-08-09 18:36:17 · 481 阅读 · 0 评论 -
NLP-Word Embedding
Word Embedding(字嵌入):把一个单词转化为向量表示。最经典的做法是使用one-hot表示法。向量中只有一个1,其余全是0.字典有多少单词,向量就有多少维。它的特点是单词之间没有关联。 但是显然单词之间是有联系的,所以我们可以把单词之间相关联的一些特性量化并组合成向量。这样做的优点是可以缩小向量的维度。并且当数据集较小的时候,如果某个单词在训练集中没有出现过,但是我们仍然可以根据出现过的和它关联度较高的单词进行预测。这里通常结合迁移训练...原创 2021-08-04 17:56:36 · 134 阅读 · 0 评论 -
NLP-LSTM
LSTM(长短时记忆)和GRU非常像,事实上GRU是通过LSTM改造而来的。GRU只有一个记忆门,而LSTM有一个记忆门和一个遗忘门,还有一个输出门。a的计算以下图为准。原创 2021-07-17 15:50:05 · 123 阅读 · 0 评论 -
NLP-GRU
为了解决RNN梯度消失的问题,一个常用的方法是使用GRU(门控循环单元)。传统的循环单元门控循环单元即在循环单元中增加一个类似于门一样的控制变量,来控制当前单元是否被记住,以便后面的单元进行使用计算。例如在下面这个句子中:The cat, which already ate ... , was full.cat的单复数形式会对后面的was产生影响,显然cat是需要被记住的,而中间从句部分的单词就不需要被记住。那么怎么设置门的值呢?我们同样让机器自己学习。我们可以将门.原创 2021-07-15 17:55:59 · 153 阅读 · 0 评论 -
NLP-RNN
RNN(循环神经网络)相较于传统神经网络考虑了输入数据的时序性,训练当前时间步时会受到前面时间步信息的影响。例如我们要提取出句子中的人名。我们首先要对每个单词进行编码,一般使用one-hot编码。这样一个单词就可以表示为一个01向量。我们可以这样设计神经网络结构:问题可以转化为多个二分类问题,即单词是否是名字。损失函数可以使用交叉熵表示,输出层激活函数可以使用sigmoid,隐藏层激活函数通常使用tanh。...原创 2021-07-12 17:54:58 · 286 阅读 · 0 评论 -
深度学习-Inception网络
Inception网络名字来源于《盗梦空间》。inception网络代替人工确定卷积层中的过滤器类型,解决了计算量爆炸的问题,让网络变得更深。Inception模块:Inception网络由多个Inception模块连接而成。Inception模块使用多个过滤器类型以及最大化池堆叠而成,让机器自己学习使用哪些过滤器类型。结构如图所示:其中使用padding可以保证输出的维度相同。以5*5的卷积核为例,我们可以计算出它的计算量为1.2亿。这样巨大的计算量显然是无法接受的。.原创 2021-07-10 17:18:00 · 686 阅读 · 1 评论 -
深度学习-神经网络实战
红酒的质量预测:https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009/tasks?taskId=4684ActivateFuncs.pyimport pandas as pdimport osimport numpy as npdef ReLu(x): return np.maximum(0,x)def deriv_ReLu(x): ret = x ret[ret<=0]=0原创 2021-06-29 16:42:56 · 448 阅读 · 0 评论 -
深度学习-前向传播&后向传播
假设我们要更新w1的值。根据梯度下降法,我们需要计算一个偏导数. 其中C为你定义的Loss函数。再使用公式 更新w。此处w2不同于上图w2.那么我们怎么计算呢?根据链式求导法则:而可以很容易求出.即箭头前面的值。事实上,我们可以预先计算所有神经元的这个值。 (其中a为你选取的激活函数)其中可以很容易的计算出来。而我们无法直接计算出来。因为C我们是不知道的。可以使用这个公式向后传导。而输出层的C我们是知道的。...原创 2021-06-17 17:15:07 · 830 阅读 · 0 评论 -
深度学习-神经网络
神经网络的结构为输入层-隐藏层-输出层。其中隐藏层可以有很多层。原创 2021-07-02 16:40:21 · 254 阅读 · 0 评论 -
机器学习-classification
我们以宝可梦为例,输入宝可梦的属性数值,输出宝可梦的类别(水,火...)。我们能不能用线性回归来解决这个问题呢?答案是不能。因为当样本分布比较复杂时,线性回归无法做到准确的分类。逻辑回归对异常值具有很好地稳定性。贝叶斯公式C1=class 1 C2=class 2公式解释:x属于class1的概率=(x在class1中出现的概率 * class1出现的概率)/ x出现的总概率那么我们只需要比较x属于class1和class2的概率的大小,就可以对x进行分类。未完待...原创 2021-05-05 18:01:00 · 490 阅读 · 0 评论 -
机器学习-gradient descent的思考
上节我们了解到在寻找minimal loss的时候可以用这样的方法计算下一步的位置:那对于两组或多组参数的情况,我们可以用向量求偏导:其中用来控制步长,也就是learning rate。如果过小,那么寻找minimal loss会很慢。如果过大,那么可能会跨过minimal loss。(当有多个参数的时候,你的loss可能会变大,因为在分量上的偏导变小并不代表在总向量上的导数变小)下面介绍几种计算的策略:(1)Popular & Simple idea: ...原创 2021-04-29 22:28:34 · 207 阅读 · 0 评论 -
机器学习-线性回归笔记
线性回归解决的问题的特点是输入多个参数,输出一个数值。通过一些方法找出最佳的一个函数。函数形式如: ---b:偏移量 w:权重 (1)或: (2)还可以写成更一般的形式: (3)那么我们该如何评价函数的好坏呢,这时候就需要定义一个Loss函数。通常,我们可以将Loss函数定义为 (4)即方差,...原创 2021-04-19 23:47:11 · 292 阅读 · 0 评论