大家好,我是 Karan,一名居住在新加坡的高中生。去年我花了一年的时间探索人工智能(AI)和机器学习(ML)领域,我相信这个领域不存在专门为高中生构建的学习路径。这是我尝试创建一个。
自从我开始进入这个领域以来,我尝试每天花几个小时尽可能多地了解,无论是观看 YouTube 视频、开展个人项目还是只是阅读书籍。我受到了比我有更多经验的老同事的指导,但我知道并不是每个人都能获得这样的指导 - 所以这是我尝试将所有学到的知识转述到一份具体文件中。
我在本指南中整理的所有信息都是针对希望在这个新兴领域取得优异成绩的高中生。它旨在按时间顺序进行,与我遇到的大多数指南/学习路径不同,它不需要理解线性代数、偏导数和其他在高中教学大纲中找不到的复杂数学概念。然而,它确实包括一门涵盖机器学习基本数学基础知识的课程——我认为其水平与高中数学相当。如果你经常走这条路,我相信你可以在三个月左右达到相当熟练的水平。然而,这条学习路径确实提供了可以让你在高中剩余时间里持续学习的内容。
那么,让我们开始吧。
我强烈建议以 Python 作为起点,因为它是一种在 AI/ML 领域中使用时符合大多数条件的语言 - 它不仅非常容易学习,而且为几乎所有基本算法提供了库和框架在该领域众所周知。虽然 R 很有用,但我发现 Python 由于其可读性和易学性而更适合高中生。除了基本编程之外,特别是对于机器学习,最有用的库是 Numpy、Pandas 和 Matplotlib。
对于那些以前从未编码过的人,我建议去学习多伦多大学(目前人工智能/机器学习领域最好的大学之一)提供的课程。这将花费您几周的时间,但它非常值得您花时间 - 您通过本课程获得的大部分知识都可以应用于任何其他编程语言,唯一的区别是语法。该课程是免费的,可以在这里找到。
对于那些拥有 Python 以外的语言编码经验的人,只需浏览本教程即可基本了解 Python 语法 - 这不会花费您超过一天的时间。
机器学习和人工智能建立在微积分、线性代数、概率、统计和优化等数学原理的基础上——许多充满希望的人工智能从业者(比如我自己)发现这令人望而生畏。 Microsoft 的 edX 机器学习基础数学:Python 版这门课程并不是为了让您成为数学家而设计的。相反,它的目的是帮助您学习一些重要的基本概念以及用于表达它们的符号。该课程提供了一种处理数据和应用您在现实问题设置中学到的技术的实践方法。有需要的人可以获得经济援助。
现在,在学习了 Python 的基础知识之后,您需要了解该领域使用的两个基本库 - Numpy 和 Pandas,它们主要用于数据操作、表示和存储。 Matplotlib 是该领域的第三个“核心”库,用于通过图形和图表可视化这些数据 - 但我们稍后会介绍。这两门课程加起来不会超过几天:Numpy 和 Pandas。
有了这个,现在您应该可以开始学习机器学习和人工智能所需的核心编程了。
如果有一门机器学习的通用课程,那一定是吴恩达的课程。对于高中生来说,这似乎有点具有挑战性,因为它涉及偏导数等概念
但我坚信,理解这些并不需要从课程中获得有形的知识。我发现在第 3 到第 5 周重新观看一些讲座特别有益 - 这些主题都是高级的,所以第一次观看时可能会感觉有点快。如果您无法完全掌握核心数学知识,尤其是微积分方面的知识,请不要太担心 - 其中一些肯定需要大学水平的数学知识。更重要的是,您能够遵循吴教授在传播知识时使用的思维过程,因为这使您能够了解机器学习过程的幕后情况。
我鼓励您在课程期间记笔记,因为写下您学到的内容有助于确保您真正理解所传达的信息。完成编程教程和练习并不是必需的,因为这些都是在 Matlab 中完成的 - 根据我的经验,Matlab 可能很难掌握,因为它是一种基于矩阵的语言。但不用担心,我们将在很短的时间内在 Python 中实现完全相同(而且更高级)的算法。
这个免费课程可以在这里找到。
在没有大学水平的数学知识来支持这些算法的具体细节的情况下实施机器学习算法听起来像是一项自相矛盾的任务 - 然而,来自澳大利亚的一个团队正着手做到这一点。
Kirill Eremenko 和 Hadelin de Ponteves 是“超级数据科学”团队的两位研究人员,他们非常擅长寻找在现实生活中应用简单算法的相关方法。此外,他们会进行适当的深度理解算法的功能,但不会涉及高中生无法理解的复杂数学。他们的课程涵盖了 Python 和 R,不过我现在不担心 R - 只需浏览 Python 教程即可。另外,如果您发现它们的速度有点太慢,请以 1.25 倍速播放本课程(我这样做了,发现它更适合我的学习)。
他们的课程在 Udemy 上,并且只提供付费版本,尽管 Udemy 的课程经常提供 90% 或更多的折扣。可以在这里找到,通常价格在 10 美元左右。它涵盖了从基本回归算法到深度神经网络的所有内容,后者是许多现代应用程序(如 ChatGPT 和 AlphaFold)中使用的核心架构。如果您想探索更高级的领域,他们的深度学习课程在机器学习结束时提供 90% 的折扣。
如果您不愿意支付本课程的费用,您可以在此处查看 Google 的免费深度学习课程或在此处查看密歇根大学的免费课程。但在我看来,这些课程远没有 SuperDataScience 团队的课程那么全面。
对于这些课程,记笔记并不是必需的——网上有大量的“算法备忘单”,可以让您快速直观地了解它们的工作原理。这个网站列出了一些。
现在您已经涵盖了广泛的机器学习概念,是时候独立使用这些知识来完成一些项目了。我建议探索 Kaggle 和 UCI 机器学习存储库 - 找到您感兴趣的数据集,并为与它们相关的问题建模一些解决方案。尝试不同的算法并努力优化性能。
确保您使用的数据集本质上简单且干净 - 即它们不需要太多的预处理或特定领域的知识来使用。我脑海中浮现出的一些简单数据集包括虹膜、葡萄酒、威斯康星州乳腺癌、自闭症筛查、国会投票、手写数字 MNIST 和时尚 MNIST 数据集。
如果您遇到障碍,Stack Overflow 是您最好的朋友 - 他们几乎可以回答您的任何问题。如果没有,只需发布一个 - 您应该会在几个小时内收到回复!这一步没有什么更多的了 - 当您发现您已经对从后到前的整个建模过程感到满意时,请随意继续!
现在,您不仅应该对所有基础知识有深入而广泛的理解,而且还应该有能力将其应用于一些现实世界的数据问题。然而,重要的是要明白,这些基础知识并没有涵盖 ML/AI 的整个世界,相反,其中许多基础知识多年来一直是解决此类数据问题的已知方法,但不幸的是直到最近,计算机才强大到足以真正利用它们在合理的运行时间内。该领域的大多数现代工作都集中在以各种新颖的方式改进这些算法,并构建与这些算法无关的系统,这些系统利用底层算法,但以各种方式改进、扩展和增强它们。因此,我建议您在更广泛的机器学习领域找到一个感兴趣的领域,并深入研究它,以便对当今该领域的最新技术更加有经验。你可能没有时间成为我在高中期间概述的所有领域的专家,但尝试并征服一两个领域。
在进入这些领域之前,我建议您真正了解其相关内容 - 在 Youtube 上简单搜索高级解释即可为您提供所需的一切。那么让我们开始吧。
计算机视觉:该领域涉及使用特殊类型的神经网络使计算机看到和理解事物。斯坦福大学在此在线发布他们的课程,并在线提供讲座、课程笔记和作业。完成这个过程,但不要担心数学有时太复杂——该课程的主要目的是加深你的知识,这是不可避免的。您还可以使用 OpenCV,这是一个计算机视觉库,它可以为您完成许多复杂的工作。可以在这里找到很棒的教程。完成这些后,请查看 Kaggle 和 UCI 上更高级的图像数据集,甚至参加一些 Kaggle 竞赛。
自然语言处理:了解计算机如何学习说话也是当今的一个突出话题。斯坦福大学再次提供了很棒的在线课程,可以在这里找到。如果您不理解某些数学概念,请不要担心,只需了解该领域的工作原理即可。对于实施,您可以学习此 Udemy 课程。不过,您也可以观看一些著名机器学习者 Siraj Raval 的视频。如果您已经完成了这些工作,请尝试执行简单、众所周知的项目,例如构建聊天机器人、情绪分析或为歌曲创建歌词 - 简单的 Youtube 搜索应该可以帮助您。 ChatGPT 和 Claude 等更现代的应用程序构建在称为大型语言模型的基于神经网络的系统上,该系统主要基于 Transformer 架构 - Andrew Ng 的这门课程是一个很好的起点。
强化学习:该领域专注于机器如何学习在特定环境中采取行动,其最流行的应用是视频游戏领域。 Siraj Raval 在这方面有一个非常好的播放列表,可以在这里找到。如果您正在寻找专门使用 Tensorflow 等高级包的基于实现的教程,Denny Britz 有一套可靠的教程,可以在这里找到。 David Silver 的 UCL 课程也很棒,尽管初学者可能会觉得有点棘手 - 可以在这里找到。一旦完成这些,就可以开始从网上下载基础项目或游戏,并添加人工智能元素来控制代理的行为,这是非常合乎逻辑的。简单的演练可以再次通过简单的 YouTube 搜索找到。
数据科学与分析:该领域是一个新兴领域,拥有大量令人兴奋的工作机会,并且在大多数现代企业中广泛使用,从收集的大量数据中获取见解,从而为业务决策提供信息。我建议参加 SuperDataScience 的付费课程或加州大学圣地亚哥分校基于 Python 的免费课程,尽管您可以通过简单的 Google 搜索找到数据科学的具体学习路径。您还可以使用以下链接来学习 SQL 和 Matplotlib,它们是用于许多现代数据分析的切线语言。在学生层面学习这一点的优势是就业能力——我有很多高中朋友获得了数据科学实习机会,因为在该学科中获得的见解可以立即被公司货币化。数据驱动的决策实际上是当今企业界唯一的决策形式。
还有玻尔兹曼机(用于推荐系统)、对抗网络(人工智能改进人工智能)和遗传算法(以类似于自然进化的方式改进问题的解决方案)等领域,但在我看来,它们的利基组合适用性和需要更高级的数学水平使得它们不太适合作为起点。如果您对其中一个领域有特别的热情,请随意探索这些领域,尽管它们也没有像其他领域那样有详细的记录,这可能会使掌握它们稍微困难一些。
如果你想长期在这个领域工作,从更全面的角度理解至关重要——我的意思是了解突破性的发现、关于如何应用它的讨论及其对社会的一般影响。一旦您对技术的工作原理有了必要的了解,您就应该开始执行本节中列出的操作 - 我相信从本学习路径的第 4 节开始是一个很好的起点。这类信息可能不会特别有助于实现数据问题的算法,但对于当今世界如此不可或缺的技术来说,它确实有助于形成对其作用、真正潜力和局限性的更强有力的理解。
高中生可以做一些事情来加深他们对该领域的一般理解并让他们知识更丰富:
开始阅读研究论文:我想强调的是,这些论文实际上并不像听起来那么具有挑战性。虽然控制现代技术的数学可能非常先进,但简单地了解行业前线发生的事情从来都不是一件坏事。如果您遇到不懂的地方,请把它写下来——有足够多的选择让您忙碌起来。该网站提供了大量可供入门的优秀论文,但在您完成这些论文后,它会提供一个更长的列表 - 只需阅读第 5 节中您感兴趣或与您的“专业知识”领域相关的论文即可。每篇论文的学习小日记。如果您无法真正理解其中许多研究论文,请尝试阅读我编写的本指南,其中提供了一些最新创新的更易于理解的细分。这个 YouTube 频道还提供了大量论文的介绍性解释,每一篇的解释时间只有两分钟。
追随先驱者:吴恩达 (Andrew Ng)、伊恩·古德费洛 (Ian Goodfellow) 和扬·勒昆 (Yann LeCunn) 等人定期接受采访,提供我们今天所知的人工智能和机器学习“创始人”的观点。这个 YouTube 频道收集了这些演讲中的精华,并将它们汇编成一个中心资源 - 每晚观看一次,我保证您在几周内就会感觉自己像个专家。
掌握该领域的最新动态:对于任何对科技感兴趣的人来说,《连线》是最好的平台之一。它每天都会发布多个与人工智能相关的故事(尽管现在不是每个人都这样吗?),可以在这里找到。这是了解当时趋势的一种快速且引人入胜的方式。或者,订阅 TechCrunch 的 Facebook Messenger 机器人 - 它经常有感兴趣的人工智能相关文章,并每天提示您信息。
理解其中的含义:没有比听 TED 演讲更好的方法了。他们的演讲者在该领域知识渊博,并且在演讲中越来越强调人工智能。可以在此处找到视频集。
理念:人工智能有支持者,也有反对者。然而,其背后的哲学却很有趣。我最喜欢的探索这一领域且适合高中生的书籍包括 Ray Kurzweil 的《How to Create a Mind》和 Max Tegmark 的《Life 3.0》——请尝试一下。他们着眼于人工智能更长期的发展轨迹,这可能与日常工作无关,但有助于理解整个技术的更广泛背景。
贡献:如果您是那种喜欢从他人经验中学习的人,请查看诸如此 Facebook 群组之类的讨论渠道,人们会定期发布与该领域进展相关的富有洞察力的文章和论文。或者,如果想进行更随意的对话,请查看有关 AI 的 Reddit 子版块,如下所示。
深入研究数学:是的,您确实需要大学水平的数学基础知识,但如果您是一名数学优秀的学生,没有什么可以阻止您学习一些在线课程。微软有一个免费课程,我听说过它很好,并且只需要高中水平的数学。这个 Quora 主题还有一些很棒的资源,您应该查看一下。 3Blue1Brown 在社区中也是一个著名的名字,因为他的 Youtube 视频非常适合学习一些更复杂概念背后的数学(主要是线性代数和微积分)。
我听太多人告诉我,学习机器学习和人工智能对于一个高中生来说太困难了,不能写这篇文章——只要有一条良好的学习路径,任何人都可以学习。在此,我祝愿每个人在这条学习道路上一切顺利。
如果您对本指南有任何补充或可能的改进,请随时向此存储库提出 PR。如需反馈、合作或一般疑问,请随时写信给我@[email protected]。