概念清晰!概念清晰!概念清晰!
磨刀不误砍柴工!
最难的是开始,最简单的也是开始!
历时将近一年吧,因为疫情原因在家,终于下定决心把这门课程学习完毕,中间为了写论文,停了三个多月的时间。图神经网络最近是大热的研究方向,计算机领域的各种论文层出不穷。但是,就国内来说,入门学习图神经网络的资料确实很少,特别是中文的资料(因为我觉得入门来说,如果有中文资料,学习效率和学习速度会大大提高)。现在网络上的相关资料都很零碎,搜到的资料都是一些大佬的汇报,虽然介绍了很多概念,但感觉也就是停留在概念阶段了。所以,我当时找到了这门课程,就下定决心一定要看完,并且要形成学习笔记。
之前在写学习笔记的过程,不少都是参考了别人的笔记汇总而成的,磕磕绊绊学习下来,也算是有点小小的心得。在此分享一下具体整个课程的学习小结。希望能对有想法进入图神经网络的人有帮助。
PS:由于我本人不是计算机专业的,我的研究虽然是和计算机交叉的领域,但是重点不在于怎么设计神经网络模型,而在于如何把我本专业的问题抽象成相关的问题,再利用神经网络模型去解决。我觉得这应该是计算机、人工智能未来和产业结合的方向。所以,我在整个入门学习的过程中,倾向于概念和原理的理解。并且着重于去细化了解目前对我来说比较有用的部分。
PPS:真正地想去弄清楚其中的门道真的需要比较扎实的数学功底。
整体上分为三个部分,第一部分是机器学习,第二部分是深度学习,第三部分是图神经网络的学习。这三个部分是层层递进的关系,我的建议就是一定要遵循这三个部分来学习,前一部分是后一部分的基础,有了前一部分的基础概念,后面学习起来才不会很吃力。
写这篇学习小结的目的,就是希望能记录一下我从0开始的过程。在这次之前,我也在机器学习的门外徘徊了很久,但总是觉得没有头绪。整个入门的时间,机器学习和深度学习大致用了1个月,这一个月几乎每天基本上都用来学习相关的课程和资料。图神经网络的学习分为连个阶段,但是因为临近开学,所以断断续续地学习了很久。另外就是,入门指南只是从0到1的开始,可能是从0到0.1,也可能是从0到0.5。入门之后,必须要辅以项目实践的经验积累和不断地学习,自己的知识体系才会越来越完善。路漫漫其修远兮,坚持就是胜利。
1、一个很重要的前提——请拥有《线性代数》和《概率统计》的数学基础
。
线性代数推荐B站上的麻省理工公开课。即使你学过线性代数,这门公开课也值得一看。概率统计其实比较简单,很多内容高中就接触到了,在机器学习里面最重要的概率统计概念之一是似然估计
,可以复习一下这部分的内容。
2、机器学习模型初探——李航老师的《统计学习方法》和《机器学习实战》
学习内容:《统计学习方法》这本书对机器学习中各个模型的思想、适用范围、优缺点都做了很好的介绍,可以作为理论基础。《机器学习实战》就是对应的每个机器学习模型都用一个案例去实现,是基于python的。我一般就是看完《统计学习方法》的一章的模型,就对应地用《机器学习实战》里面的案例实现一下,巩固一下对模型的理解。
3、开始进入神经网络——[中英字幕]吴恩达机器学习系列课程
学习内容:
在B站上每节课开1.5倍速听的,课上的所有公式基本上都自己推导了。但是作业没有花太多时间认真做(主要是为了节约时间,如果有时间的话作业一定要自己认真做!)。B站课程下面的评论区有很多有用的资料,可以参考。
总结: 基本上机器学习的理论和入门到这里差不多就结束了,如果想巩固自己的机器学习基础,可以到kaggle上找一些竞赛项目做一下,网上都会有这些项目的解析的;也可以找一些研究生数学竞赛的机器学习相关的题目做一下,一般研赛的题目都是要求5天内完成,所以不会是很大的机器学习项目,很适合练手。我认为在这个过程中,重点是感受整个机器学习工程的过程,不断地训练自己机器学习的思维。
深度学习的话,建议就是找一本深度学习框架的书,按着上面的项目实践走一遍就好了。我选择的是pytorch,原因是我之前的电脑怎么都搞不定tensorflow(o(╥﹏╥)o)。
学习资料:
【深度学习实战】从零开始深度学习(一):利用PyTorch开始深度学习
【深度学习实战】从零开始深度学习(二):多层全连接神经网络与MNIST手写数字分类
【深度学习实战】从零开始深度学习(三):卷积神经网络与计算机视觉
【深度学习实战】【详细解读】基于Seq2Seq模型实现简单的机器翻译
【深度学习实战】从零开始深度学习(四):RNN与自然语言处理
【深度学习实战】从零开始深度学习(五):生成对抗网络——深度学习中的非监督学习问题
基本上,如果要入门深度学习,就是把最基本的全连接、CNN、RNN、GAN模型的框架和它们常用的领域、能解决的问题了解清楚,实战一遍就差不多了。后面的深入学习的话,就是要刷论文,积累实战经验了。
在这一部分的学习,建议是一个持续性的过程,最好就是每天学一个模型,保持思维的连续性。有些时候连续学习12小时比学习2次6小时的效果要好很多,虽然学习的总时间都是一样的。
学习资料:
【课程】斯坦福 CS224W: 图机器学习 (2019 秋 | 英字)
【图书】深入浅出图神经网络:GNN原理解析
学习过程:
这个过程就是按照cs224w这门课程的顺序来学习。中间辅以各种论文的阅读和Github上的项目理解。在此推荐一位大佬的笔记(WineChocolate),这位大佬应该就是做这方面工作的,他的笔记都是有自己的总结,我的笔记感觉就是把课上的一些我自己理解的重点记录了一下,把一些可以看的参考资料记录了一下。
我大概把这门课按照课程内容分成了几个章节,建议如果不能有持续的时间来看完这门课的话,那就一个章节一个章节地看。章节中的课程是按照内容整合在一起的。
所有的笔记和课件可以在这里:Note-Machine-Learning-with-Graph
内容 | 相关课程 | 课程笔记 |
---|---|---|
图、图的性质、随机图、图的结构 | 1. Introduction; Structure of Graphs 2. Properties of Networks and Random Graph Models 3. Motifs and Structural Roles in Networks 4. Community Structure in Networks |
1. cs224w 图神经网络 学习笔记(一)Introduction 2. cs224w 图神经网络 学习笔记(二)Properties of Networks and Random Graph Models 3. 图机器学习 - cs224w Lecture 1 & 2 - 图的性质及随机图 4. cs224w 图神经网络 学习笔记(三)Motifs and Structural Roles in Networks 5. cs224w 图神经网络 学习笔记(四)Snap.py: SNAP for Python 6. cs224w 图神经网络 学习笔记(五)Community Structure in Networks 7. 图机器学习 - cs224w Lecture 3 - Motif、Graphlet 及 结构性角色 8. 图机器学习 - cs224w Lecture 4 - 社区结构 |
图的谱聚类、信息传播、节点表示 | 5. Spectral Clustering 6. Message Passing and Node Classification 7. Graph Representation Learning |
1. cs224w 图神经网络 学习笔记(六)Spectral Clustering 谱聚类 2. cs224w 图神经网络 学习笔记(七)Message Passing and Node Classification 信息传播与节点分类 3. cs224w 图神经网络 学习笔记(八)Graph Representation Learning 图表示学习 4. 图机器学习 - cs224w Lecture 5 - 谱聚类 5. 图机器学习 - cs224w Lecture 6 - 消息传递 与 节点分类 6. 图机器学习 - cs224w Lecture 7 - 节点的表示 |
图神经网络 | 8. Graph Neural Networks 9. Graph Neural Networks:Hands-on Session 10. Deep Generative Models for Graphs 18. Limitations of Graph Neural Networks 19. Applications of Graph Neural Networks |
1. cs224w 图神经网络 学习笔记(九)Graph Neural Networks 图神经网络(含Hand-on Session) 2. cs224w 图神经网络 学习笔记(十)Deep Generative Models for Graphs 3. 图机器学习 - cs224w Lecture 8 & 9 -图神经网络 及 深度生成模型 4. 【深度学习实战】Pytorch Geometric实践——利用Pytorch搭建GNN 5. 【深度学习实战】《深入浅出图神经网络》GCN实战(pytorch) 6. 【读书笔记】《深入浅出图神经网络——GNN原理解析》 7. 【深度学习实战】GraphSAGE(pytorch) 8. cs224w 图神经网络 学习笔记(十八/十九)Limitations of Graph Neural Networks & Applications of Graph Neural Networks 9. 图机器学习 - cs224w Lecture 16 - 图神经网络的局限性 |
PageRank | 11. Link Analysis: PageRank | 1. cs224w 图神经网络 学习笔记(十一)Link Analysis: PageRank 2. 图机器学习 - cs224w Lecture 10 - PageRank |
网络传播及级联效应 | 12. Network Effects and Cascading Behavior 13. Probabilistic Contagion and Models of Influence |
1. cs224w 图神经网络 学习笔记(十二)Network Effects and Cascading Behavior 2. cs224w 图神经网络 学习笔记(十三)Probabilistic Contagion and Models of Influence 3. 图机器学习 - cs224w Lecture 11 & 12 - 网络传播 |
影响力最大化问题及爆点检测问题 | 14. Influence Maximization in Networks 15. Outbreak Detection in Networks |
1. cs224w 图神经网络 学习笔记(十四)Influence Maximization in Networks 2. cs224w 图神经网络 学习笔记(十五)Outbreak Detection in Networks 3. 图机器学习 - cs224w Lecture 13 & 14 - 影响力最大化 & 爆发检测 |
网络演化 | 16. Network Evolution | 1. cs224w 图神经网络 学习笔记(十六)Network Evolution 2. 图机器学习 - cs224w Lecture 15 - 网络演变 |
基于知识图谱的推理 | 17. Reasoning over Knowledge Graphs | cs224w 图神经网络 学习笔记(十七)Reasoning over Knowledge Graphs |