我收到了很多关于我如何对机器学习产生兴趣以及我的背景的电子邮件。
我不认为我的故事有什么特别之处或有趣之处,但我很高兴分享它,也很荣幸被问及。
这篇帖子感觉有点自恋。我想它可以作为我未来回答类似询问的权威版本。
我在此强调的经验教训是我在机器学习领域工作的基础,并且有很小的可能,也许我的故事中有一个核心,你可以从中获得动力或灵感。
简而言之
这是这方面的单行本
我是一名程序员,开始涉足,辞掉了公司的工作去研究人工智能并获得了一些高级学位,然后又回到了编程,致力于解决更宏大的问题。
这是单段版本
我被编程的创造力和力量所唤醒。我寻求更强大的工具,直到我发现了人工智能。我开始编码、写作并赢得比赛。我当时是一名公司顾问,走在一条很好的道路上,但我辞职去追求我对人工智能的热情。我将这份热情投入到计算智能领域的硕士和博士学位中。然后我辗转于一家网络初创公司和一家国防分包商,并从事多智能体系统的工作。我现在从事气象学家用于预测澳大利亚及南太平洋热带气旋的系统和模型工作。我在MachineLearningMastery.com上追求我的使命,帮助程序员入门并在机器学习领域取得进步。
长篇版本
我所做的事情以及我学到的经验可以分为五个部分
- 计算机:计算机和软件是达到目的的手段,在此情况下是为了娱乐。
- 程序员:创造和分享工作产品可以带来机会,知识唾手可得。
- 研究员:热情是强大的工具,所以要谨慎使用,并相信自己。
- 问题:聪明的人和有趣的技术是不够的,你需要一个重要的问题才能感到满足。
- 使命:心态是关键。发挥你作为程序员或工程师的技能,并学习和实践应用机器学习。
如果您在 LinkedIn 上,可以与我联系,获取我所做的一些事情的详细分类。
第一部分:计算机
计算机作为一种电器
我从小就在有电脑的家里长大。我的父亲是一名网络管理员,我们家里一直有一台家用电脑,后来还有多台系统和大量的临时计算机硬件。
家用电脑就像一个电器。我可以用它来玩冒险游戏、平台游戏,后来还可以玩早期的第一人称射击游戏。
有些游戏需要特殊配置系统。学习 DOS 以及加载驱动程序和内存管理的细节,是源于让特定游戏能够运行的愿望。优化系统配置本身成为了游戏,比游戏本身更具挑战性和趣味性。

DOS 软盘
照片由 DBreg2007 提供,部分权利保留
硬件和网络
家里似乎总是有很多硬件。像旧的单色显示器这样的大型设备,以及各种零散的部件,比如装满 XT 主板、MFM 硬盘驱动器,以及后来 SCSI 控制器和以太网卡。
学习如何组装 PC 是由玩那些只能通过 5.25 英寸软盘玩到的游戏的愿望驱动的。后来,学习设计和组装 PC 是由拥有自己的 PC 来玩像 Quake 这样更新、更耗费资源的游戏的经济效益驱动的。
网络游戏曾是我的爱好,一开始是通过调制解调器和零模型电缆,后来是通过小型局域网。学习如何设置临时网络是能够玩合作模式和死亡竞赛模式的《Doom》以及后续的第一人称射击游戏的绝对必需的。
这里的模式是,我不是因为计算机本身而吸引,而是作为达到特定目的的手段而获得的专业知识,几乎总是为了玩游戏。

