OpenAI 创始人之一Greg Brockman在19年7月份写过一篇博客《How I became a machine learning practitioner》,讲述了自己学习机器学习的痛苦历程。
Greg在加入OpenAI之前是Stipe的CTO,本身是技术大牛,但是在学习机器学习的过程中,也是跟我们普通人一样遇到很多障碍,但他还是坚持下去,因为他不想只局限于理解项目的一部分,而是希望能完全清楚地看到整个项目的全貌。
他的学习方法也是借助做中学:
我发现,当我有明确的构建目标时,学习效率最高。我打算尝试制作一个聊天机器人。我开始自学我们为Fellows项目设计的课程,仅选择与自然语言处理 (NLP) 相关的部分。例如,我编写并训练了一个基于 LSTM 的语言模型,接着又尝试了基于 Transformer 的模型。我还深入研究了信息理论等领域,并细读了许多论文,直到彻底理解每一行内容。
虽然进展缓慢,但我已有所预期。我并没有进入那种高效的“流状态”。这让我回想起刚开始学编程时的挑战,以及我花了多少年才感觉自己掌握了编程技能。坦白说,我对自己能否精通机器学习并不自信。但我还是坚持下去,因为我不想只局限于理解项目的一部分。我希望能完全清楚地看到整个项目的全貌。
我的个人生活也在鼓励我继续前进。我开始了一段新的关系,我的伴侣让我觉得即使失败也没关系。我们一起度过了第一个假期,我大部分时间都在努力破解机器学习的难题,尽管这意味着我们错过了许多计划好的活动,但她始终陪伴在我身边。
我迈出了一个重要的概念性步骤,克服了我之前在 Dota 中未曾尝试的障碍:大胆修改别人的机器学习代码。我对找到的聊天数据集进行了GPT-1的调整,甚至加入了我自己简单的采样代码。但当我尝试生成更长的信息时,程序变得极其缓慢,这种挫败感最终克服了我的恐惧,促使我实现了 GPU 缓存的优化,这一改动影响了整个模型。
我多次尝试,却因为难以理解的复杂性而放弃了之前的修改。但几天后,当我终于让程序正常运行,我突然领悟到了一些我以前认为不可能的知识:我现在不仅理解了整个模型的组成,还领会了一些细微之处,比如代码库是如何巧妙地处理 TensorFlow 的变量作用域。
最终他还是成功迈过去了那道坎,并且感慨道:
“我了解到,拥有扎实线性代数和概率知识的软件工程师,只需几个月的自学就能转型为机器学习工程师。”。
现在有点后悔上大学没好好学习线性代数了[允悲]
译文:我是如何成为机器学习的实践者 [译] https://t.co/s7RfnpSvxn
原文:How I became a machine learning practitioner https://t.co/XIcM4WB26S