从零开始的机器学习研讨会
这个代码库是哈佛医学院神经生物学系"从零开始的机器学习"研讨会的一部分。
在这个研讨会中,一群感兴趣的研究生和博士后用Python开发流行机器学习模型的最小实现。主要目标是在保持计算"可追踪"的同时,展示算法的学习动态、优势和局限性。
每个主题会在两个晚上进行讨论。第一个晚上侧重理论(这个想法是如何/为什么有效?),而第二个晚上是小组编程会议(你能快速组建一个基本实现吗?)。会提供食物。
这个研讨会最初由Johannes Bill创办并精心维护。 目前的组织者是John Vastola。
即将举行的会议列表(2024年春季)
John的注释:仍在确定日程安排!
日期 | 时间 | 地点 | 主持人 | 主题 |
---|---|---|---|---|
2月20日+22日(周二/周四) | 下午5-8点 | WAB 236, HMS | John & Kiah | 广义线性模型 |
3月 | 下午5-8点 | 待定 | John & Siyan | 循环神经网络 |
4月 | 待定 | 待定 | 待定 | 待定 |
5月 | 待定 | 待定 | 待定 | 待定 |
过去会议列表
日期 | 时间 | 主持人 | 主题 |
---|---|---|---|
2019年1月30日 | 下午5-7点 | Johannes | 启动会议 |
2月12-13日(周二/周三) | 下午5-8点 | Luke & Johannes | 变分自编码器 |
4月23+25日(周二/周四) | 下午5-8点 | Chong & Alex | 隐马尔可夫模型 |
6月26-27日(周三/周四) | 下午5-8点 | Selmaan | 高斯过程 |
9月25-26日(周三/周四) | 下午5-8点 | Shih-Yi & Johannes | 生成对抗网络 |
11月20-21日(周三/周四) | 下午5-8点 | Seul Ah & Win | 强化学习入门 |
2020年2月12+19日(周三/周三) | 下午5-8点 | Anna K. | 卡尔曼滤波器和粒子滤波器 |
2020年4月29+30日(周三/周四) | 下午4-7点 | Emma & Jeff | 深度强化学习 |
新冠疫情中断 | (⚈̥̥̥̥̥́⌢⚈̥̥̥̥̥̀) | ||
2021年12月15+16日(周三/周四) | 下午5-8点 | Alex & Johannes | 贝叶斯神经网络和BBVI |
2022年3月7+10日(周一/周四) | 下午5-8点 | John & Zach | 强化学习的Actor-Critic方法 |
2022年6月21+22日(周二/周三) | 下午5-8点 | Binxu & John | 扩散生成模型 |
2022年11月1+2日(周二/周三) | 下午5-8点 | Binxu & John | Stable Diffusion |
2023年4月18+19日(周二/周三) | 下午6-8:30 | Binxu | Transformer模型 |
研讨会形式
每次会议由1-2人主持。 每次会议讨论一个机器学习模型。 每次会议包括两个子会议,在两个下午/晚上进行,例如,周三和周四下午5点。
第一天: 第一天,会议主持人使用白板或幻灯片简要介绍主题(理想情况下不超过1小时)。 目的是让参与者了解相关机器学习概念背后的理论。
第二天: 第二天,参与者自己编写模型的重要部分,通常在交互式Python 3笔记本中进行。 编码任务应由会议主持人设计,应在让参与者了解模型工作原理和几小时内可完成之间取得平衡。 理想情况下,"从零开始的机器学习"意味着我们想要理解每一步计算;实现不需要灵活或通用,而是足以完成一两个玩具任务即可。
最好每个人都带上自己的笔记本电脑。 在标准台式电脑上(不使用GPU)训练时间不应超过5分钟。
欢迎人们参与而不承诺主持会议。然而,常规参与者可以考虑在某个时候主持一次。
会议主持人的角色
每次会议由一到两名主持人准备。 主持人有以下责任:
- 在第一天做简短介绍,
- 为第二天提供有教育意义的编码任务(托管在这里:https://github.com/DrugowitschLab/ML-from-scratch-seminar),
- 提供阅读材料,
- 在理论和实现问题上帮助他人,
- 提前宣布任何非标准软件要求,以便人们可以在家里安装。
对于代码,可以使用自动微分包和其他小帮手:会议主持人决定"从零开始"和"黑盒"之间的适当平衡。顺便说一下,Erik Linder-Norén的"ML-From-Scratch"代码库似乎是一个无限的示例和代码片段源。(有趣的是:这里使用相同的名称纯属巧合!)
会议结束后,请在github上的新子目录中分享材料(笔记、阅读材料、参考实现等)。联系John获取仓库写入权限。
组织者的角色
组织者(John Vastola)也是参与者,即不时担任会议主持人。 除此之外,组织者还负责协助安排会议、在理论和规划编码任务时为会议主持人提供建议、维护文档和代码共享平台,并负责订购晚餐。
未来主题的一些建议:
- 切换线性动力系统
- LSTM/GRU
- ODE网络
- 分层狄利克雷过程
- 自然梯度下降
- 图神经网络
- 元学习(一篇不错的小论文:https://paperswithcode.com/method/maml )
- 向量符号架构及其与认知神经科学的联系(一些资源:https://arxiv.org/pdf/cs/0412059.pdf, https://arxiv.org/pdf/2001.11797.pdf, https://www.hd-computing.com/, https://bioengineeringcommunity.nature.com/posts/the-best-of-both-worlds-deep-learning-meets-vector-symbolic-ai )