Course1-Week1:机器学习简介

news2024/10/1 15:29:18

Course1-Week1:机器学习简介

文章目录

  • Course1-Week1:机器学习简介
    • 1. 课程简介
      • 1.1 课程大纲
      • 1.2 Optional Lab的使用 (Jupyter Notebooks)
      • 1.3 欢迎参加《机器学习》课程
    • 2. 机器学习简介
      • 2.1 机器学习定义
      • 2.2 有监督学习
      • 2.3 无监督学习
    • 3. 线性回归模型
      • 3.1 线性回归模型
      • 3.2 代价函数
    • 4. 梯度下降法
      • 4.1 梯度下降法
      • 4.2 用于线性回归的梯度下降

  • 笔记主要参考B站视频“(强推|双字)2022吴恩达机器学习Deeplearning.ai课程”。
  • 该课程在Course上的页面:Machine Learning 专项课程
  • 课程资料:“UP主提供资料(Github)”、或者“我的下载(百度网盘)”。

好文:

  • 2023吴恩达机器学习: 上班族35 天学完~学习笔记 (1.1 监督学习)——系列文章
  • 入门机器学习/深度学习要多长时间?

1. 课程简介

1.1 课程大纲

图1-1-1 课程大纲

  和国内大部分课程结构不同,本套机器学习课程分为3个Course,每个Course又分为若干个Week,如上图所示。笔记的结构与课程大纲相同,由于每个Week中又包含10~20节不等的讲解视频,所以单篇笔记就包含单个Week的内容。本篇笔记就对应了课程的Course1-Week1(上图中深紫色)。

1.2 Optional Lab的使用 (Jupyter Notebooks)

  为了帮助同学们在学习过程中更直观的理解机器学习中的概念,本套课程同步包含一系列实验。这些实验无需初学者有什么数学或代码基础,但需要使用 “Jupyter Notebooks” 打开。Jupyter Notebooks 是当今机器学习和数据科学从业者最广泛使用的工具,是进行编写代码、实验、尝试的默认环境。所以为了使用这些课程资料,需要我们在自己的浏览器中搭建 Jupyter Notebooks 环境,并用来测试一些想法。下面是配置环境(安装Anaconda)、打开课程资料的方法:

  1. 配置Jupyter Notebook环境:参考“辅助笔记-Jupyter Notebook的安装和使用”。
  2. 打开课程资料(如下图):使用“Anaconda Prompt”cd到存放课程资料的目录,然后 jupyter notebook打开即可。

注1:课程资料下载见“UP主提供资料(Github)”、或者“我的下载(百度网盘)”。
注2:课程资料中包含课程中的实验、Quiz、PPT,可自行查阅。

图1-1-2 使用Jupyter Notebook打开课程资料

1.3 欢迎参加《机器学习》课程

机器学习是一门让计算机在 没有明确编程 的情况下学习的科学。机器学习已经出现在生活的方方面面:

  • 消费者应用领域:
  1. 搜索引擎的排名机制。
  2. 社交软件为图片添加标签。
  3. 流媒体服务推荐机制,比如B站的“首页通知书”。
  4. 语音助手返回的答案,如问Siri附近的餐厅有哪些。
  5. 邮箱自动识别垃圾邮件。
  • 工业领域:
  1. 优化风力涡轮机发电。
  2. AI医学影像诊断。
  3. Landing AI将计算机视觉应用到工厂中,帮助检查流水线产品质量等。

机器学习广泛应用的原因:

  1. 很多场景无法写出显式程序。大多数情况下,我们不知道如何编写显式程序执行更有趣的事情,如网络引擎的推荐结果、识别人类语言、医学诊断、自动驾驶。我们所知道的唯一做这些事情的方法就是让机器学会自己做。
  2. AGI(Artifical General Intelligence, 通用人工智能)的创造应该要用到某种“学习算法”。通俗来说,AGI就是一个和正常人类智力相当的人工智能。“AGI”这种概念令广大AI研究者兴奋,虽然预计大概还需要50~500年才能实现,但大多数AI研究者认为最接近该目标的方法就是使用某种“学习算法(learning algorithms)”,虽然可能需要深入研究人类大脑的工作方式来寻找灵感,但机器学习算是进入AI领域的第一步。

