- 博客(27)
- 收藏
- 关注
原创 【深度学习基础】batch、layer normalization区别
batch:原理:https://www.cnblogs.com/skyfsm/p/8453498.html计算细节:https://blog.youkuaiyun.com/c2a2o2/article/details/83410273
2024-05-07 15:54:55
1122
1
原创 【推荐系统-多任务学习】MMOE
文章目录背景梯度更新的问题背景多任务学习1)硬参数共享多任务学习的硬参数共享框架,都是一个共享层+任务层(shared- bottom),共享层是一组公共参数,可以学习到共同的信息,然后再接一个具体的任务层,比如ctr、cvr预估。2 ) 软参数共享在软参数共享中,每个任务都有自己的模型和参数。然后对模型参数之间的距离进行正则化,以鼓励参数相似MMOE的模型的结构motivationshared-bottom对于多个任务不是那么相关的情况,不能很好的学习,mmoe这种通过Moe的结构,前
2021-07-27 17:30:24
1241
原创 【leetcode】1911. 最大子序列交替和
题目描述:链接:https://leetcode-cn.com/problems/maximum-alternating-subsequence-sum/solution/zui-da-zi-xu-lie-jiao-ti-he-by-leetcode-epqrk/简单的想法,利用动态规划,分两种情况讨论,一种是当前数组是偶数下标结尾,另一种是当前数据是奇数下标结尾,可以写出如下递推公式:奇数:odd[i]=max{even[i−1]−nums[i],odd[i−1]}偶数:even[i]=max{
2021-07-06 09:04:09
420
原创 【推荐系统-召回】召回简介(一)
文章目录召回的作用?常见的召回策略如何评估召回的效果?总结参考文献召回的作用?召回的核心目标:多样性:推荐系统不能让用户的兴趣越来越狭窄,应该让用户看到多样性的结果业务相关目标:不同的业务,如电商、内容推荐、音乐推荐都有自己的业务逻辑,这种业务逻辑可以放到召回中进行处理,也可以放在后续的精排的filter里面,但是filter理论越早越好跟排序的目标一致,排序的目标是什么,召回的目标最好与之保持一致。常见的召回策略一般工业界有两种召回策略,一种是非个性化的召回,另一种是个性化的召回。所谓非
2021-05-01 19:18:36
1953
2
原创 【xgboost系列一】xgboost是什么?
大家好,这是我们xgboost系列的第一篇。xgboost[1]是一个在机器学习面试中被问到的一个算法。首先我们探讨一下理解xgboost的核心的一件事。那就是xgboost的数学模型,想要理解它,这个数学是跳不过去的。xgboost是基于提升树的概念,这种思想就是说学习一棵树可能效果很差,因为一棵树比较不稳定,去除某些特征或者样本以后,重新训练树的结构会变化。为了让模型的效果更鲁棒,我们可...
2021-01-02 17:10:56
1697
原创 【AI 工程】Hidden Technical Debt in Machine Learning Systems(二)
文章目录反馈循环(Feedback Loops)机器学习系统反模式(ML-System Anti-Patterns)上次讲了谷歌这篇论文中的两个技术债,一个是复杂模型的边界问题,一个是数据依赖问题。本文讲解反馈循环和机器学习系统的反模式。反馈循环(Feedback Loops)这个是说在人工智能系统中,经常存在输出影响输入这样的反馈循环的问题,比如ctr预估问题,你根据ctr预估的值算一个出价,然后根据出价进行排序,决定出不出广告,这样你出的广告就是被选过的,反过来影响你训练的数据分布,这就是反馈循
2020-12-13 23:15:01
298
原创 【AI 工程】Hidden Technical Debt in Machine Learning Systems(一)
这是一篇2015年提出的论文,但是我今天看还是对现实的实践具有指导作用。本文从传统软件工程的技术债引出机器学习系统的技术债,并且比较了两者不同。不同点具体为:传统的软件技术债都是代码层面的,但是机器学习系统代码层面、系统层面都有。具体的比较方面如下:1、复杂模型侵蚀边界...
2020-12-05 11:38:45
1324
4
原创 【python】如何使用requirements.txt文件解决Python的库依赖?
作为一名tf boy,当我们完成一个项目后,很久没用了,然后需要把代码从新下载下来。为了减少运行的错误,我们希望包的版本跟以前一样,这样就不会因为包的版本问题导致程序运行错误了。使用一个requirements.txt文件可以帮助我们解决这个问题。我们可以将项目依赖的包的版本卸载requirements.txt文件上,然后再用脚本安装这些包。比如一个项目依赖这些包,我们可以把这些东西复制到requirements.txt文件中:Cython>=0.19.2numpy>=1.7.1sci
2020-06-12 21:30:13
543
原创 【sklearn】KFold、StratifiedKFold、GroupKFold的区别
文章目录1、KFold2、StratifiedKFold3、GroupKFold参考文献平时使用或者数据竞赛中经常出现这几种交叉验证方式,那么他们的区别呢?[1]中给出了很多不同交叉验证的区别,本文就主要讲KFold、StratifiedKFold、GroupKFold的区别1、KFold>>> import numpy as np>>> from sklearn.model_selection import KFold>>> X = ["
2020-05-13 09:58:02
5916
1
原创 【C++】内联函数为什么定义在头文件中?
最近从新捡起C++,突然有一个想法,为什么内联函数的会在头文件中申明和定义。如果是C++新手,对申明和定义这两个词比较陌生,那么我先解释一下申明和定义的意思(原谅我废话多)一、申明和定义申明一般放头文件中,定义一般放.cpp文件中。比如现在我有个计算绝对值的函数。首先我创建一个abs.h文件申明这个函数:int abs(int a);然后创建一个abs.ccp文件定义这个函数:#...
2020-04-20 20:28:47
3332
原创 【xgboost系列三】xgboost树节点分裂方式:带权分位图
第二节讲了几种树节点的分裂方式,本节具体讲述xgboost的带权分位图思想本小节讲讲述分位图为什么能降低查找分裂点的个数,以及具体怎么操作的。一、数学建模假设我们有一堆带权重的点的集合D:其中xi为点,wi为点的权重。假设这些wi加起来为1000。xi都从小到大排好序。如果是普通的分位图,大家权重都是1,和就是n。如果我们要计算1/4分位点,此时我们查找1/4的位置是计算权重和1/4...
2020-04-19 12:05:43
2360
原创 【xgboost系列二】xgboost树节点分裂方式
大家好,这是我们xgboost系列的第二篇,上一篇讲述了xgboost的数学理论部分,包括目标函数、正则化、如何优化目标函数、分裂点的度量。本小节在上一节的基础上,讲述xgboost如何从根节点分裂树。当我们想找到一个分裂点的时候,我们需要干两件事情,第一件事情是遍历所有的特征,第二件事是从每个特征中找出最优的分裂点。在实际实现中就是两个for循环的事。一、最简单的分裂方式:贪心法这种方法是...
2020-04-19 08:49:39
3094
原创 【进程、线程、协程】进程与线程的区别(一)
进程与线程的区别 1.线程:单个线程里的内存空间数据共享。线程是cpu执行的基本单位,每个进程默认带一个线程。 2.进程:物理内存空间隔离(多个进程内存空间彼此隔离) 同一个进程下的多个线程共享该进程内的数据 3.创建数据 造出线程的数据要快于进程:进程是告诉操作系统开辟内存空间, 即:进程开启子进程的pid号不一样...
2020-01-01 12:46:49
478
原创 【数据结构与算法-动态规划】编辑距离
动态规划中,很多内存的消耗是一个二维数组,那么什么样的能消除变一维数组呢?总结如下: 与 GIL
线程安全是在多线程的环境下,能够保证多个线程同时执行时程序依旧运行正确, 而且要保证对于共享的数据可以由多个线程存取,但是同一时刻只能有一个线程进行存取。多线程环境下解决资源竞争问题的办法是加锁来保证存取操作的唯一性。通常加锁也有2种不同的粒度的锁:fine-grained(细粒度),程序员需要自行加/解锁来保证线程安全coarse-grained(粗粒度),语言层面本身维护着一个全局的锁...
2019-07-11 12:41:31
324
原创 字典树与双数组字典树总结
字典树字典树比较简单,本质是一个DFA(define finite automata. 具体可 关键词搜索leetcode trie tree双向数组字典树参考文献:http://www.docin.org/p-1433969315.html...
2019-06-25 13:14:38
1134
原创 python heapq的使用汇总
1、heapq模块的使用:https://blog.youkuaiyun.com/weixin_34390105/article/details/860291142、heapq模块实现大小堆:https://blog.youkuaiyun.com/tanghaiyu777/article/details/552710043、python:heapq模块对嵌套字典或二维列表取topN以前一直...
2019-05-18 18:42:47
1032
原创 【python】Python多类继承中,子类默认继承哪个父类的构造函数__init__
阅读gensim源码的时候,碰到self.wv = Word2VecKeyedVectors(size)这行代码的时候,点进去看Word2VecKeyedVectors实现原理如下:class Word2VecKeyedVectors(WordEmbeddingsKeyedVectors):pass他没有构造函数。默认调用子类的构造函数。这时候思考,当有多个子类的时候,调用哪个构造函数...
2019-05-16 20:02:07
1249
原创 【python】python的range 逆序输出范围
一般情况下我们,使用range(10)产生一个 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]范围内的数组,但是假如想逆序输出呢?这时候该使用,range(9, -1, -1)
2019-05-13 20:48:57
2241
转载 说说游戏中的敏感词过滤是如何实现的?
博客园转载:https://www.cnblogs.com/kubidemanong/p/10834993.html
2019-05-08 23:10:35
2698
转载 java反射的作用
1、通过反射运行配置文件内容通过修改配置文件,实现程序灵活性,不必写死。2、通过反射越过泛型检查3、实现内省参考博客:https://blog.youkuaiyun.com/sinat_38259539/article/details/71799078内省参考博客:https://blog.youkuaiyun.com/zhanjixun/article/details/68256724 ...
2018-08-23 10:46:01
911
原创 python 初始化一个定长的数组
# 有时候我们提前知道了一个数组的大小,需要给每个元素赋值,此时append好像不管用。我们需要定义一个定# # 长的数组,python中代码如下:b = [0 for _ in range(10)] #也可以b = [0]*10 for i in range(10): pass # 赋值语句...
2018-06-22 11:16:32
105416
2
原创 【深度学习】如何处理样本不均衡?(交叉熵改变权重,附tensorflow代码)
tf.nn.weighted_cross_entropy_with_logits(y_true, y_pred, weight)
2018-06-06 17:12:42
4630
原创 UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
python 读文件是碰到这个错误,查了一下python的文件编码机制python是 外部文件编码->内部编码->目标编码,这个报错的意思,是当内部编码转化成 gbk编码(默认)时出错,我也不知道为啥,改为utf-8就好了open('../atec_nlp_sim_train.csv', encoding='utf-8')加一个python支持的编码就可,我这选择的是 utf-8...
2018-06-03 19:36:10
49504
9
原创 ubuntu python2 和 python3的切换
直接执行这两个命令即可:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150如果要切换到Python2,执行:sudoupdate-a...
2018-05-28 18:50:18
1343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人