ML-for-High-Schoolers

ML-for-High-Schoolers

面向高中生的机器学习和人工智能学习路径

这个开源项目为高中生设计了一条机器学习和人工智能的学习路径。内容涵盖Python基础、机器学习算法和特定领域深入学习,无需复杂数学知识。通过推荐课程、实践项目和深入学习建议,学生可在短期内掌握相关技能。项目还提供AI领域前沿资讯,帮助学生全面了解这一领域。

机器学习人工智能高中生学习Python学习路径Github开源项目

高中生学习机器学习和人工智能指南

<a href="./README.md"><img alt="English" src="https://img.shields.io/badge/English-lightgrey"></a> <a href="./README-en-cn.md"><img alt="中文" src="https://img.shields.io/badge/中文-lightgrey"></a>

作为一名高中生,我已经学习了一年的机器学习和人工智能,我认为这个领域缺少一条针对高中生的学习路径。这是我尝试创建一条这样的路径。

在过去的几个月里,我每天都会花几个小时来理解这个领域,无论是观看YouTube视频还是进行项目实践。我得到了一些有更多经验的前辈的指导,现在我觉得我有足够的经验来分享我的见解。

我在本指南中汇编的所有信息都是为希望在这个新兴领域脱颖而出的高中生准备的。建议按时间顺序学习,与我遇到的大多数指南/学习路径不同,不需要理解线性代数、偏导数和其他复杂的数学概念,这些概念在高中课程中是找不到的。不过,本指南确实包含了一门课程,涵盖了机器学习所需的基础数学知识,你可以在高中高年级的数学课本中找到这些内容。

如果你能定期学习这个路径,我相信你能在大约三个月内达到相当高的水平。然而,这个学习路径也提供了足够的内容,可以让你在整个高中阶段持续学习。

那么,让我们开始吧。

1. 学习Python,你将用它来编写算法

我强烈建议使用Python - 它不仅非常容易学习,而且支持几乎所有用于机器学习的优秀库。虽然R语言也很有用,但我发现Python总体上更适合高中生。除了基本编程之外,对于机器学习来说,最有用的库是Numpy、Pandas和Matplotlib。

  • 对于那些从未编程过的人,我建议学习多伦多大学(目前最好的ML/AI大学之一)提供的课程。这需要几周时间,但绝对值得 - 你通过这门课程获得的大部分知识都可以应用到任何其他编程语言,唯一的区别就是语法。这门课程是免费的,可以在这里找到。

  • 对于那些有Python以外编程经验的人,只需浏览这个教程了解语法即可 - 这不会花你超过一天的时间。

  • 机器学习和人工智能建立在微积分、线性代数、概率、统计和优化等数学原理之上;许多潜在的AI从业者认为这很困难。Microsoft在edX上的课程机器学习必备数学:Python版并不是为了让你成为一名数学家。相反,它旨在帮助你学习一些基本的基础概念和表达这些概念的符号。该课程提供了一种动手实践的方法来处理数据并应用你所学到的技术,对于需要的人还提供经济援助。

  • 现在,在你学习了Python的基础知识之后,你需要了解我提到的前两个库(Matplotlib可以稍后学习)。Numpy数组和Pandas用于移动和修改你使用的数据,而Matplotlib用于通过图表和图表可视化这些数据。以下课程加起来应该不会超过几天时间:

太好了!现在你应该掌握了学习机器学习和人工智能所需的核心编程知识。

2. 进入机器学习的基础

如果说有一门普遍适用的机器学习课程,那一定是Andrew Ng的课程。这门课程简直棒极了,尽管对高中生来说,有时可能会觉得稍微有点挑战性,因为它涉及了诸如偏导数之类的概念(尽管理解课程并不需要这些知识)。我发现重新观看第3到第5周的一些讲座很有帮助 - 第一次可能会觉得有点快。如果你无法理解一些推导,不要太担心 - 这些需要大学高级数学知识。能够跟上思路并理解操作应该就足够了。

我鼓励每个人都学习这门课程并做笔记,但不需要做与编程相关的教程和练习,因为这些是用Matlab完成的,根据我的经验,对高中生来说通常太难掌握。但不用担心,我们很快就会用Python完成相同的(甚至更高级的)算法。

这门免费课程可以在这里找到。

3. 学习各种机器学习算法并了解如何在真实场景中实现它们

现在,在没有大学级数学知识的情况下理解机器学习算法 - 理论上这应该很难,但是来自澳大利亚的一个团队解决了这个问题。