注:学习算法(learning algorithm),是机器学习算法、深度学习算法等具备学习能力的算法的统称。

  本门课程广泛介绍了现代机器学习,包括监督学习(多元线性回归、逻辑回归、神经网络和决策树)、无监督学习(聚类、降维、推荐系统)以及人工智能和机器学习创新(评估和调整模型、采用以数据为中心的方法来提高性能等)在硅谷的最佳实践。具体将:

  1. 使用流行的机器学习库 NumPy 和 scikit-learn 在 Python 中构建机器学习模型。
  2. 构建和训练用于预测和二元分类任务的监督机器学习模型,包括线性回归和逻辑回归。

2. 机器学习简介

2.1 机器学习定义

  Arthur Samuel 在1950s就编写出了可以进行自我学习的跳棋程序(checkers playering program)。下面是他给出的“机器学习”的定义(非正式定义):

英文:Field of study that gives computers the ability to learn without being explicitly programmed. – Arthur Samuel (1959)
翻译:使计算机能够在没有明确编程的情况下学习的研究领域。

Question
If the checkers program(跳棋程序) had been allowed to play only ten games (instead of tens of thousands) against itself, a much smaller number of games, how would this have affected its performance?
× Would have made it better
√ Would have made it worse

启示:一般情况下,学习的机会越多,算法的表现越好。

本节课将学习很多机器学习算法,内容包括:

  1. 有监督学习(Supervised learning):实际应用中,有监督学习使用最广泛,并取得了最快速的进步和创新。Course1、Course2聚焦于有监督学习
  2. 无监督学习(Unsupervised learning):Course3聚焦于无监督学习
  3. 强化学习(Reinforcement learning)”:由于应用没有前两者广泛,所以本课程没有简单介绍。
  4. 使用“学习算法”的实用建议(很重要):“学习算法”本身只是一种工具,比工具本身更重要的是 如何正确使用这些工具。即使是某些大公司中最熟练的机器学习团队,可能也会因为最开始找错了算法方向而导致多年的成果付诸东流。所以本课程不仅会讲解机器学习算法,同时也会介绍最熟练的机器学习工程师是如何构建系统的,以及一些机器学习应用的最佳案例。

注:学习算法(Learning Algorithm),是机器学习算法、深度学习算法等具备学习能力的算法的统称。

2.2 有监督学习

  “有监督学习”指的是学习从 输入 x x x(一个或多个) 映射到 输出 y y y 的算法。有监督学习算法的关键在于首先要提供正确的样本示例供算法学习,然后算法便可以针对未见过的输入,输出相应的预测结果。下面是一些有监督学习的在现实生活中的示例:

  • 垃圾邮件过滤器:email --> 垃圾邮件?(0/1)
  • 语音识别:语音 --> 文本
  • 机器翻译:英文 --> 中文
  • 广告投递:广告、用户信息 --> 用户点击?(0/1)
  • 自动驾驶:图片、雷达信息 --> 其他车辆位置
  • 视觉检测:手机图片 --> 有缺陷?(0/1)

“有监督学习”中两类最常见的典型问题就是 回归(Regression)分类(Classification)。两者的主要区别在于:

  • 回归问题:要预测的结果有无穷种可能,比如在一段范围内都有可能的数字取值。
  • 分类问题:只有有限种可能的输出结果,比如前面提到的判断某个邮件是否为垃圾邮件。

注1:任何预测数字的“有监督学习”模型,就是解决所谓的“回归问题”。
注2:在“分类问题”中,输出“类别”的英文是classcategory,两者可以混用。

下面将给出这两个问题的示例。

回归问题示例:房价预测

  “房价预测”就是根据房子的面积计算价格。下图中的“红叉”就是预先提供的有正确映射关系的样本,“蓝色拟合线”就相当于算法学习输入样本,最后通过拟合线得到房价便是“预测”,这便是“有监督学习”的完整流程。注意到这个回归问题的输出(房价)可以是任意数字,于是便有无穷种可能。

