资讯详情

资讯详情

机器学习作业复习指南:知识地图与查漏补缺全流程

简介这份资源面向正在学习吴恩达机器学习课程的自学者与在校学生围绕课后编程作业提供了一套较为完整的配套材料帮助读者在缺少官方答案的情况下对照练习、核对思路并整理复习。压缩包共收录1028个文件约202.33MB以m脚本、txt说明、mat数据、ipynb笔记本、pdf讲义与笔记为主另有少量py脚本和png图示覆盖线性回归、逻辑回归、K-means图像压缩、人脸数据PCA等经典练习场景。作业部分同时提供无答案版与有答案版其中有答案版又细分三版并附作业题目合并版PDF可直接打印使用课堂讲义与中文个人笔记同样支持打印便于边看边做、随时批注。目前已有2537人学习下载适合希望系统刷完课程作业、对照参考实现查漏补缺的学习者。1. 机器学习作业复习从知识地图到查漏补缺的完整路径机器学习这门课真正拉开差距的往往不是听课而是作业。课程视频看一遍觉得都懂一上手推梯度、调正则、写向量化立刻原形毕露。所以复习时最有效的方式是把「课程知识地图」和「作业考点地图」叠在一起看哪些章节对应哪次作业、每次作业在考什么、哪些推导是高频翻车点。这份资源把作业拆成无答案版和有答案版两套再配一份个人笔记正好构成「先自测、再对答案、最后回笔记补漏」的闭环。它适合正在系统学这门课的人也适合考前想快速过一遍核心推导和实现细节的人。下面按模块把这张地图铺开重点放在每次作业真正卡人的地方。2. 监督学习主线线性回归与逻辑回归的推导重点监督学习是整门课的地基前两次作业几乎把这条线的核心考点全压上了。复习时不要按视频顺序平铺而要按「模型假设 → 损失函数 → 梯度推导 → 正则化 → 评估」这条链去串每一环都问自己公式能不能手推、代码能不能向量化。2.1 线性回归从单变量到多变量的梯度下降单变量线性回归的假设是 h(x)θ₀θ₁x代价函数是均方误差。作业里真正考的不是背公式而是三件事代价函数 J(θ) 的形状理解、梯度下降的同步更新、以及特征缩放对收敛的影响。多变量版本把 x 扩成向量更新式写成矩阵形式后向量化实现是重点。很多人手写循环能跑通一改成矩阵运算就维度对不上本质是对 X 的形状m×n和 θ 的形状n×1没吃透。# 向量化梯度下降核心X 为 m×ny 为 m×1theta 为 n×1 def gradient_descent(X, y, theta, alpha, iterations): m len(y) for _ in range(iterations): error X.dot(theta) - y # 预测残差形状 m×1 gradient (1.0 / m) * X.T.dot(error) # 形状 n×1与 theta 对齐 theta theta - alpha * gradient return theta这段代码的关键在X.T.dot(error)X 转置后是 n×m乘 m×1 的残差得到 n×1 的梯度正好和 θ 同形。维度对不上时先打印X.shape、theta.shape、error.shape三个值九成问题当场现形。学习率 α 的选取也是考点太大会震荡甚至发散太小收敛慢作业里通常要求观察 J(θ) 随迭代次数的下降曲线来判断。2.2 逻辑回归sigmoid、交叉熵与决策边界逻辑回归虽然名字带回归本质是分类。假设函数套 sigmoid 把输出压到 (0,1)损失函数用交叉熵而不是均方误差——这是第一个易错点用均方误差会导致非凸、梯度下降容易卡住。梯度推导出来形式上和线性回归一模一样(1/m) * X.T.dot(h - y)这个「巧合」值得单独记一笔因为它说明广义线性模型的统一性。正则化是第二个重点。作业里会要求实现带正则的逻辑回归注意正则项不惩罚偏置项 θ₀很多实现把 θ₀ 也加进去导致结果偏差。向量化写法里通常把 θ₀ 单独拎出来或用theta[1:]切片处理。决策边界不是模型自带的而是 h(x)0.5 对应的那条线画图时要把 θ 代回去解方程这一步在作业的可视化题里反复出现。2.3 正则化的取舍欠拟合与过拟合的判断正则化参数 λ 的调节是这部分的综合考点。λ 太大参数被压得趋近于零模型欠拟合λ 太小等于没正则过拟合。作业里一般让你画不同 λ 下的决策边界或学习曲线来观察。复习时记住一个判断顺序先看训练误差和验证误差的差距差距大是过拟合两个都大是欠拟合再决定调 λ 还是加特征。这个顺序比死记公式有用得多。3. 神经网络与模型评估反向传播和诊断的复习要点从线性模型跨到神经网络最大的门槛是反向传播的链式推导而模型评估那一块考的是「模型不行时你到底该干什么」的判断力。这两块在作业里往往连着出现复习时要把它们当成一个整体先能训出网络再能诊断网络。3.1 反向传播链式法则的手推与向量化反向传播的作业通常给一个已训练好的权重让你实现前向传播和代价函数再实现反向传播求梯度。前向传播是逐层a sigmoid(z)注意每层要补一列偏置单元。反向传播的核心是误差项 δ 的逐层回传输出层 δ 等于预测减真实隐藏层 δ 等于上一层 δ 乘权重再乘 sigmoid 的导数。# 单隐藏层反向传播片段delta3 为输出层误差delta2 为隐藏层误差 delta3 a3 - y # 输出层误差形状与输出一致 delta2 delta3.dot(Theta2[:, 1:].T) * sigmoid_gradient(z2) # 注意 Theta2 去掉偏置列再转置sigmoid_gradient 是 g(z)a*(1-a)这里最容易翻车的是Theta2[:, 1:]这个切片偏置单元没有输入连接回传时必须去掉对应列否则维度错位。另一个高频错误是忘记 sigmoid 导数用a*(1-a)而不是对 z 直接求。作业里通常有梯度校验numerical gradient check来兜底复习时一定要会用用微小扰动近似导数和反向传播结果比对误差在 1e-9 量级才算对。这个校验是血泪经验换来的后悔药手推完不校验跑出来 loss 不降都找不到原因。3.2 模型诊断偏差、方差与学习曲线模型评估这块的作业会给你一个训练好的模型和一组数据让你判断是偏差问题还是方差问题再决定加数据、加特征还是调正则。判断依据是学习曲线横轴训练样本数纵轴误差训练误差和验证误差都高且贴近是高偏差训练误差低、验证误差高且差距大是高方差。这里有个反直觉的点高偏差时加更多训练数据没用得改模型结构或加特征高方差时加数据才有效。作业里常设陷阱给你一个明显高偏差的模型却问「加数据有没有帮助」答「有」就错了。复习时把这张判断表默写一遍比刷十道题都稳。现象训练误差验证误差诊断对策两者都高且接近高高高偏差加特征、加多项式、减小 λ训练低验证高低高高方差加数据、减小特征、增大 λ3.3 评估指标的选用准确率之外的坑作业里偶尔会出现偏斜类数据集比如正负样本比例悬殊。这时候准确率高不代表模型好一个全预测负类的模型也能有 95% 准确率。考点是精确率、召回率、F1 的定义和取舍精确率高说明预测为正的里真阳性多召回率高说明真阳性被找出来的多两者此消彼长F1 是调和平均。复习时把混淆矩阵四个格子画出来指标定义自然就推出来了不用死背。4. 无监督学习与降维K-means 和 PCA 的实现细节无监督这块作业量不大但实现细节的坑一点不少。K-means 考的是迭代流程和初始化敏感性PCA 考的是协方差矩阵、特征值分解和维度选择。两者都涉及「距离」和「方差」的直觉复习时对照着看更清楚。4.1 K-means分配与更新的循环K-means 两步循环把每个样本分配给最近的中心再把中心更新为簇内均值。作业里会让你实现这两步并观察收敛。易错点有三个距离用欧氏距离平方别开根号省算力且不影响分配结果空簇的处理某个中心没分到样本时要么重新随机初始化要么删掉初始化敏感不同初始中心结果差别很大作业里通常要求多次随机初始化取代价最小的那次。# 分配步骤X 为 m×ncentroids 为 K×n def find_closest_centroids(X, centroids): K centroids.shape[0] idx np.zeros(X.shape[0], dtypeint) for i in range(X.shape[0]): dist np.sum((X[i] - centroids) ** 2, axis1) # 到各中心的平方距离 idx[i] np.argmin(dist) return idxaxis1表示沿特征维度求和得到每个样本到 K 个中心的距离向量再取 argmin。维度搞反是常见错误axis0会把样本维度求和结果完全不对。4.2 PCA协方差、特征向量与降维维度PCA 的流程是数据去均值、算协方差矩阵、特征值分解、取前 k 个特征向量投影。作业里重点是两步协方差矩阵的计算注意是(1/m) * X.T.dot(X)X 已去均值以及用累计方差贡献率选 k。选 k 时看前 k 个特征值之和占总特征值的比例通常要求 99% 或 95%这个阈值是考点。易错点在于去均值忘了去均值第一主成分会指向均值方向而不是方差最大方向。另一个是投影公式X U[:, :k]U 的列是特征向量取前 k 列别取错行。5. 易错点清单作业里最容易翻车的五个地方复习到这儿知识点铺得差不多了但真正让人丢分的往往不是不会而是「以为会了」。下面五条是梳理下来最容易漏或最容易错的每条按「为什么漏、怎么补」说清楚。易漏点一向量化时维度不校验。为什么漏手写循环跑通了就以为懂了一改矩阵运算就错且错误信息不直观。怎么补每个函数入口先打印或断言关键变量的 shape养成assert X.shape[1] theta.shape[0]的习惯维度对了再谈逻辑。易漏点二正则化惩罚了偏置项。为什么漏公式里 θ 是一个整体容易顺手把 θ₀ 也加进正则项。怎么补实现时把 θ₀ 单独处理或用theta[1:]切片写完用小 λ 和大 λ 各跑一次看 θ₀ 是否被异常压缩。易漏点三梯度校验跳过。为什么漏觉得推导对了就不用验结果 loss 不降时无从下手。怎么补反向传播写完必做数值梯度校验误差量级 1e-9 才算过这是排查黑匣子的唯一后悔药。易漏点四学习率与迭代次数混为一谈。为什么漏调参时同时改 α 和迭代次数结果变好不知道是谁的功劳。怎么补固定一个调另一个先画 J(θ) 曲线看趋势发散就降 α收敛慢就加迭代别两个一起动。易漏点五评估指标脱离数据分布。为什么漏默认准确率万能遇到偏斜数据就误判。怎么补拿到分类任务先看正负样本比例比例悬殊就换精确率、召回率、F1把混淆矩阵当默认输出。6. 复习落地用两版作业做自测与查漏的流程知识地图铺完最后落到怎么用这份资源复习。无答案版和有答案版的价值不在「有答案可抄」而在「先做后对」的节奏。我的建议是分三轮走每轮目标不同别一上来就翻答案。第一轮按章节过笔记把每个模型的假设、损失、梯度更新式手推一遍推不出来的标记出来这是你的第一张漏洞清单。第二轮用无答案版做自测限时完成做完不急着对答案先自己跑一遍代码看能不能收敛、梯度校验过不过。第三轮对有答案版逐题比对重点看两类差异结果对但实现方式不同的学写法结果不对的回笔记补推导。比对时把错题按「推导错、实现错、概念错」分类推导错回第 2、3 章实现错回代码片段概念错回判断表。复习轮次材料目标产出第一轮个人笔记手推公式、建知识地图漏洞清单第二轮无答案版限时自测、跑通代码错题记录第三轮有答案版逐题比对、分类归因补漏清单一个具体技巧每道做错的题别只记正确答案用一句话写下「我当时为什么这么想」。比如「我以为正则项要包含 θ₀」这句话比正确答案更能防止下次再错。复习末期只看这些「为什么」比重新刷一遍题效率高得多。从那以后我每次复习这类课程作业都强制走一遍「手推 → 自测 → 比对 → 写错因」的流程哪怕时间紧也至少走前两步因为跳过自测直接看答案等于把练习变成了阅读手感全无。希望这套流程和上面的地图能帮你在复习时少走点弯路。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →