0:迈出机器学习的第一步
💙Welcome to Machine Learning!💙
Section titled “💙Welcome to Machine Learning!💙”~(∠・ω< )⌒☆
欢迎来到机器学习的世界!
机器学习(Machine Learning,ML)是人工智能的一个重要分支,从某种程度上来说,它也是人工智能的基础。它通过让计算机从大量数据中自动学习规律,从而完成分类、预测、识别和决策等任务。机器学习的核心思想是利用数据训练模型(因此对于训练来说,好的数据称之为黄金也不为过),使模型能够根据已有经验对未知数据进行推断,并随着数据的增加不断优化性能,机器学习是这个时代的大势所趋,也是无数有志向的人士在共同讨论与深研的话题。
那么,为什么不尝试在大学四年的开头直接尝试走进前沿与热点呢?
别担心!既然你已经来到了这个地方,坐在了现在的座位上开始沉下心来阅读这些要求,想必你已经具备了掌握接下来的知识的决心。
- 微积分:重点掌握求导、偏导数、链式求导、梯度的概念与梯度的计算。
- 线性代数:核心是矩阵的运算和线性变换。矩阵的运算里有必要拓展了解以下矩阵求导。
- 概率论:高中基础足够理解大多数的概念,大部分是用在指标计算等等,只需要对新的术语进行搜索熟悉就好啦。
在去了解这些知识的时候,学校大概也在同步进行教学吧,自己主动去了解可以说是和学校课程相得益彰的事情~
💡Tips:不用深钻太多,足够用来解决问题即可!
编程语言基础
Section titled “编程语言基础”你需要学会掌握的编程语言:
- python基础:可以看网课或者自己用文档学习(比如:Python3 教程 | 菜鸟教程)不需要很多内容,只用理解大概的语法以及做到能够读懂,能够解决简单问题即可。由于机器学习大部分的代码是依赖pytorch库中的函数,很多python操作在你后面的题目中并不会用上。
- 数据处理:学会使用NumPy、Pandas等库进行数据预处理。
推荐pycharm或者vscode,可以使用其中的jupyter插件。
请了解深度学习基本概念(非常推荐以动手学深度学习为主(有免费的教材与讲解视频,还附赠源代码和课程讨论区),吴恩达深度学习作为辅助理解),Pytorch文档,Pytorch框架教学,当然,也可以自己去阅读文档,浏览博客等等。
作为一名软件工程专业的学生,我相信你的电脑一定配置还不错,深度学习是需要算力的(可以想想是在算什么?),CPU虽然能胜任大部分计算任务,但是对于深度学习来说并不是最适合的,而GPU能加速计算过程,我们后面的任务需要用到GPU来加速你的计算,否则一个任务你可能会等待很久,如果你的电脑有独立显卡,那最好了。如果没有,那也不需要着急,因为现在有很多平台会提供免费的算力资源。 你可以使用以下平台获取算力:
- kaggle(实名注册后每周30小时的GPU加速时间,可用T4*2,P100)
- 阿里云(新用户可以选择免费使用,连续三月,每月250算力)
- 九天·毕昇(注册后 随机参加一个比赛可以获得1000算力豆折合下来是200 V100(16G)时)
- autoDL (有学生优惠95折,是目前使用最广泛的算力租借平台)
- 其他算力租借平台
⚠️环境配置(你开始训练的场地)
Section titled “⚠️环境配置(你开始训练的场地)”如果你希望在自己的电脑或服务器上运行模型训练任务,那么配置机器学习环境是必须的。当然,也可以使用 Kaggle Notebooks、Google Colab 等在线平台,它们已经预装了常用的深度学习框架,可以帮助你快速开始实验,暂时减少环境配置带来的困扰。不过掌握本地环境的配置方法仍然是一项重要的基础技能。
怎么样进行环境配置?
-
李沐的动手学深度学习视频中有环境的配置过程可以参考
-
你已经是一名软件工程的学生了,网络上有丰富的教程你可以自行选择,所以STFW吧
环境要求有以下这些(其实跟着李沐应该没什么问题)
conda/miniconda,jupyter,torch(如果有GPU请注意下载GPU版本),torchvision,d2l/d2l-zh,以及后续做题可能需要的库。
下载库的时候,速度慢的话可以换源(换源是什么意思?)
💡Tips :conda是一个开源的软件包管理系统和环境管理系统,它主要用于安装多个版本的软件包及其依赖关系,并能轻松地在它们之间切换。建议你使用anaconda或者miniconda创建你自己的环境进行环境管理。
一些简单入门的代码练习!😚
1、Python基础(列表、元组、字典)
Section titled “1、Python基础(列表、元组、字典)”在机器学习中,一个数据集通常由样本名称、特征数量和标签组成。
假设我们有一个数据集,其中每个数字代表一张图片的编号
请根据下面的信息完成代码,并展示输出内容。
image_ids = [101, 102, 103, 104, 105]
dataset = { "name": "Microsoft vs Code", # 微软大战代码! "labels": ("microsoft", "code")}
# (1)输出数据集名称print(_____)
# (2)取出前三张图片编号first_three = _____
# (3)输出最后一张图片编号last_image = _____
# (4)新增键值对:"num_images": 5000_____2、Python文件操作
Section titled “2、Python文件操作”机器学习训练通常需要读取数据文件。
请你在代码所属目录下创建一个data.txt文件,内容如下:
我当年是入学前的暑假学了python,说实话这是一个新奇的语言,它有类似于说话般的逻辑,很容易理解,而且有着充分兼容的第三方库。但是python确实有个致命的弱点:它的编译速度很慢,远不及C++、Rust等等语言。大多数使用的库的底层其实是用C++或者C语言造出来的,而我们为什么用python?因为这是一个天生适合组织和调度的编程语言,能缩减大量的编程时间。所以你今天想学一点python吗?请你补全代码,统计文件中一共有多少个python。
3、Numpy基础
Section titled “3、Numpy基础”-
创建一个10*10的array A,并用1-100的随机值填充。
-
创建一个10*10的单位矩阵B,并将A与B作矩阵乘法,得到矩阵C。打印出矩阵C的值。
-
条件筛选操作:在矩阵A中找出大于80的元素并替换为0。
-
分块计算平均值:将10x10矩阵拆分成4个5x5矩阵,求每个子矩阵的均值。
4、PyTorch基础
Section titled “4、PyTorch基础”- 张量创建和属性
import torch# 创建张量 A:形状 (3, 4),元素为 [0, 11] 的整数A = torch.arange(12).reshape(3, 4)# 创建张量 B:形状 (3, 4),服从标准正态分布B = _____# 判断以下操作是否正确:# (1) A.shape 返回 torch.Size([3, 4])# (2) B.dtype 默认返回 torch.float32# (3) A.device 默认为 GPU- 张量运算与广播
a = torch.tensor([[1], [2], [3]]) # shape (3, 1)b = torch.tensor([4, 5, 6]) # shape (3,)# 计算 c = a + b,并写出 c 的形状c = _____# 计算 d = a * b,并解释广播规则d = _____- 张量拼接
import torcha = torch.tensor([[1, 2], [3, 4]])b = torch.tensor([[5, 6]])# 将 a 和 b 按行拼接(什么样的可以按列拼接?如何按列拼接?或者还有其他维度的拼接)c = _____print(c)# 补全代码并且写出c的形状关于AI使用
Section titled “关于AI使用”现在是个AI发达的时代,如果说禁止使用AI似乎是不太可能的。AI会极大程度上提升我们的效率,但是也同样会让我们学到的东西缩水。我们不反对你使用AI,但是必须遵循几点:
1、所有的代码必须自己理解,并且明白为什么要这么写;
2、我们希望能看到你留下学习的痕迹,包括但不限于笔记、代码注释等等;
3、希望你能聪明地使用AI,毕竟学习这条路,学了多少只有自己心里才清楚。
那么加油吧!
-
代码文件
:将代码部分的.ipynb文件作为邮件附件,命名格式:ml-0-姓名-学号.ipynb
-
文档报告
:将写有这道题目文本解答的.md文件作为邮件附件,命名格式:ml-0-姓名-学号.md
-
邮箱: gimmerml401@163.com
-
主题: 0-姓名-学号
出题人:
Parzival
QQ:450621609