图1-1-3 房价预测问题示意图
  1. 直线拟合:根据拟合直线,可以预测房屋面积 750 feet 2 750\text{feet}^2 750feet2 对应的价格大约为 $$150k$。
  2. 曲线拟合:根据拟合曲线,可以预测房屋面积 750 feet 2 750\text{feet}^2 750feet2 对应的价格大约为 $$200k$。

分类问题示例:乳腺癌检测

  乳腺癌检测问题就是根据输入的一系列信息,如肿瘤块的大小、患者年龄、肿瘤块的厚度、细胞大小的均匀性、细胞形状的均匀性等,来判断是否为恶性肿瘤(0表示良性/1表示恶性)。下面给出“单输入的乳腺癌检测”、“两输入的乳腺癌检测”示意图:

单输入的乳腺癌检测:输入是“肿瘤的大小”,输出是“良性”、“恶性-类型1”、“恶性-类型2”。
两输入的乳腺癌检测:输入是“肿瘤的大小”、“患者年龄”,输出是“良性”、“恶性”。

图1-1-4 单输入的乳腺癌检测问题
图1-1-5 两输入的乳腺癌检测问题

2.3 无监督学习

无监督学习:
Data only comes with inputs x x x, but not output labels y y y. Algorithm has to find structure in the data.

  在“有监督学习”之后,“无监督学习”也被广泛应用起来。“无监督学习”不是要找映射关系,而是想要从 没有标记的数据集 中发现一些有趣的东西,比如这个数据集中有什么 可能的模式或结构。无监督学习的主要类型有:

  1. 聚类(Clustering):将相似的数据点分成一组。
  2. 异常检测(Anomaly detection):。有非常多的应用,比如在金融系统的诈骗检测中,异常时间、异常交易可能是欺诈。
  3. 降维(Dimensionality reduction):在尽可能丢失少的信息的前提下,将大数据集压缩成小得多的数据集。

Question:
Of the following examples, which would you address using an unsupervised learning algorithm?
× Given email labeled as spam/not spam, learn a spam filter.
√ Given a set of news articles found on the web, group them into sets of articles about the same story.
√ Given a database of customer data, automatically discover market segments and group customers into different market segments.
× Given a dataset of patients diagnosed as either having diabetes or not, learn to classify new patients as having diabetes or not.

知识点:有监督学习给数据和标签,重点在于对新输入预测出标签;无监督学习只给数据,重点在于自行分组。

下面给出“聚类”的3个示例,后续会再介绍“异常检测”和“降维”这两种无监督学习的示例:

聚类算法示例1:新闻分类
  “谷歌新闻”的任务就是将每天数十万的新闻进行聚类,找到提到相似词的文章并将其分组。很酷的是,聚类算法可以自己计算出哪些词暗示了这些文章属于同一个组,并且谷歌新闻的员工也没有事先告诉算法有哪些组。如下图所示,panda、twin、zoo都是相似的词,这些文章被归为一类。

图1-1-6 聚类算法示例——谷歌新闻文章分类

聚类算法示例2:基因分类

  下图所示的基因图谱,每一列表示一个人的全部基因,每一行表示一种基因,不同的颜色表示该基因的活跃程度,这些基因包括瞳孔颜色、身高、不爱吃西蓝花/包菜/莴苣等。聚类算法仅根据这些基因数据,将人进行分组,进而找出“基因上很相似的人”。

图1-1-7 聚类算法示例——基因分类

聚类算法示例3:客户分群

  还有一个很常见的聚类算法示例就是,根据客户信息数据库,将不同的客户划分进不同的细分市场,以便更有效的服务客户。比如深度学习团队“dot AI” 想知道 dot AI社区 中的人们,参加课程、订阅通知、参加AI活动等的动机是什么。于是通过调研团队便发现了拥有不同动机的人,比如:提升技能、发展事业、紧随AI潮流、或者哪个都不是。这个例子中调研团队就相当于无监督学习算法。