来自SuperDataScience团队的Kirill Eremenko和Hadelin de Ponteves在寻找相关方法将简单算法应用于现实生活方面绝对出色。此外,他们深入到适当的程度来理解算法的功能,但不涉及高中生无法理解的复杂数学。

他们的课程涵盖Python和R,但你不用担心R - 只需学习Python教程即可。另外,如果你觉得他们讲得有点慢,可以以1.25倍速播放这门课程(我就是这么做的,感觉好多了)。

他们的课程在Udemy上,是付费的,但Udemy经常对他们的课程提供90%或更多的折扣。可以在这里找到,通常价格在10美元左右。

它涵盖了从基本回归算法到深度和卷积神经网络的所有内容。如果你想探索更高级的领域,他们在机器学习课程结束时提供了90%折扣的深度学习课程。然而,第二门课程中的概念可能有点高级,而且由于它们太新,可能缺乏适当的文档。

如果你不愿意为这门课程付费,可以查看Google的免费深度学习课程这里或密歇根大学的免费课程这里。但是,这些课程远不如SuperDataScience团队的课程全面。

对于这些课程,做笔记不是必需的 - 网上有很多"算法速查表",可以快速了解它们的工作原理。这个网站列出了一些。

4. 探索、探索再探索

现在,你已经学习了广泛的机器学习概念,掌握了大量技能。是时候独立运用这些知识开展基础项目了。我建议你去KaggleUCI机器学习资料库,找一个你感兴趣的数据集,简单地为其建立模型。尝试不同的算法,努力优化性能。

确保你使用的数据集简单清晰,不需要太多预处理或修改。一些简单的数据集(我能想到的)包括鸢尾花、葡萄酒、威斯康星乳腺癌、自闭症筛查、国会投票、手写数字MNIST和时尚MNIST等。

如果遇到障碍,Stack Overflow是你最好的朋友——他们几乎能回答你的任何问题。如果没有现成答案,就自己发帖提问——通常几小时内就能得到回复!

这里我不需要多说什么——当你发现自己已经熟悉整个建模过程时,就可以继续前进了!

5. 找到特别感兴趣的领域,深入研究

现在你已经对所有基础知识有了很好的全面了解。然而,仅凭这些知识能做的事情是有限的。因此,我建议你在机器学习的广阔领域中找到一个感兴趣的方向,并深入研究。你可能没有时间在高中阶段成为所有这些领域的专家,但试着攻克一两个领域。

我会列出一些可能的领域,但在开始之前,要了解你将要涉足的是什么。简单的YouTube搜索就能给你提供所需的高层次解释。

  • 计算机视觉:目前可能是机器学习/人工智能中最热门的领域——使用特殊类型的神经网络让计算机看懂事物。斯坦福大学在网上发布了他们的课程链接,提供在线讲座、课程笔记和作业。学习这门课程,但如果数学太复杂,不用担心——这门课程只是为了加深你的知识。另外,你也可以看看OpenCV,这是一个处理许多复杂任务的计算机视觉库。这里有一个很棒的教程。完成这些后,可以在Kaggle和UCI上查看更高级的图像数据集,甚至参加Kaggle比赛。

  • 自然语言处理:理解计算机如何学习说话也是当今的一个重要话题。斯坦福大学再次提供了一个很棒的在线课程,可以在这里找到。如果你不理解某些数学概念,不用担心,只需了解这个领域的工作原理即可。对于实际应用,你可以学习这个Udemy课程。或者,你也可以观看知名机器学习专家Siraj Raval的一些视频。完成这些后,尝试进行一些简单的、知名的项目,如构建聊天机器人、情感分析或创作歌词——简单的YouTube搜索应该能帮到你。

  • 强化学习:这个领域专注于机器如何学习以特定方式行动,其最流行的应用是在视频游戏领域。Siraj Raval再次提供了一个很好的播放列表,可以在这里找到。如果你在寻找特别使用Tensorflow等高级包的实施教程,Denny Britz有一套很好的教程,可以在这里找到。David Silver的UCL课程也很棒,尽管初学者可能会觉得有点棘手——可以在这里找到。完成这些后,很自然的下一步就是从网上下载基础项目或游戏,并添加人工智能元素来修改代理的行为方式。简单的教程同样可以通过YouTube搜索找到。

  • 数据科学:这是一个新兴领域,有大量令人兴奋的工作机会。我建议你学习SuperDataScience的付费课程或加州大学圣地亚哥分校基于Python的免费课程,不过你应该能通过简单的Google搜索找到特定的数据科学学习路径。你还可以使用以下链接学习SQLMatplotlib。在学生阶段学习这个领域的优势在于就业能力——我有一些高中朋友获得了数据科学实习机会,因为他们的工作产生的数据可以立即被公司变现。公司很容易找到使用数据科学家的方法。

  • 还有一些领域如玻尔兹曼机(用于推荐系统)、对抗网络(AI改进AI)和遗传算法(以类似自然进化的方式改进问题解决方案),但在我看来,这些对大多数高中生来说可能有些困难。如果你对其中某一个特别感兴趣,随时可以探索,不过这些领域的资料没有其他领域那么丰富,主要是因为它们目前的商业化程度不如其他领域。