以太网线
照片由 GlennFleishman 提供,部分权利保留
第二部分:程序员
游戏模组
玩了很多第一人称射击游戏,这让我萌生了修改游戏的想法。
我开始为游戏创建自己的关卡。我将它们分发给朋友,后来又放在我的个人网站上。我开始对游戏的深层工作方式感兴趣。我开始修改代码并分发我自己的游戏修改版,其中一些甚至获得了一些广泛的报道。
至少起初,我并不对编程本身感兴趣。我感兴趣的是我能建造什么以及我能与谁分享。我学习了 C 和 C++,以便能够修改游戏。我学习了 Java,以便能够轻松创建简单的 GUI 和网络游戏。我学习了网络编程,以便能够让我的个人网站看起来和运行得更好。
我学会了半正式工作产品的 Yet,它可以被打包和共享。我还学会了,如果我足够勇敢地分享它,其他人可以从我的工作中学习、评论,甚至改进它。我的作品获得的评论给我带来了其他机会,例如媒体报道、免费托管的优惠以及与大师合作。
编程
我沉迷于编程。学校不再是强迫灌输知识的地方,而是一个我可以利用的资源,来学习构建更有趣的东西所需的知识。我的编程和成绩得到了关注,我获得了一个 IT 顾问的职位,为企业客户做大量的网页编程和企业 Java 工作。
我更深入地研究了编程的艺术和技巧,以及更强大的工具,如网络编程和多线程。我开始阅读人工智能方面的书籍,从经典著作开始,然后是 Minsky、Novig 和 Brooks。
我尝试为第一人称射击游戏制作自己的 AI 机器人,并探索了导航和规划问题。我了解了神经网络和遗传算法,并开始编写自己的实现。我发现了像学习向量量化和自组织图这样的算法,并实现了它们又重新实现了自己的版本。这引出了人工智能写作比赛和机器学习比赛,我在其中表现出色。
我了解到我的兴趣可以把我推向新颖有趣的领域,并且我可以在需要时学习所需知识以获得结果。论文和书籍都已备好,在我需要时就可以阅读。我还了解到算法很神奇,但并非魔法。它们被写在论文中,任何人都可以将它们变成代码。
- 有限状态机,Quake Monsters 的介绍与分析(2002 年左右,人工智能写作比赛一等奖)
- 生态系统:构建一个简单可自我维持的适应性代理社会(2003 年左右,写作比赛)
- Cellz 控制器设计竞赛,遗传与进化计算会议(2003 年左右,一等奖)
第三部分:研究员
热情
我还年轻,更愿意花时间研究人工智能,而不是帮助公司赚钱。我辞掉了工作,将我(晚上)攻读的硕士课程从课程作业改为研究。
我与一个很棒的复杂智能系统实验室取得了联系,被允许自由地深入思考并选择我想研究的课题。我决定深入研究遗传算法,并阅读了大量的群体生态学书籍,最终选择了生态位理论和试图利用它们来解决多模态和多目标问题的算法。
我继续深入研究,发现了人工免疫系统领域,并探索了获得性免疫系统在分层和分布式模型中进化过程的空间和时间特性。这简直太棒了。
我了解到热情是一个强大的工具,而拥有选择和致力于某个研究领域自由的人可以释放这种热情,它去除了束缚,最终让你对自己负责。
- 并行排队遗传算法:拥挤的视角(硕士论文,约 2004 年)
- 克隆选择作为适应性和分布式信息处理的灵感来源(博士论文,约 2008 年)
- 受免疫学启发的分布式学习环境,用于多目标和混合优化(IEEE 论文)
研究
我比自己做实验更喜欢阅读和写作。这对我来说是一个彻底的转变。
我阅读了数百甚至数千篇研究论文,纯粹是为了好玩。我开发并完善了一个将我所学知识进行浓缩和解释的过程,将其转化为半正式的简短工作产品,即技术报告。
我花了很多时间思考该领域更广泛的问题。我创建了自己的算法实现和竞赛平台,并敏锐地意识到已发表作品质量的差异、算法竞赛的绝对徒劳以及已发表作品可复现性方面的深层问题。
我热爱科学,但这些问题让我对学术生涯望而却步。我找到了阅读和传播研究出版物工作的乐趣,并且我知道我不需要在机构里才能继续我的兴趣。
第四部分:找到目标
创业公司
研究生毕业后,我召集了一群我认识的最聪明的人。我们的使命是通过“创业公司”将我们的技术技能转化为金钱,我之所以引用“创业公司”,是因为我们根本不知道自己在做什么。
我们都能构建,但我们不会销售或营销,也不知道如何最好地利用我们的才能。我们的使命是每月为尽可能多的我们能够维持下去的月份构建一个网站。我们没能坚持超过 4-6 个月就失败了,但我们设法构建了许多网站,其中两个网站获得了一些关注和客户。
我跳槽到另一家初创公司,这次是为了更好地利用我的人工智能和研究技能。这是一家小型国防分包商,在信息检索、网络中心战和无人机控制器设计等不同领域使用多智能体技术。大部分是航空相关项目。这项技术学习起来很有趣,也很吸引人,但它都是研发原型。我没有看到任何东西真正被使用。
我了解到你需要真正的人和真正的问题。我了解到,即使有聪明的人和酷的技术,除非你与有实际问题的人密切合作,否则你无法产生影响。
- 混乱方法(约 2008 年)
- ABitOfPluck,创业营(约 2008 年)
- Agent Oriented Software
问题
我抓住了一个机会,我的编程、研究和数据都围绕着一个重要的问题。
我目前在一家气象组织工作,开发和维护气象学家用于预测澳大利亚及南太平洋热带气旋的软件和模型。我对统计模型、预报验证和集合方法特别感兴趣,因为它们与机器学习方法和实践有使用上的重叠。
我偶尔继续参加机器学习竞赛,并为当地的初创公司提供咨询。我总能学到东西。我还写了一本关于算法的书,试图直接帮助初学者实现和了解有趣的算法。
我了解到,致力于解决重要的问题并运用你的技能集是很有成就感的。
- 聪明算法:自然启发式编程指南(约 2011 年)
- Kaggle 个人资料
第五部分:使命
我不是机器学习专家,但我见过一些事情。我曾是那个感兴趣的程序员,实现了算法。我见过学术界的一面,并获得了一些高级学位。我曾为从金融到初创公司的客户提供咨询。我写过书,参加过现代竞赛。现在我热衷于回馈并帮助初学者。
我走了很长一段路,最终回到了起点。我找到了自信,培养了完成事情的纪律。改变的是心态,而不是技术技能。
我的使命是帮助程序员和工程师入门并提高机器学习的水平。克服他们自我设限的信念,并利用他们已有的技能。
如果你痴迷于机器学习,那么就去学习和实践机器学习。专注于你的优势和已有的技能,并做出只有工程师和程序员才能做出的独特贡献。
我向你保证,一旦你找到了那个重要的问题与你的技能集相结合的混合点,你就会找到成就感。
如果你对我的故事和我的使命感到有些认同,请下载我的机器学习资源指南,并订阅我的电子邮件列表,发现你在哪里适合,以及应该专注于什么来开始和继续你的机器学习之旅。
写得很好,Jason。
谢谢,Iona
我很高兴找到你的网站!写得很好,工作也很棒。我是一名程序员,ML 一直让我望而生畏。现在我找到了一个很好的资源可以重新开始学习。
我非常欣赏你的博客。我想要开发一个面向视觉的导航系统,让我的机器人能够绘制一系列房间并根据它看到的东西知道自己的位置。LSTMs 在这方面有帮助吗?有什么好的入门方法?
哇,听起来令人印象深刻。
我建议从对问题和数据的清晰描述开始
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
感谢分享您的个人旅程和经验。发现您经历过的所有阶段很有趣,也让内容和博客更容易理解。
谢谢。
我认为 Kaggle 链接已损坏
谢谢,已修正。
Jason,我们有几乎相同的经历!
https://efxa.org/about/
祝您一切顺利!
感谢分享。
您的个人旅程和您在本网站上的精彩资料一样鼓舞人心。