图1-1-8 聚类算法示例——客户分群

本节Quiz:

  1. Which are the two common types of supervised learning? (Choose two)
    A.Classification √
    B.Clustering
    C.Regression √
  2. Which of these is a type of unsupervised learning?
    A.Regression
    B.Classification
    C.Clustering √

3. 线性回归模型

3.1 线性回归模型

  本节将通过“线性回归模型”(Linear Regression Model)介绍“有监督学习”的整个过程,这也是本课程的第一个模型。下面是常用的机器学习术语:

  • Training Set(数据集):用于训练模型的数据集。
  • x x x:input variable(输入变量) / feature(特征) / input feature(输入特征),也就是“特征值”。
  • y y y:output variable(输出变量) / target variable(目标变量),也就是“目标值”。
  • m m m:表示训练样本的数量。
  • ( x , y ) (x,y) (x,y):单个训练样本。
  • ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)):第 i i i 个训练样本。上标加括号是为了和求幂次区别开来。
  • y ^ \hat{y} y^:表示对 y y y 的估计或预测。
图1-1-9 有监督学习的过程示意图
  • 以前把 f f f 叫做hypothesis(假设),但是老师不建议这种叫法,而是称之为function(函数)。

  上图给出了整个“有监督学习”的流程,也就是“learning algorithm”根据输入的“训练集”得到一个 函数模型 f f f,于是便可以通过 f f f 来对 输入 x x x 进行预测 输出 y ^ \hat{y} y^。而“线性回归模型”就是假设 函数模型 f f f 为一条直线,因为简单易用,这可能是世界上使用最广泛的学习算法,后续也会在其他机器学习模型中见到线性回归模型。
  “线性回归”只是解决回归问题的方法之一,其他方法会在Course2中会介绍。现在以上一小节“房价预测”问题举例,若使用“线性回归模型”假设 f f f 就是一条直线,于是该模型就可以写成

f w , b ( x ) = w x + b f_{w,b}(x)=wx+b fw,b(x)=wx+b

表示函数 f f f x x x 为函数输入,其输出 y ^ \hat{y} y^ 取决于 w w w b b b 的值。

  • w w w b b b:模型的参数(parameter)。
  • f w , b ( x ) f_{w,b}(x) fw,b(x)通常会简写为 f ( x ) f(x) f(x)
图1-1-10 线性回归模型

3.2 代价函数

  显然,虽然现在已经构建好了“线性回归模型”,但是过训练集的直线有无数种,如何找出 与训练数据最拟合的线 还不明确,于是本节就来介绍 代价函数(cost funtion)。在机器学习中,代价函数用于 衡量模型的好坏,最简单、最常用的代价函数是“平均误差代价函数”(Squared error cost function):
J ( w , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 \begin{aligned} J(w,b) &= \frac{1}{2m} \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})^2\\ &= \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2 \end{aligned} J(w,b)=2m1i=1m(y^(i)y(i))2=2m1i=1m(fw,b(x(i))y(i))2

  • w w w b b b:模型的参数。
  • i i i:训练样本的标号。
  • m m m:训练样本的总数。
  • y ( i ) y^{(i)} y(i):第 i i i 的样本的真实目标值。
  • y ^ ( i ) \hat{y}^{(i)} y^(i):对 y ( i ) y^{(i)} y(i) 的预测目标值。
  • 除以 2 m 2m 2m:按照惯例,机器学习中的平均代价函数会除以 2 m 2m 2m 而非 m m m,这是为了使后续的计算更加简洁。

  现在来直观的看一下,最小化代价函数如何找到与训练数据最拟合的线。首先简化模型,设置参数 b = 0 b=0 b=0,并假设训练数据只有三个点。下图给出了不同的 w w w 所对应不同的 代价 J ( w ) J(w) J(w),显然在 w = 1 w=1 w=1 处代价最小,直线也最拟合:

