Weiguo's Station

  • 博客首页

  • 文章归档

  • 分类专栏

  • 各种标签

  • 站点搜索

科学上网搭建方法

发表于 2020-01-08 更新于 2021-03-22 分类于 小工具

1. 自建ss服务器教程

自建ss/ssr教程很简单,整个教程分三步:

  1. 购买VPS服务器
  2. 一键部署VPS服务器
  3. 一键加速VPS服务器

1.1 购买VPS服务器

VPS服务器需要选择国外的,首选国际知名的vultr,速度不错、稳定且性价比高,按小时计费,能够随时开通和删除服务器,新服务器即是新ip。vultr官网:https://my.vultr.com/

阅读全文 »

BatchSize在训练过程中的影响

发表于 2020-01-07 更新于 2021-03-22 分类于 深度学习

先看两个问题:

  1. 深度学习中batch size的大小对训练过程的影响是什么样的?
  2. 有些时候不可避免地要用超大batch,比如人脸识别,可能每个batch要有几万甚至几十万张人脸图像,训练过程中超大batch有什么优缺点,如何尽可能地避免超大batch带来的负面影响?
阅读全文 »

分布式TensorFlow模式

发表于 2020-01-05 更新于 2021-03-22 分类于 语言框架

1. 简介

Tensorflow API提供了Cluster、 Server以及 Supervisor来支持模型的分布式训练。 关于Tensorflow的分布式训练介绍可以参考 Distributed Tensorflow。

简单的概括说明如下:

  • Tensorflow分布式Cluster由多个Task组成,每个Task对应一个tf.train.Server实例, 作为Cluster的一个单独节点;
  • 多个相同作用的Task可以被划分为一个job,例如ps job作为参数服务器只保存Tensorflow model的参数,而worker job则作为计算节点只执行计算密集型的Graph计算。
  • Cluster中的Task会相对进行通信,以便进行状态同步、参数更新等操作。
阅读全文 »

机器学习中的损失函数

发表于 2020-01-04 更新于 2021-03-22 分类于 机器学习

1. 平方损失误差

平方误差损失(也称为L2 Loss)是实际值和预测值之差的平方

MSE损失函数通过平方误差来惩罚模型犯的大错误。把一个比较大的数平方会使它变得更大。这个属性使MSE成本函数对异常值的健壮性降低。因此,如果数据容易出现许多的异常值,则不应使用这个它。

阅读全文 »

resume-2020

发表于 2020-01-01 更新于 2021-03-22 分类于 个人小结

目录

  • 沉浸式视频排序
  • 新闻Push推荐排序

简历在老地方

1. 沉浸式视频排序

沉浸式视频(背景是黑色的)具有自动播放、自动下滑的特点,而且沉浸式视频的视频长度跨度很大,短则10s+,长则2h+。

如何合理的划分正样本和负样本是特征、模型优化的前提!原始正负样本比例大概 5:1。

阅读全文 »

TensorFlow-Embedding笔记

发表于 2019-10-12 更新于 2021-03-22 分类于 深度学习

embedding中牢记feature_batch中的value表示的都是embedding矩阵中的index

1. tf 1.x中的Embedding实现

使用embedding_lookup函数来实现Emedding,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# embedding matrix 4x4
embedding = tf.constant(
[
[0.21, 0.41, 0.51, 0.11],
[0.22, 0.42, 0.52, 0.12],
[0.23, 0.43, 0.53, 0.13],
[0.24, 0.44, 0.54, 0.14]
], dtype=tf.float32)

feature_batch = tf.constant([2, 3, 1, 0])
# 相当于把行号变化,原来index=2的变为index=0,index=3->1, index=1->2, index=3->0
get_embedding1 = tf.nn.embedding_lookup(embedding, feature_batch)
# 生成 4x4 的one-hot矩阵,1的位置有feature_batch中的值决定
feature_batch_one_hot = tf.one_hot(feature_batch, depth=4)
# embedding层其实是一个全连接神经网络层,那么其过程等价于:
# 矩阵乘法,描述了 embedding_lookup 的原理
get_embedding2 = tf.matmul(feature_batch_one_hot, embedding)

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
embedding1, embedding2, batchOneHot = sess.run([get_embedding1, get_embedding2, feature_batch_one_hot])
print("embedding1\n", embedding1)
print("embedding2\n", embedding2)
print("feature_batch_one_hot\n", batchOneHot)
阅读全文 »

Wide-Deep Learning for Recommender Systems笔记

发表于 2019-10-08 更新于 2021-03-22 分类于 推荐系统

Google Play 用的深度神经网络推荐系统,主要思路是将 Memorization(Wide Model) 和 Generalization(Deep Model) 取长补短相结合。

1. Overview of System

先来看一下推荐系统的整体架构,由两个部分组成,检索系统(或者说候选生成系统) 和 排序系统(排序网络)。首先,用 检索(retrieval) 的方法对大数据集进行初步筛选,返回最匹配 query 的一部分物品列表,这里的检索通常会结合采用 机器学习模型(machine-learned models) 和 人工定义规则(human-defined rules) 两种方法。从大规模样本中召回最佳候选集之后,再使用 排序系统 对每个物品进行算分、排序,分数 $P(y|x)$,$y$ 是用户采取的行动(比如说下载行为),$x$ 是特征,包括

阅读全文 »

Neural Factorization Machines for Sparse Predictive Analytics笔记

发表于 2019-10-07 更新于 2021-03-22 分类于 推荐系统

NFM充分结合了FM提取的二阶线性特征与神经网络提取的高阶非线性特征。总得来说,FM可以被看作一个没有隐含层的NFM,故NFM肯定比FM更具表现力。

FM预测公式:

阅读全文 »

Field-aware Factorization Machines for CTR Prediction笔记

发表于 2019-10-06 更新于 2021-03-22 分类于 推荐系统

FFM(Field Factorization Machine)是在FM的基础上引入了场(Field)的概念而形成的新模型。 在FM中计算特征 $x_i$ 与其他特征的交叉影响时, 使用的都是同一个隐向量 $v_i$ 。 而FFM将特征按照事先的规则分为多个场(Field), 特征 $x_i$ 属于某个特定的场$f$。 每个特征将被映射为多个隐向量 $v_{i,1}, v_{i,2}, \cdots, v_{i,f}$ , 每个隐向量对应一个场。 当两个特征 $x_i, x_j$ 组合时, 用对方对应的场对应的隐向量做内积:

阅读全文 »

Factorization Machines笔记

发表于 2019-10-05 更新于 2021-03-22 分类于 推荐系统

FM预测公式:

其中,

阅读全文 »
1234…9
WeiguoZHAO

WeiguoZHAO

Welcome to my blog~
87 日志
13 分类
49 标签
GitHub E-Mail
大牛们
  • colah's blog
  • 王喆的Github
  • 刘建平的Github
  • 美团技术团队
© 2021 WeiguoZHAO
0%