暂时未有相关云产品技术能力~
CSDN博客专家,华为云云享专家,阿里云专家博主,51CTO专家博主,现为推荐算法工程师,研究领域为AI推荐算法、NLP、图神经网络等,发表EI会议论文一篇,CSDN博客访问量破100万。 CSDN博客id:山顶夕景 微信公众号:古道西风瘦码 知识星球:AI算法乐园
1)先从一个update栗子开始,首先创建一个表,这个表有一个主键 ID 和一个整型字段 c。如果要将 ID=2 这一行的值加 1,SQL 语句如下::
简单题。不能用函数,就用小学数学相加的方法(从右至左),存储进位carry值。 双指针分别从右到左遍历两个字符串
对于有序数组或者部分有序数组,并且注意题目的时间复杂度要求为O ( l o g n ) O(logn)O(logn),一般使用二分搜索及其变种。 既然数组会经过旋转,则我们不能只是用常规的二分查找,而是需要进行判断,基于先对有序段判断的二分查找。比如当在左边(nums[left]和nums[mid])这段有序时,要进行分类讨论:
One-hot、Bag of Words、N-gram、TF-IDF等方法都存在一定问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。
Bag of words词袋表示,又称为CountVectors或者CBOW,用它表示成对应的文本向量时,每个向量的元素对应该该维对应的词在文本中出现的次数。显然这种表示方法木有考虑词的顺序信息,没有融入上下文的信息。 下面来看下它的实现吧:
Wide&Deep是工业界中有巨大影响力的模型,如果直接翻译成中文是宽和深的模型,其模型结构如下所示:wide和deep让模型兼具逻辑回归和深度神经网络的特点。
协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导致生成的结果往往会比较片面。
赛题介绍:https://tianchi.aliyun.com/competition/entrance/531810/introduction 赛题以匿名处理后的新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出 14 个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。 赛题数据由以下几个部分构成:
打开ssh工具putty(免费的!)后,登录发现报错Couldn't agree a key exchange algorithm,查了下说可能是putty版本太老了,就到官网上重新下载一个了——https://www.putty.org/,神奇地好了(不过一开始以为账号是ubuntu上面的那个账号,一直没登上hhh,后来试了下才发现是
召回的目的是根据用户部分特征,从海
自适应提升算法Adaboost,Adaptive Boosting。 自适应是指Adaboost会根据本轮样本的误差结果来分配下一轮模型训练时样本在模型中的相对权重,即对错误的或偏差大的样本适度“重视”,对正确的或偏差小的样本适度“放松”,这里的“重视”和“放松”具体体现在了Adaboost的损失函数设计以及样本权重的更新策略。
(1)业界主流的模型服务方法有 4 种,分别是预存推荐结果或 Embeding 结果、预训练 Embeding+ 轻量级线上模型、利用 PMML 转换和部署模型以及 TensorFlow Serving。
因为在官网下载了win版的docker,而会自带下载虚拟机Hyper-V,这个和我之前下载的vmware虚拟机造成冲突了,导致后者不能使用,所以打开vmware报错如下:
功能:计算二分类任务时的交叉熵(Cross Entropy)函数。在二分类中,label是{0,1}。对于进入交叉熵函数的input为概率分布的形式。一般来说,input为sigmoid激活层的输出,或者softmax的输出。
isdom是Facebook专门为Pytorch开发的一款可视化工具,通过官网介绍(http://github.com/facebookresearch/visdom)介绍它能搞定大多数科学运算(处理数值、图像、文本甚至是视频)的可视化任务。visdom支持pytorch、Torch和Numpy。 (1)通过pip install visdom即可完成visdom的安装。
随机森林是以决策树(常用CART树)为基学习器的bagging算法。 (1)随机森林当处理回归问题时,输出值为各学习器的均值; (2)随机森林当处理分类问题时有两种策略:
全连接被称为Dense层或者Deep层。输入数据样本的不同特征。 CNN用了权重共享的概念,而全连接层的参数量是巨大的。我们可以使用RNN解决如下图(天气预报预测)这种带有序列模式的数据(如NLP、天气、股市金融数据等),并且使用权重共享的概念来减少参数量。
务的目标: 是对10个类别的“时装”图像进行分类,使用FashionMNIST数据集(https://github.com/zalandoresearch/fashion-mnist )。上图给出了FashionMNIST中数据的若干样例图,其中每个小图对应一个样本。
这份指南的介绍从简单到复杂,一直介绍到你可以完成的大多数PITA修改,以充分利用你的网络。例子中会包括一些Pytorch代码和相关标记,可以在 Pytorch-Lightning训练器中用,以防大家不想自己敲码!
上节课主要讲了CNN的架构(如下图的LetNet5), 定义一个卷积层:输入通道数、输出通道数、卷积核的大小(长和宽)。卷积层要求输入输出是四维张量(B,C,W,H),全连接层的输入与输出都是二维张量(B,Input_feature)。
我们在有限数据上训练模型,再用模型去预测新的数据,并期望在新数据上得到较低的预测损失,这里的预测损失可以指分类问题的错判率或回归问题的均方误差等各类评价指标。 对于实际问题中的数据,可以认为它总是由某一个分布p pp生成得到的,不妨设训练集合上有限的n nn个样本满足:
(1)本次图像多分类中的最后一层网络不需要加激活,因为在最后的Torch.nn.CrossEntropyLoss已经包括了激活函数softmax。这里注意softmax的dim参数问题,如下面这个是(3,2)的一个变量,dim = 0 实际上是对第一维的3个变量进行对数化,而dim = 1是对第二维进行操作。
使用torch.nn创建神经网络,nn包会使用autograd包定义模型和求梯度。一个nn.Module对象包括了许多网络层,并且用forward(input)方法来计算损失值,返回output。
之前的一维特征input,只有一个x和权重w相乘,多维的情况则是xi依次与逐个wi相乘(ps:每行x都这样算,每行即每个样本),可以用向量形式表示:
(1)和上一讲的模型训练是类似的,只是在线性模型的基础上加个sigmoid,然后loss函数改为交叉熵BCE函数(当然也可以用其他函数),另外一开始的数据y_data也从数值改为类别0和1(本例为二分类,注意x_data和y_data这里也是矩阵的形式)。 文章目录
之前在【Pytorch基础教程1】也跑过线性模型的代码(没用框架),这次让我们以该模型为基础用pytorch走一遍一个完整流程。
输出结果如下,可见在误差范围内,实现的分类树和回归树均和sklearn实现的模块近似。
一、基础回顾 1.1 正向传递(1)正向传递求loss,反向传播求loss对变量的梯度。求loss实际在构建计算图,每次运行完后计算图就释放了。 (2)Tensor的Grad也是一个Tensor。更新权重w.data = w.data - 0.01 * w.grad.data的0.01乘那坨其实是在建立计算图,而我们这里要乘0.01 * grad.data,这样是不会建立计算图的(并不希望修改权重w,后面还有求梯度)。 (3)下面的w.grad.item()是直接把w.grad的数值取出,变成一个标量(也是为了防止产生计算图)。总之,牢记权重更新过程中要使
在Pytorch基础教程1中我们用的是基于【穷举】的思想,但如果在多维的情况下(即多个参数),会引起维度诅咒现象。 现在我们利用【分治法】,先对整体采样分割,在相对最低点进一步采样。需要求解使loss最小时的参数取值:
(2)optimizer在一个神经网络的epoch中需要实现下面两个步骤: 梯度置零,梯度更新
在Pytorch基础教程1中我们用的是基于【穷举】的思想,但如果在多维的情况下(即多个参数),会引起维度诅咒现象。 现在我们利用【分治法】,先对整体采样分割,在相对最低点进一步采样。需要求解使loss最小时的参数取值:
1)每个优化器都是一个类,一定要进行实例化才能使用,比如:
PyTorch中神经网络构造一般是基于 Module 类的模型来完成的,它让模型构造更加灵活。Module 类是 nn 模块里提供的一个模型构造类,是所有神经网络模块的基类,我们可以继承它来定义我们想要的模型。
回顾我们在完成一项机器学习任务时的步骤: (1)首先需要对数据进行预处理,其中重要的步骤包括数据格式的统一和必要的数据变换,同时划分训练集和测试集。
(1)Word2vec 的研究中提出的模型结构、目标函数、负采样方法、负采样中的目标函数在后续的研究中被重复使用并被屡次优化。掌握 Word2vec 中的每一个细节成了研究 Embedding 的基础。
类,目标就是将具有 P PP 维特征的 n nn 个样本分到 C CC 个类别中,相当于做一个映射 C = f ( n ) C = f(n)C=f(n) ,将样本经过一种变换赋予一个 l a b e l labellabel。可以把分类的过程表示成一棵树,每次
在上面的全连接层中是将input的图像拉成一个向量,但是这样可能会导致:某两个相邻的点在处理后的向量中确实间距很远,这样就会丧失原有的空间结构。而CNN是直接按照图像的空间结构进行保存。
不要小看简单线性模型哈哈,虽然这讲我们还没正式用到pytorch,但是用到的前向传播、损失函数、两种绘loss图等方法在后面是很常用的。
已知 rand_N() 可以等概率的生成[1, N]范围的随机数 那么: (rand_X() - 1) × Y + rand_Y() => 可以等概率的生成[1, X * Y]范围的等概率随机数 即实现了 rand_XY()
(4)root_weight (bool, optional): If set to :obj:False, the layer will not add transformed root node features to the output.(default: :obj:True) (5)bias (bool, optional): If set to :obj:False, the layer will not learn an additive bias. (default: :obj:True) (6)**kwargs (optional): Additional arguments
在跑几个月前跑过PyG的GNN模型时,突然当头一棒报错:'NoneType' object has no attribute 'origin',不要慌,赶紧百度 一顿操作猛如虎,发现没几个帖子讲这个,然后发现google后git
大多数计算机系统中都存在多种数据存储类型,根据不同存储介质的速度和成本,可以把它们按层次结构组织起来,如图2-1所示。位于顶部的存储设备是最接近CPU的,其存取速度最快,但是容量最小,价格也最昂贵。离CPU越远,存储设备的容量就越大,不过速度也越慢,每比特的价格也越便宜。
作为数据库系统的核心和基础,数据库管理系统(Data Base Management System,DBMS)应用广泛。DBMS帮助用户实现对共享数据的高效组织、存储、管理和存取,经过数十年的研究发展,已经成为继操作系统之后最复杂的系统软件。
基于图的半监督学习:给定的图结构的数据中,只有少部分节点是有标记(label)的,任务就是预测出未标记节点的label。 1.1 经典的分类方法
之前没用过IDEA,最近因为要跑一个推荐系统模型,线上部分都是java代码,用IEDA时发现即使import项目选了maven,后面还是识别不了maven项目(run不了),于是乎找到本地项目的pom.xml文件,右键点击maven的reinport后又发现速度是真滴龟速,折腾下发现可以通过设置阿里源仓库提速:
(1)用for的i默认是从0开始,如果想要要从1开始遍历,可以对后面的range处理 (2)题目是不用pandas对csv文件(数据之间是逗号间隔)处理,所以需要利用open后readlines后的每行数据,依次找到当前的第一个,位置,然后将前面用过的数据去掉。如下如处理:
比赛中经常用到数据处理,当需要对某些表的列数据进行拼接时则会用到concatAPI,关于直观上的图形拼接栗子可以参考pandas的concat函数和append方法。
在所有业界巨头的推荐引擎都由深度学习驱动的今天,作为一名推荐系统从业者,我们不应该止步于: (1)不能满足于继续使用协同过滤、矩阵分解这类传统方法,而应该加深对深度学习模型的理解;加强对大数据平台的熟悉程度,培养结合业务和模型的技术直觉,提高我们整体的技术格局。
【集成学习】(task4)分类问题(逻辑回归、概率分类、决策树、SVM)(更新ing) 步骤1:收集数据集并选择合适的特征: 在数据集上我们使用我们比较熟悉的IRIS鸢尾花数据集。
本文提出DeepWalk算法——一种用于学习网络中顶点的潜在表示的新方法,这些潜在表示将社会关系编码到连续的向量空间中,以至于能容易地用到统计模型中。DeepWalk将语言建模和无监督特征学习(或深度学习)的最近进展,从单词序列推广到图中。