min ⁡ w J ( w ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 = 1 2 m ∑ i = 1 m ( w x ( i ) − y ( i ) ) 2 \begin{aligned} \min_{w} J(w) &= \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2\\ &= \frac{1}{2m} \sum_{i=1}^{m}(wx^{(i)}-y^{(i)})^2 \end{aligned} wminJ(w)=2m1i=1m(fw,b(x(i))y(i))2=2m1i=1m(wx(i)y(i))2

图1-1-11 使代价函数最小

  那回到刚才的问题中,同时将 w w w b b b 都考虑在内,并引入更多的训练数据,便可以得到下面的代价函数示意图。为了更好的将代价函数可视化,同时使用“等高线图”和“3D图”来展示不同的 w w w b b b 所对应不同的 代价 J ( w , b ) J(w,b) J(w,b)。“3D图”类似一个“碗”,显然在“碗”的底部,代价函数最小:

图1-1-12 可视化代价函数

上图见课程资料:C1_W1_Lab04_Cost_function_Soln.ipynb

  • bug1:ModuleNotFoundError: No module named ‘ipympl’
    解决办法:新打开一个“Anaconda Prompt”输入conda install ipympl,然后重启内核重新运行即可。

注:图片很多,运行后会有点卡,若加载不出来图片可以尝试重新运行。

本节Quiz:

  1. For linear regression, the model is f w , b ( x ) = w x + b f_{w,b}(x)= wx + b fw,b(x)=wx+b. Which of the following are the inputs, or features, that are fed into the model and with which the model is expected to make a prediction?
    × m m m
    × ( x , y ) (x,y) (x,y)
    x x x
    × w w w and b b b.
  2. For linear regression, if you find parameters w w w and b b b so that J ( w , b ) J(w, b) J(w,b) is very close to zero, what can you conclude?
    × This is never possible - there must be a bug in the code.
    √ The selected values of the parameters w w w and b b b cause the algorithm to fit the training set > really well.
    × The selected values of the parameters w w w and b b b cause the algorithm to fit the training set > really poorly.

  虽然现在距离完成“线性回归问题”非常接近了,但是上述是通过人眼来直观的寻找代价函数的最小点,实际上要画出有足够多细节的3D图需要计算大量的 J ( w , b ) J(w,b) J(w,b),而很多 J ( w , b ) J(w,b) J(w,b)点 都是没用的,这显然不划算。下一节就来介绍如何通过计算有限的 J ( w , b ) J(w,b) J(w,b)点 来找到代价函数最小点。

4. 梯度下降法

4.1 梯度下降法

  梯度下降(Gradient Desent)常用于寻找某函数(比如代价函数)的最大值、最小值。梯度下降不仅用于线性拟合,也用于训练如神经网络(Course2)等深度学习模型、以及一些最大型、最复杂的人工智能模型。下面以前面的 min ⁡ w , b J ( w , b ) \min_{w,b} J(w,b) minw,bJ(w,b) 来举例,梯度下降算法的步骤为:

  1. 选择初始点,一般在取值范围内选取简单的整数,如 w = 1 , b = 0 w=1,b=0 w=1,b=0
  2. 沿着 J J J 的“负梯度”方向,不断迭代计算 w w w b b b。之所以沿着“负梯度”方向,是因为沿该方向下降速度最快(steepest descent, 最速下降)。如下:
    w = w − α ∂ ∂ w J ( w , b ) b = b − α ∂ ∂ b J ( w , b ) \begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b)\\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) \end{aligned} wb=wαwJ(w,b)=bαbJ(w,b)
  • α \alpha α:学习率(Learning rate),用于控制步长。通常为介于0~1之间的一个小的正数,如0.01。
  • ∂ ∂ w J ( w , b ) \frac{\partial }{\partial w} J(w,b) wJ(w,b):代价函数对 w w w 的偏导数(Partial Derivative),其取负值表明的方向可以使 J J J 下降。
  • ∂ ∂ b J ( w , b ) \frac{\partial }{\partial b} J(w,b) bJ(w,b):代价函数对 b b b 的偏导数,意义同上。

