理解比特币白皮书 看了中本聪2008年写的比特币白皮书,有种相见恨晚的感觉,理解BTC后发现这个东西确实存在极大的合理性和价值,去中心化的思想非常美妙。详细文档可看李笑来的github。 文中的具体细节不再赘述,主要记录一些我阅读过程中思考以及理解的要点。 数字货币的概念文中将一枚数字硬币定义为a chain of digital signatures,即一串数字签名,并且示意图如下: 上图可以这么理解,假如所有 2024-02-18 数字货币 #比特币
Tensorflow op调用机制解析 最近老是有需求去看tf一些op的源码实现,比如ftrl优化器源码实现,在看的过程中会发现涉及python和c++的调用逻辑,因为大部分op在tf底层其实使用c++实现的。因此,大致梳理了一下tf的op调用机制。 以FTRL优化器为例,探索这个调用链路。(本文中的Tf为1.12版本) 原始import如下 1from tensorflow.train import FtrlOptimizer 本 2024-01-09 ML框架 #Tensorflow
tensorflow的自动求导机制 参考资料:https://www.zhihu.com/question/54554389 自动求导分成两种模式,一种是 Forward Mode,另外一种是 Reverse Mode,目前基本机器学习库用的后一种。 Forward mode: 每一步都用到链式求导,每个节点都记录其对原始节点的导数。 Reverse mode: 每一步都只记录相邻节点之间的导数,然后最终计算loss到某个节点的导数 2023-12-20 ML框架 #Tensorflow
hexo升级及图床配置 一直用免费的新浪图床,很多图都挂了,做了修复之后取了回来。为了以防万一,开通了ipic的会员和阿里云的oss存储服务,后续全部采用这个方式存图片了,花点钱省点心。教程:https://toolinbox.net/iPic/AddAliOSS.html。 另外,hexo和node也升级了版本,不然deploy一直有问题… 再此外,github现在http clone的话,upload需要用私人秘钥 2023-09-14 博客
强化学习基本知识点整理 最近研究黑盒优化问题的时候,发现有方法就是借鉴强化学习的思路: 通过reward的反馈,来优化一个不相干的网络(参数与目标无法直接梯度求导),这个思路在很多地方被反复用到,就像梯度下降一样是个比较经典的想法。因此重新看了一遍强化学习的知识,这一遍看完终于基本梳理清楚了其中的公式推导原理及流程,特此记录。 参考资料: 动手学习强化学习 基本概念强化学习在本质上是一个马尔科夫决策过程(MDP),由元组 2023-08-17 强化学习
update_ops和control_dependencies的理解 control_dependencies作用是保证在执行之后的op时,确认某些op已经执行完毕,相加于强加了依赖。 常见的场景为: 当用了tf.assign之类的op,并不会实际执行,需用手动sess.run该op才行,为了方便起见,就可以引入control_dependdencies,例子如下: 123456789101112131415161718192021import tensorflow 2023-07-10 ML框架 #Tensorflow
关于stop_gradient和trainable的理解 两个方法的分别意义: stop_gradient参考资料 而trainable则是在初始化变量时,手动设置为True or Flase,意图为是否加入到trainable_variable中(计算梯度时的变量集合)。 两个方法都可以起到停止梯度更新的作用,但stop_gradient更加灵活一点,可以直接截断路径上的前面所有变量的梯度。 2023-07-10 ML框架 #Tensorflow
Uplift model理解 背景在一些文档中看到了uplift模型,此类模型在一些用户增长(营销发券),甚至广告模型中都有用到,因此做了一些查阅,发现确实是个蛮有意思的方向,从另一个切入点来建模广告营销场景,整理成blog记录下。 参考文献 建模 以cvr模型为例,传统的cvr模型预估的是假设给用户曝光广告后的转化率,而没有考虑假设不曝光广告的自然转化率,uplift建模的则是该差值,并且期望找到的用户群体为:未曝光则不转化 2022-10-25 搜推广
Online Learning中的优化器 今天详细看了下推荐广告系统的online_learning,顾名思义,online_learning就是在线输入样本,更新模型,尽可能做到分钟级/小时级的模型更新,其实关键就是几个问题: 模型怎么学习? 怎么降低模型复杂度,保证inference的低延时? 参考博文 : FTRL 不太简短之介绍 模型怎么学习?这个其实很简单,其实要求我们可以基于在线输入的样本,进行权重参数更新,基于类似随机梯 2022-08-10 搜推广
浅谈FM和FFM 梳理一下FM和FFMFM: 参数复杂度:O(n*k) 计算复杂度:O(n^2 k),但可以通过目标函数转换变为O(n k) FFM: 参数复杂度:O(nkF) 计算复杂度:O(n^2 k),无法简化。*注意:每个特征都有自己所在的域,特征1和特征2交叉时,特征1的域向量选择特征2所在域F2,特征2的域向量选择特征1所在域F1。其实FFM就是把一个one-hot 变量中FM对应的向 2022-08-10 搜推广