第一课
Daniel 深度碎片 在 forums.fast.ai 很高兴为每节课创建了问答形式的摘要。你可以使用这些摘要来回顾每节课学到的内容,或者在观看课程之前预览一下。这是第一课的摘要
- 欢迎来到 2022 年第一部分课程
- 在 2015 年之前,计算机是否足够智能来识别鸟类照片?
- 如何使用简单代码从 DuckDuckGo 下载并显示一张鸟类照片?
- 照片/图像实际上是由什么组成的,至少对计算机而言?
- 如何在一个名为“dest”的大文件夹下分别创建名为“bird”和“forest”的两个文件夹?如何为每个类别下载 200 张图像?如何调整图像大小并将它们保存在各自的文件夹中?
- 如何找到损坏的图像,然后从其文件夹中删除或取消链接?
- 如何创建 DataBlock 来准备构建模型所需的所有数据?如何批量显示图像?
- 如何在本地计算机上构建模型并进行训练/微调?
- 如何使用模型预测或分类鸟类照片?
- 如何立即轻松地开始运行和玩弄代码及模型?
- 为什么在学习讲座之前应该先阅读讲座问卷?
- 如何在讲座视频中搜索和定位特定时刻?
- 你能仅凭说出一些艺术词语就创作出一幅原创杰作画作吗?
- 你相信今天的模型不仅能给出数学题的正确答案,还能解释你的数学问题吗?你相信今天的模型能帮你理解笑话吗?
- Jeremy 和 fastai 社区在持续帮助初学者方面付出了巨大努力。
- 你想知道如何最大限度地利用 fastai 吗?
- 你知道人们在有背景的情况下学习得更自然(更好),而不是通过理论课程学习吗?你想让这门课程通过背景和实践知识让你成为一个称职的深度学习实践者吗?如果你想从头开始学习理论,请去看 fastai 2019 年的第二部分。
- 你知道用不同的方式学习同一件事能更好地理解吗?
- 为什么你必须非常认真地对待这门课程?(就个人而言,我认为能接受 Jeremy 的教导并成为 fastai 大家庭的一员真是莫大的荣幸。四年前我没有像现在这样足够地珍视它。)
- 在深度学习出现之前,为什么我们需要来自不同学科的众多科学家合作多年才能设计出一个成功的模型?
- 为什么深度学习可以在 2 分钟内创建一个模型来区分鸟类和森林照片,这在 2015 年之前是不可能的?你想看看深度学习发现的特征比跨学科科学家团队发现的特征好多少/先进多少/复杂多少吗?
- 所有事物都是数据、声音、时间(序列)、运动吗?图像只是表达数据的一种方式吗?为什么不将数据(声音、时间、运动)以图像的形式存储或表达呢?基于图像的算法能在这些图像上学习吗,无论它们在人类看来多么奇怪?
- 我可以在没有数学基础(我是指高中数学水平)的情况下学习深度学习吗?我可以使用手工制作的数据(少于 50 个样本)来训练深度学习模型吗?我能免费(字面上)训练最先进的模型吗?
- 在深度学习软件领域,我应该投入精力学习 Pytorch 还是 Tensorflow?
- 为什么你应该使用 fastai 而不是纯粹的 PyTorch?难道你不想编写更少的代码、犯更少的错误、取得更好的结果吗?难道你不想使用一个由你未来的同事和老板们使用的强大而简单的工具吗?
- 为什么 Jupyter Notebook 是深度学习最受欢迎且经过充分测试的编码工具?你想让 Jeremy 手把手地教你如何使用 Jupyter Notebook 吗?
- 如何确保你的 Notebook 连接在云端?如何确保你使用的是最新的 fastai?#最佳实践
- fastai 不就像是融入了最佳实践的 Python 吗?如何导入库来下载图像?如何创建和显示缩略图?在构建模型的每一步都要查看你的数据 #最佳实践 如何下载和调整图像大小?为什么我们要调整图像大小?#最佳实践
- 为什么一个现实世界的深度学习实践者会把大部分宝贵/高效的时间花在数据准备上,而不是模型调优?极少量模型能否解决世界上绝大多数实际问题?fastai 是否已经为我们选择并准备好了最好的模型?
- Jeremy 是否将其他编程语言的最佳实践加入到 fastai 中?Jeremy 热爱函数式编程
- fastai 设计团队如何决定 DataBlock 应该做什么任务?任务 1:DataBlock 需要为训练准备哪些数据块?任务 2:DataBlock 如何获取这些数据,或者通过什么函数/工具?任务 3:我们是否应该始终要求 DataBlock 保留一部分数据用于验证?任务 4:DataBlock 应该使用哪个函数或方法来获取 y 的标签?任务 5:DataBlock 应该对每个数据样本应用哪种变换?任务 6:dataloader 是否在 GPU 的帮助下,同时处理成千上万个批次的数据,从而高效地完成上述任务?
- 最有效率地找出如何正确使用 DataBlock 等工具的方法是什么?如何彻底学习 DataBlock?
- 你会给学习器(例如 vision_learner)提供什么?
- fastai 是第一个也是唯一实现 TIMM 的框架吗?你可以在你的项目中使用 TIMM 中的任何模型吗?在哪里可以了解更多 TIMM 的信息?
- 什么是预训练模型 Resnet18?这个模型从中学到了什么?这个模型的学习成果是什么?或者 Kaggle 到底在下载什么?
- 微调到底对预训练模型做了什么?与预训练数据集相比,微调希望模型从你的数据集中学到什么?
- 如何使用微调后的模型进行预测?
- 我们能否微调预训练的计算机视觉模型,来告诉我们照片上每个像素属于哪个物体?
- 既然有了 DataBlock,为什么我们还需要像 SegmentationDataLoaders 这样专门的 DataLoaders?
- 表格分析能做什么?我们能否使用一堆列来预测表格中的另一列?如何使用 fastai 轻松下载各种训练数据集?untar_data TabularDataLoaders 的参数是什么?fastai 从 Julia(另一种流行语言)中学到的 show_batch 的最佳实践是什么?为什么对表格数据集使用 fit_one_cycle 而不是 fine_tune?
- 我们可以使用协同过滤为用户提供电影推荐吗?推荐系统是如何工作的?协同过滤模型能否从相似音乐用户的数据中学习,并根据新用户与现有用户的相似度来推荐/预测音乐?
- 如何下载用于协同过滤模型的数据集?如何使用 CollabDataLoaders?如何使用 collab_learner 构建协同过滤模型?为 collab_learner 设置 y_range 的最佳实践是什么?#最佳实践 如果理论上没有理由使用预训练的协同过滤模型,并且 fine_tune 与 fit 或 fit_one_cycle 一样有效,对此有什么好的解释吗?#问题 如何使用 show_results 显示此推荐模型的结果?
- 目前深度学习能做什么?深度学习可能不擅长哪些任务?
- 自 1959 年以来,深度学习的基本思想变化大吗?
- 在深度学习之前,我们在程序/模型中写了什么?如何在 Jupyter Notebook 中绘制图表?
- 什么是模型?什么是权重?数据、权重和模型如何协同工作产生结果?为什么初始结果一点都不好?我们能否设计一个函数来告诉模型它做得有多好?损失函数 然后我们能否通过了解模型每次从数据中学习得好坏程度来找到更新/改进权重的方法?如果我们能多次迭代这个循环,我们能否构建一个强大的模型?
- 作业:运行 Notebook,特别是关于鸟类的 Notebook。基于鸟类 Notebook 创建一些你感兴趣的东西。阅读本书第一章。从所有优秀的学生项目中获得启发。