注意:上面是 同时更新(Simultaneously update),也就是使用旧的 ( w , b ) (w,b) (w,b) 直接分别计算出新的 w w w b b b;而不是先更新 w w w,再使用这个新的 w w w 计算新的 b b b

  1. 直到 w w w b b b的负梯度 都为 0 0 0(或者 0 0 0的邻域内),即可认为找到 J J J 的最低点。

  下面两张图很直观的给出了整个梯度下降法的过程。在下左图中,首先固定 b = 0 b=0 b=0,只分析 w w w 对代价函数 J ( w ) J(w) J(w) 的影响。可以发现,若当前 w w w在最低点右侧,由于“负梯度”小于0,于是下一个 w w w将向左移动;反之若当前 w w w在最低点左侧,由于“负梯度”大于0,下一个 w w w将向右迭代。只要选择合适的学习率 α \alpha α,最终就可以找到最低点所在的 w w w。在下右图中,则进一步同时考虑 w w w b b b,可以发现每次也是沿着“负梯度”下降最快的方向,最终可以到达最低点所在处。这个迭代的过程就是“梯度下降”,类似于“下山”的过程。

图1-1-13 理解梯度下降法的过程

注意点1:学习率

学习率 α \alpha α 的选取将会对梯度下降的效率产生巨大影响。若 α \alpha α 选取的不好,甚至会导致无法实现梯度下降。

  • α \alpha α 选取的太小,会导致下降的速度非常慢(意味着需要计算很长时间),但最终也会收敛(converge)到最小值。
  • α \alpha α 选取的太大,很可能会导致在极值点附近反复横跳甚至越来越远,也就是不会收敛甚至发散(diverge)。
  • α \alpha α 选取的合适,越接近代价函数极小值,梯度越来越小,就会导致步长越来越小。
图1-1-14 学习率对代价函数的影响

注意点2:多个极值点

  在前面的讨论中,一直使用平方误差项作为代价函数。对于 平方误差项 的代价函数,都是“凸函数”或“凸面”。但若代价函数非凸时,可能就会存在不止一个极值。如上图1-1-13中,不同的起始点,就会导致不同的收敛速度或极值。所以 代价函数尽量要选择凸函数

4.2 用于线性回归的梯度下降

  介绍完梯度下降法,现在来总结一下,将前面的线性回归模型、代价函数、梯度下降算法结合起来,按照下面公式不断迭代直至其收敛:
Linear regression model : f w , b ( x ) = w x + b Cost function : J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 Gradient descent repeat until convergence : { w = w − α ∂ ∂ w J ( w , b ) = w − α m ∑ i = 1 m [ ( f w , b ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ] b = b − α ∂ ∂ b J ( w , b ) = b − α m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) \begin{aligned} \text{Linear regression model} &: \quad f_{w,b}(x) = wx+b\\ \text{Cost function} &: \quad J(w,b) = \frac{1}{2m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2\\ \begin{aligned} \text{Gradient descent} \\ \text{repeat until convergence} \end{aligned} &: \left\{\begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b) = w - \frac{\alpha}{m} \sum_{i=1}^{m}[(f_{w,b}(x^{(i)})-y^{(i)})·x^{(i)}] \\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) = b - \frac{\alpha}{m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)}) \end{aligned}\right. \end{aligned} Linear regression modelCost functionGradient descentrepeat until convergence:fw,b(x)=wx+b:J(w,b)=2m1i=1m(fw,b(x(i))y(i))2: wb=wαwJ(w,b)=wmαi=1m[(fw,b(x(i))y(i))x(i)]=bαbJ(w,b)=bmαi=1m(fw,b(x(i))y(i))

从“等高线图”的角度来看,梯度下降法的迭代过程可能如下图红色箭头所示,从起始点不断收敛到最小值,并且注意到这个过程也是越来越慢的:

图1-1-15 梯度下降法求解线性回归模型

  最后说明一下,由于在使用梯度下降法求解问题的过程中,每次迭代都会使用到所有的训练集数据计算代价函数及其梯度,所以这个梯度下降的过程称为“批量梯度下降(Batch gradient descent)”。当然本问题较为简单,在其他数据更为复杂的模型中,为了简化梯度下降法的计算量,每次只使用训练集的子集

