在几个月前,试图开了一下MIT 6.828的坑,但是因为各种原因,只做了lab1就搁置了。前几天突然在知乎上看到了二十八画生征友:一起来通关6.S081/6.828吧~,发现这个MIT 6.S081是MIT 6.828的简化版,而且梯度更加的平滑。
GNN for Source Code Modeling(三)
实际上 GNN 在 Source Code 上的应用和创新还有很多。之前的两篇文章都是关于 GNN 建图以及 GNN 跟其他任务相结合的工作,这篇文章就讲一下对 GNN 本身的创新。
GNN for Source Code Modeling(二)
这篇讲一个基于上一篇的改进工作。 在 Source Code 中,因为程序员的变量命名通常来讲都比较诡异,所以存在着比较严重的 open vocabulary 问题(也叫作 Out of Vocabulary)。比如一个变量名叫做 LianlianInput,因为这个 Lianlian 不在词汇表里面,VARNAMING 的时候就根本不会输出这个 subtoken,对最后的效果有比较严重的影响。
GNN for Source Code Modeling(一)
关于 Source Code 的 learning 其实已经有很多工作了,每年的顶会中也有很多这个方面的文章。其实针对 Source Code 的 learning 可以算是 NLP 的一个子领域,因为 Source Code 本身就是就是程序员之间交流的一种语言。因为 Code 是一个结构化数据,存在着语义信息与语法信息,所以相比于自然语言来说,Source Code 是适合于 GNN 大显神威的领域。
AutoTVM 探秘 (三)
对于目前的优化算法来说,依然存在着许多问题。但是后续的工作并不是特别多。首先可以看一下 Reinforcement Learning and Adaptive Sampling for Optimized DNN Compilation, ICML 2019 Workshop RL4RealLife 这篇文章主要谈到的问题是两点:1. 开发一个更有效的搜索算法(相对于 AutoTVM 的模拟退火) 2. 减少硬件测试的时间。从这篇文章的实验结果来看,第一个目标基本上没有达成,第二个目标完成的还不错。这个第二个目标也是我认为的之后优化的核心问题。 文章的整个框架如下图,主要贡献是两个蓝色的部分——基于强化学习的搜索和自适应采样。
AutoTVM 探秘(二)
好了,本篇开始进入正题!内容基本都来自于:Learning to Optimize Tensor Programs. NeurlPS`18
AutoTVM 探秘(一)
周末要在实验室搞个类似讲座之类的东西,先在这里写一下讲座内容,理清思路。也是对最近一个月的学习内容做一个总结。
CSE 599W: SYSTEMS FOR ML 课程笔记 7-12
各种课程资料请参考上一篇文章
CSE 599W: Systems for ML 课程笔记 1-6
课程网站 在头条 AML 实习的时候就觉得这个 AI system 方向非常有趣,但是苦于实验室不是搞这一套的,自己拖延症也非常严重,所以一直在入门的边缘徘徊。但是在今天——研一秋学期考试周的前一周,我决定开始学习 AI system 方向最著名的必学课程,Tianqi Chen 在 UW 开设的 CSE599W。 这个课程其实资料并不是很完善,只有 github 上面的几个 repo 和课程网站上面的 slide,缺乏讲课的视频资源。而且在开始学习之前就听说很多地方 slide 写的非常简陋,只能通过 tvm 和 tinyflow 代码慢慢学习。我在学习之前也找了一些 blog 资源,开个坑,希望可以努力坚持下来! 本人的作业也开源到 github 上面了,希望大家多多指导。
从 AdaBoost 到 GBDT
集成学习顾名思义,就是把一堆垃圾方法集成起来变成一个牛逼的方法。集成学习主要分为两种思路:Bagging 和 Boosting。Bagging 的话就是一堆独立的垃圾方法,比如随机森林,就是通过不同的采样和不同的特征抽取方法产生一堆独立的决策树,然后把他们的决策进行投票。而 Boosting 则是通过一个垃圾方法来产生下一个垃圾方法,最知名的方法就是 AdaBoost 了。