附加内容(极其重要)。真正理解人工智能领域

如果你想长期在这个领域工作,了解它的本质、突破性发现及其对社会的影响至关重要。一旦你对技术的工作原理有了必要的理解,就应该开始做这一部分列出的事情——我认为这应该是在本学习路径的第4部分之后(当你开始深入研究某个感兴趣的领域时)。这类信息可能不会特别帮助你实现算法,但对于大学或公司来说,当他们的潜在人才对该领域本身而不仅仅是代码如此了解时,这是一个令人印象深刻的标志。

这里列出了一些高中生应该做的事情,以加深他们对该领域的整体理解,使他们更加博学:

  1. 开始阅读研究论文:它们实际上并不像听起来那么具有挑战性。其中很大一部分内容用高中数学水平就能几乎完全理解。如果遇到不懂的,就放下——还有很多其他选择。这个链接提供了一系列优秀的论文,读完这些后,这里提供了最新的列表——只需阅读你感兴趣的或与第5部分中你的"专长"领域相关的论文。保持一个小日记记录每篇论文的学习心得会很有帮助。如果你真的无法理解这些研究论文中的很多内容,可以尝试阅读我写的另一个关于研究论文的GitHub指南,其中提供了一些近期发现的分析。

  2. 聆听先驱者的声音:像Andrew Ng、Ian Goodfellow和Yann LeCunn这样的人经常接受采访,他们从工程师的角度分享对人工智能领域的看法。这个YouTube频道收集了这些讲座中的精华,并将它们汇集成一个中心资源。每晚观看一个视频,我保证几周内你就会感觉自己像个专家。

  3. 紧跟领域动态:Wired是科技爱好者最佳平台之一。它每天发布多篇人工智能相关的文章,可以在这里找到。这是了解时下趋势的绝佳方式。另外,也可以订阅TechCrunch的Facebook Messenger机器人,它经常有有趣的人工智能相关文章,并每天向你推送信息。

  4. 理解影响:没有比听TED演讲更好的方式了。他们的演讲者在该领域知识渊博,而且他们的演讲越来越强调人工智能。可以在这里找到大量视频。

  5. 哲学思考:人工智能有支持者也有反对者。然而,其背后的哲学思考很有趣。我最喜欢的、适合高中生阅读的探讨这一领域的书籍包括Ray Kurzweil的《如何创造思维》和Max Tegmark的《生命3.0》,请尝试阅读这些书。

  6. 参与贡献:如果你喜欢从他人经验中学习,可以查看Artificial Intelligence & Deep Learning Facebook小组。如果你更喜欢交流讨论,可以查看Reddit上的AI主题

  7. 深入数学:是的,你确实需要大学水平的数学技能,但如果你是一个数学特别优秀的学生,没有什么能阻止你学习一些在线课程。我听说微软有一个不错的免费课程,只需要高中水平的数学基础。这个Quora帖子也有一些很棒的资源,你应该去看看。3Blue1Brown在社区中也很有名,他的YouTube视频非常适合学习一些复杂概念背后的数学知识(主要是线性代数和微积分)。

结论

我祝愿每个人在这条学习之路上都能取得成功。我听过太多人说机器学习和人工智能对高中生来说太复杂了,所以我不得不写下这篇文章——只要有一条规划良好的学习路径,任何人都能学会。只是因为这个领域太新,通常被认为是研究生阶段的学习领域,所以缺乏针对高中生的学习路径。

如果有人有补充、建议、疑问或反馈,欢迎给我发邮件:kj.jaisingh@gmail.com

指南贡献者

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多