本节Quiz:

  1. Gradient descent is an algorithm for finding values of parameters w and b that minimize the cost function J ( w , b ) J(w,b) J(w,b).
    repeat until convergence : { w = w − α ∂ ∂ w J ( w , b ) b = b − α ∂ ∂ b J ( w , b ) \text{repeat until convergence}: \left\{\begin{aligned} w &= w - \alpha \frac{\partial }{\partial w} J(w,b) \\ b &= b - \alpha \frac{\partial }{\partial b} J(w,b) \end{aligned}\right. repeat until convergence: wb=wαwJ(w,b)=bαbJ(w,b)

When ∂ J ( w , b ) ∂ w \frac{\partial J(w,b)}{\partial w} wJ(w,b) is a negative number (less than zero), what happens to w w w after one update step?
× w w w stays the same
× It is not possible to tell if w w w will increase or decrease.
× w w w decreases.
w w w increases.

  1. For linear regression, what is the update step for parameter b b b?
    × b = b − α m ∑ i = 1 m [ ( f w , b ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ] b = b - \frac{\alpha}{m} \sum_{i=1}^{m}[(f_{w,b}(x^{(i)})-y^{(i)})·x^{(i)}] b=bmαi=1m[(fw,b(x(i))y(i))x(i)]
    b = b − α m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) b = b - \frac{\alpha}{m} \sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)}) b=bmαi=1m(fw,b(x(i))y(i))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm+vue的物资物流系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的物资物流系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体…

SSM人事请假签到管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM人事请假签到管理系统是一套完善的完整人事请假薪酬加班管理,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统…

巫溪家和计划——“平安快乐幸福家”宣传活动

8月,在重庆市婚姻收养登记管理中心的指导下,巫溪县民政局婚姻登记处、巫溪县同心社会工作服务中心在通城镇夏布坪海棠园会议室开展了“家和童行过暑假,平安快乐幸福家”安全教育活动,围绕防溺水安全、交通安全、消防安全、防拐怪防…

Linux中df命令使用

在Linux中,df命令用于显示磁盘空间的使用情况。它的基本语法如下: df [选项] [文件或目录]这个命令可以用来查看当前系统上各个磁盘分区的使用情况。如果没有指定文件或目录,则所有当前被挂载的文件系统的可用空间将被显示。 df命令的一些常…

促进材料基因工程基础理论、前沿技术和关键装备的发展和应用,第七届材料基因工程高层论坛将于12月重庆举办,龙讯旷腾出席会议

为了进一步促进材料基因工程基础理论、前沿技术和关键装备的发展和应用,加强国际交流,加速我国新材料的研发和应用,由中国材料研究学会、西部科学城重庆高新区管理委员会主办,重庆大学、北京科技大学、北京云智材料大数据研究院等…

SAP 锁机制及创建与使用介绍

一、SAP为什么要设置锁: 1,保持数据的一致性 如果几个用户要访问同样的资源,需要找到一种同步访问的方法去保持数据的一致性。比如说,在航班预订系统中,需要检查还有没有空座位,当检查的时候,你…

欧拉操作系统下离线安装字体的操作步骤

背景 某 Web 应用部署到欧拉操作系统后,应用中导出的 PDF 文件中文全部显示乱码,原因是字体缺失,但是目标系统上并没有联网,必须找到字体的离线安装包。 CSDN 上还有40个积分,下载了两个相关的资源后,目标…

千兆光模块和万兆光模块的供应链管理

随着网络通信技术的不断发展,千兆光模块和万兆光模块已逐渐成为现代网络建设中不可缺少的组成部分。它们在云计算、数据中心、大规模机房以及企业内部网络等领域广泛应用,已经成为大家熟知的产品。 千兆光模块和万兆光模块的工作原理基本相同&#xff…

【AI】行业消息精选和分析(11月23日)

今日动态 1、Sam Altman 重掌 CEO,OpenAI 权力斗争正式「落幕」 2、重磅好消息:语音 ChatGPT 现已向全用户开放 3、NVIDIA 与基因泰克合作,利用生成式 AI 加速药物发现 4、 英伟达Q3营收同比增长206%至181亿美元 黄仁勋:生成式AI时…

【第一部分:概述】ARM Realm Management Monitor specification

目录 概述机密计算系统软件组成MonitorRealmRealm Management Monitor (RMM)Virtual Machine (VM)HypervisorSecure Partition Manager (SPM)Trusted OS (TOS)Trusted Application (TA) Realm Management Monitor 参考文献 概述 RMM是一个软件组件,它构成了实现ARM…

一站式解决Mac音视频转换需求——Xilisoft Video Converter Ultimate for Mac

在数字化时代,音视频的应用越来越广泛,不同的设备和平台对音视频格式的要求也不尽相同。因此,如何找到一款功能强大、易于操作的音视频转换软件成为了Mac用户的迫切需求。而Xilisoft Video Converter Ultimate for Mac(曦力音视频…

【本文由AI创作】人工智能七大领域和对我们生活的影响(图文PPT视频,15分钟完成)

深度学习映万象,神经网络隐层藏。 智能机器触手延,辅助生活工作间。 ——本文全部内容由AIGC大模型生成。 一、人工智能的领域 人工智能不只是聊天,画图,数字人。 大模型火了,人们蜂拥的科学上网,去看ChatG…

【JUC】十一、Future接口与其实现类FutureTask的优缺点

文章目录 1、Future接口2、FutureTask结合线程池提升性能3、Future的缺点一:get导致阻塞4、Future的缺点二:轮询耗费CPU5、其余场景 相关文章: 【Callable与FutureTask】 1、Future接口 Future接口,定义了操作异步任务执行的一些…

Ubuntu18 Opencv3.4.12 viz 3D显示安装、编译、使用、移植

Opencv3.*主模块默认包括两个3D库 calib3d用于相机校准和三维重建 ,viz用于三维图像显示,其中viz是cmake选配。 参考: https://docs.opencv.org/3.4.12/index.html 下载linux版本的源码 sources。 查看cmake apt list --installed | grep…

Navicat 技术指引 | GaussDB 数据查看器

Navicat Premium(16.2.8 Windows版或以上) 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

win10底部任务栏无响应?试试这些方法!

win10的任务栏是一个关键的用户界面元素,允许您轻松访问应用程序和系统功能。然而,有时您可能会遇到win10底部任务栏无响应的问题,这会妨碍您的工作流程。本篇文章将介绍解决win 10底部任务栏无响应的问题的三种方法,每种方法都会…

基于Vue+SpringBoot的校园疫情防控管理系统

项目编号: S 037 ,文末获取源码。 \color{red}{项目编号:S037,文末获取源码。} 项目编号:S037,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生2.2 老师2.3 学校管理部门 三、…

nvm切换版本之后npm用不了

原因是 nvm只给你安了对应的node没给你安装对应的node版本的npm 解决办法如下 1找到你安装的node版本号 然后去官网下载对应的版本包 这个网址就是node官网的版本列表 Index of /download/release/ 2下载后解压 把根目录这俩复制到自己的nvm安装目录下 还有那个node_modul…

LED电子屏幕的5种色度处理技术

LED电子大屏幕行业在从单色到双色再到三基色(全彩)的发展过程中,展现了LED显示屏技术的不断创新和终端用户多元化需求的变化。为了提高LED显示屏的色彩还原能力,LED显示屏厂家不断改进色度处理技术。以下是LED电子大屏幕的五种色度…

debian 设置系统默认以命令行方式启动,关闭x windows

debian 设置系统默认以命令行方式启动,关闭x windows 2021-01-02 tech linux 设置 grub启动设置在/etc/default/grub中,打开 default grub 配置: $ sudo vim /etc/default/grub修改以下配置: 更新grub,设置多用户启动: $ sudo update-grub $ sudo systemctl set-…