TowardsDataScience 博客中文翻译 2021(七百三十六)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

什么是逻辑回归?

原文:https://towardsdatascience.com/what-is-logistic-regression-d3f59ef1a9b?source=collection_archive---------22-----------------------

逻辑回归是数据科学家和机器学习工程师的基本分类工具。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

克莱班克斯Unsplash 拍摄的照片

本教程是关于应用逻辑回归的基础,使用了一点 Python。也是《什么是线性回归》这篇帖子的延续。,可以在这里找到

关于逻辑回归

这有点违反直觉,但逻辑回归通常被用作分类器。事实上,逻辑回归是科学家使用的最常用和最著名的数据分类方法之一。这种分类方法背后的思想是输出将在 0 和 1 之间。本质上是返回你给模型的数据属于某个组或类的概率。在那里,开发者可以根据他们想要的谨慎程度来设置阈值。

例如,我可以将阈值设置为 0.8。这意味着逻辑回归模型的任何输出等于或大于 0.8 将被归类为 1。任何低于 0 的都将被归类为 0。从那里,我可以根据我的用例以及我关心的指标,将 0.8 的阈值向上或向下移动。

逻辑回归和线性回归有什么关系?

线性回归公式可以包含在逻辑回归公式中。如果你还记得,线性回归公式是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性回归方程

嗯……逻辑回归的公式是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

逻辑回归方程

我们可以用线性回归公式替换掉y:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

逻辑回归方程 2

这个逻辑回归方程是干什么的?

线性回归部分提供一些输出值,逻辑回归部分将这些值推到 0 和 1 之间(包括 0 和 1)。这在某种程度上形成了一条 S 曲线,你可能以前见过。

如果没有,下面是 Scikit 学习文档中的一个示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

https://sci kit-learn . org/stable/auto _ examples/linear _ model/plot _ logistic . html

让我们用 Python 编写一个例子

我们主要需要流行的机器学习库 Scikit Learn。Numpy 稍后用于构建一些数据结构,将数据输入 Scikit Learn。

我们将创建关于患者的样本数据,以及他们是否应该被批准进行某种类型的治疗。我们将为年龄、体重、平均静息心率创建列,然后为批准决定创建列。除了批准决定之外,我们使用所有的列作为我们的特征。我们的模型应该估计每个特征对于批准决定的重要性,并且我们应该得到患者被批准治疗的概率。

:这个数据完全是编造的。这并不表示医疗专业人员进行了任何真正的治疗或决策。

库导入

*# Import numpy to create numpy arrays*
**import** **numpy** **as** **np**

*# Import Scikit-Learn to allow us to run Logistic Regression*
**from** **sklearn.linear_model** **import** LogisticRegression

为我们的模型创建数据

我们正在创建的数据包含与年龄、体重和平均心率相关的特征。我们的批准决定将是一个名为approved的列,包含 0 或 1,表示患者是否被批准。0 表示患者未被批准,1 表示患者被批准。

*# Sample Data*
approved = np.array([1, 1, 1, 0, 0, 0, 1, 1, 0, 0])
age = [21, 42, 35, 33, 63, 70, 26, 31, 52, 53]
weight = [110, 180, 175, 235, 95, 90, 175, 190, 250, 185]
avg_hrt = [65, 70, 72, 77, 67, 62, 68, 65, 73, 75]

构建要素和标签

我们将多个 Python 数组堆叠成一个 numpy 对象。此外,指定认可阵列的“形状”。

*# Combining the multiple lists into one object called "X"*
X = np.column_stack([age, weight, avg_hrt])*# Reshaping the approvals to work with scikit learn*
y = approved.reshape(len(approved), )

让我们建立一个逻辑回归模型

首先,我们实例化模型。

*# Instantiating the model object*
model = LogisticRegression()

现在我们可以用数据来拟合模型。这就是我们如何估计患者的认可状态——给定他们的年龄、体重和平均静息心率。

*# Fitting the model with data*
fitted_model = model.fit(X, y)

现在模型已经训练好了,让我们来看看系数。

年龄的系数= -0.6785458695283049
体重的系数=-0.10023841185826
平均静息心率的系数=-0.49686

解释系数

这些系数告诉我们,年龄是最重要的因素。紧随其后的是平均静息心率。对于这个特定的数据+案例,患者的体重排在最后。

系数的值量化了这些特性对获得批准的可能性有多大的影响。请这样想:

随着特征值(左侧*)的增加,获得批准的概率降低,因为系数为负。减少量由系数值量化(右侧*)。

*左侧和右侧指的是系数的打印结果,如上所示。

这有助于了解哪些特征有助于您的模型并影响您的决策。当谈到可解释的人工智能时,通常有一种方法来解释模型并看到模型如何做出决定是极其重要的。在这种情况下,我们可以查看系数来确定每个功能的影响程度,以及为什么算法可能会选择批准某个人,而不是其他人。

让我们用新数据来检验这个模型

创建新数据

new_age = [20, 45, 33, 31, 62, 71, 72, 25, 30, 53, 55]
new_weight = [105, 175, 170, 240, 100, 95, 200, 170, 195, 255, 180]
new_avg_hrt = [64, 68, 70, 78, 67, 61, 68, 67, 66, 75, 76]*# Combining the multiple lists into one object called "test_X"*
test_X = np.column_stack([new_age, new_weight, new_avg_hrt])

通过模型运行新数据

results = fitted_model.predict(test_X)

看一看结果

print(f"Our approval results are: **{**results**}**")

我们的审批结果是:[1 1 1 0 0 0 1 1 0 0]

如您所见,Scikit Learn 自动为我们设置了一个阈值,并决定了我们的批准。如果您想查看实际的概率,我们可以使用 Scikit Learn 提供的另一个函数- predict_proba():

results_w_probs = fitted_model.predict_proba(test_X)print("Our approval results with their probabilites:")
**for** result **in** results_w_probs:
    print(f"Probability not approved = **{**result[0]**:**.2f**}**, Probability approved = **{**result[1]**:**.2f**}**")

我们的批准结果及其概率:
不批准概率= 0.00,批准概率= 1.00
不批准概率= 0.28,批准概率= 0.72
不批准概率= 0.00,批准概率= 1.00
不批准概率= 0.84,批准概率= 0.16
不批准概率= 0.92,批准概率= 0.08
不批准概率= 0.99,批准概率= 0.01 【T8 通过概率= 0.00
未通过概率= 0.00,通过概率= 1.00
未通过概率= 0.00,通过概率= 1.00
未通过概率= 1.00,通过概率= 0.00
未通过概率= 1.00,通过概率= 0.00

注意:1 和 0 的概率列表与我们之前传递给predict_proba()函数的初始 numpy 数组顺序相同。

在这里,我们可以设置不同的阈值,根据概率提供不同数量的批准。如果要谨慎审批人,可以把门槛设成 0.8 或者 0.9。如果治疗是安全的,非侵入性的,并且成本很低——我们可以将阈值降低到 0.25 或 0.3。这完全取决于用例。

后续步骤

我希望你喜欢这个教程,并发现它很有用!如果你想让你的模型变得更好,下面是你应该考虑的一些后续步骤:

  • 查找并添加更多数据,无论是更多行数据还是新功能。
  • 测试不同的阈值。
  • 了解分类指标。(Scikit Learn 的分类报告是一个很好的起点)
  • 针对对您的用例有意义的分类指标定制您的模型。准确性可能不是最好的衡量标准。(一个例子是当你的班级不平衡时)
  • 探索更复杂的模型,如 XGBoost、LightGBM、SVM、神经网络等。

链接

什么是机器学习?

原文:https://towardsdatascience.com/what-is-machine-learning-91040db474f9?source=collection_archive---------17-----------------------

以 Python 实现的多项式回归为例介绍监督和非监督学习

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

机器学习大类概述。

内容

这篇文章是我将要发表的一系列文章的一部分。你可以通过点击这里在我的个人博客上阅读这篇文章的更详细版本。下面你可以看到该系列的概述。

1.机器学习导论

2.回归

3.分类

一点历史

看起来,大多数人对机器学习的定义来自阿瑟·李·塞缪尔 1959 年的一句话:“让计算机从经验中学习,最终应该消除对这种详细编程工作的需求。”对此的解释是,“机器学习是一个研究领域,它赋予计算机无需显式编程就能学习的能力。”

机器学习从统计学中汲取了很多方法,但这两个领域有一个明显的区别:统计学主要涉及估计,而机器学习主要涉及预测。这种区别导致了巨大的差异,我们很快就会看到这一点。

机器学习的类别

有许多不同的机器学习方法可以解决不同的任务,并且将它们都归入严格的类别本身就是一项相当艰巨的任务。我的文章将涵盖两个基本的问题;有监督的学习和无监督的学习,可以进一步分为更小的类别,如上图所示。

值得注意的是,这些类别并不严格,例如,降维并不总是不受监督的,您可以使用密度估计进行聚类和分类。

监督学习

监督学习指的是机器学习任务的子集,在这里我们得到了一个由 N 个输入输出对组成的数据集,我们的目标是从输入到输出得出一个函数 h 。每个输入变量 variable 是一个 D 维向量(或标量),用数值表示观察值。输入变量的不同维度通常被称为特征属性。同样,每个目标变量通常是一个标量。

分类中,目标变量的可能值形成有限数量的离散类别,通常称为。一个经典的例子是识别手写数字[1]。给定一个 28×28 像素的图像,我们可以将每个图像表示为一个 784 维的向量,这将是我们的输入变量,我们的目标变量将是从 0 到 9 的标量,每个标量表示一个不同的数字。

你可能以前听说过回归。像分类一样,我们被给予一个目标变量,但是在回归中它是连续的而不是离散的。回归分析的一个例子是预测房子的售价。在这种情况下,特征可以是关于房屋、位置和/或最近出售的其他类似房屋的任何测量值-目标变量是房屋的销售价格。

无监督学习

机器学习任务的另一个子集属于无监督学习,在这种情况下,我们只得到一个由 N 个输入变量组成的数据集。与监督学习相比,我们没有被告知我们想要预测什么,也就是说,我们没有任何目标变量。无监督学习的目标是在数据中发现模式。

上面的类别图像将无监督学习分为 3 个子任务,第一个是聚类,顾名思义,指的是在数据中发现‘聚类’的任务。我们可以将一个集群定义为一组彼此之间比其他集群中的观测更加相似的观测。比方说,我们必须为一个篮球、一个胡萝卜和一个苹果想出一个集群。首先,我们可以根据形状创建聚类,在这种情况下,篮球和苹果都是圆的,但胡萝卜不是。其次,我们也可以按用途分类,在这种情况下,胡萝卜和苹果是食物,但篮球不是。最后,我们可以按颜色分类,在这种情况下,篮球和胡萝卜都是橙色的,但苹果不是。这三个例子都是有效的聚类,但是它们对不同的事物进行聚类。

然后我们有密度估计,这是将概率密度函数拟合到数据的任务。值得注意的是密度估计通常与分类等其他任务结合使用,例如,基于我们观察的给定类别,我们可以使用密度估计来找到每个类别的分布,从而(基于类别分布)对新观察进行分类。密度估计的一个例子是寻找数据中的极端异常值,也就是说,寻找极不可能从数据拟合的密度函数中生成的数据。

最后,降维,顾名思义,减少我们正在处理的数据的特征数量。就像密度估计一样,这通常与其他任务一起完成。比方说,我们要执行一项分类任务,我们的输入变量有 50 个特征,如果在将特征数量减少到 5 个后,我们可以同样好地完成相同的任务,我们可以节省大量的计算时间。

示例:多项式回归

我们来看一个机器学习的例子。这也是为了熟悉机器学习术语。我们将实现一个名为多项式回归的模型,我们尝试用多项式来拟合我们的数据。

给定具有相应目标变量 tN 1 维输入变量 x 的训练数据集,我们的目标是拟合一个多项式,该多项式在给定新输入变量的情况下为未来目标变量产生值。我们将通过估计多项式的系数来做到这一点

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们称之为模型的参数权重M 是我们多项式的阶, w 表示我们所有的参数,即我们的 M 阶多项式有 M +1 个参数。

现在,目标是估计我们的参数的“最佳”值。为此,我们定义了所谓的目标函数(有时也称为误差损失函数)。我们构造我们的目标函数,使得它输出一个值,告诉我们我们的模型是如何执行的。对于这项任务,我们将目标函数定义为多项式预测和相应目标变量之间的平方差之和,即

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我们用(1)的右边代替 h ,我们得到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们花一分钟来理解(2)在说什么。右边 parantheses 中的术语通常称为第 n 次剩余。它是某个输入变量的多项式输出和它对应的目标变量之间的差。根据多项式的输出是低于还是高于目标值,差值可以是正的也可以是负的。因此,我们对这些差异求平方,并将它们相加,以获得一个值,该值告诉我们多项式的性能如何。

这个目标函数被称为残差平方和或残差平方和,通常被用来衡量机器学习中回归模型的性能。下图显示了我们估计的多项式和给定数据之间的差异。这些差异是目标函数求平方并求和的误差(或残差)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

残差图。

到目前为止,一切顺利!因为目标函数告诉我们做得有多好,它越低,我们做得越好,我们将尝试找到目标函数的最小值。为了找到一个函数的最小值,我们求导,设置它等于 0,并求解我们的参数。既然我们有很多参数,我们就取 E 相对于第 i 个参数的偏导数,设为 0,然后求解。这将给我们一个线性系统,该系统由 M 个方程和 M 个未知数组成(我们的参数是 T21)。我们将在下一篇文章中讨论这个问题的解决方案的推导过程,但是现在我们只给出它。方程组的解是

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中 t 表示我们所有的目标变量,作为一个列向量, X 称为设计矩阵,定义为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总而言之:我们给定了 N 对输入变量和目标变量,我们希望用多项式来拟合形式(1)的数据,以使我们的多项式 h 的值尽可能接近目标。我们通过找到使(2)中定义的目标函数最小化的参数 w 的值来做到这一点,对此的解决方案在(3)中给出。

多项式回归的 Python 实现

让我们试着实现我们的模型吧!我们将从下面显示的数据集开始,其中x是我们的输入变量,t是我们的目标变量。

import numpy as np
x = np.array([-1, -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1])
t = np.array([-4.9, -3.5, -2.8, 0.8, 0.3, -1.6, -1.3, 0.5, 2.1, 2.9, 5.6])

首先,我们可以定义多项式的阶数,找到数据点的数量,然后建立设计矩阵。

M = 4
N = len(x)
X = np.zeros((N, M+1))

如果我们看一下(4)中设计矩阵的定义,我们可以用下面的 for 循环来填充设计矩阵的列。

for m in range(M+1):
    X[:, m] = x**m

现在我们可以用(3)中的解找到参数。

w = np.linalg.inv(X.T @ X) @ X.T @ t

使用 NumPy 的[poly1d](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html) 函数我们可以为我们的多项式生成输出。

h = np.poly1d(np.flip(w, 0))
x_ = np.linspace(0, 10, 100)
t_ = h(x_)

现在我们可以用我们的数据点来绘制我们的估计多项式。我还画出了产生这些点的真实函数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

估计多项式回归曲线和真实数据函数和点。

摘要

  • 机器学习研究如何让计算机自主学习,目标是预测未来
  • 监督学习指的是机器学习任务,其中我们被给予被标记的数据,我们想要预测那些标记。
  • 无监督学习,顾名思义,指的是任务,其中我们没有为我们的数据提供标签。
  • 特征是指我们数据的属性(通常是列),如身高、体重、鞋码等。,如果我们的观测对象是人类。
  • 分类和回归是有监督的任务,聚类、密度估计和维数减少是无监督的任务。
  • 参数指的是数值,我们要在机器学习模型中估计
  • 估计参数值的过程被称为训练或学习过程。
  • 一个目标函数是我们模型的性能的度量。

参考

[1] Y. LeCun 等,“基于梯度的学习应用于文档识别”,1998 年。

什么是机器学习

原文:https://towardsdatascience.com/what-is-machine-learning-e67043a3a30c?source=collection_archive---------32-----------------------

讨论机器学习的学习方法、类型和实际应用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由莫仁·许Unsplash 上拍摄

介绍

机器学习是计算机科学的一个分支,它涉及数据和算法的使用,使机器能够模仿人类的学习,以便它们能够通过从输入示例中学习来执行某种预测。

在世界各地,计算机和智能设备仅在一天之内就可以收集和存储数 Pb 的数据,从生物标志物到金融和环境数据。由于这些数据集的规模和复杂性,人工提取信息几乎是不可能的。

人类习惯于在三维世界中操作和思考,因此,我们很难从更高维度的数据中提取信息。这意味着我们有两个选择。我们可以减少维度的数量,直到我们能够解决问题(但这将以将信息扔出窗外为代价),或者训练机器,使它们能够提取信息,尽管我们需要处理的数据维度很高。

机器学习领域将现代机器提供的计算能力与统计算法相结合,这些算法能够从数据中学习,帮助人类理解复杂的概念,做出更好的决策,并最终解决实际问题。

学问

这里的关键概念是如何让计算机从数据中学习。这意味着,我们需要以某种方式教会机器如何记忆、适应(或纠正)和概括学习到的信息,以便它们可以将其应用到类似的上下文和示例中。机器学习结合了神经科学、物理学、数学、统计学和生物学的概念,以使计算机能够通过建模进行学习。

学习方法的另一个重要方面,是计算复杂度。我们通常需要在非常大的数据集上使用这种方法,因此,具有高次多项式复杂性的算法可能会有问题。通常,复杂性被分成两个独立的部分;训练模型的复杂性和将训练好的算法应用于真实世界数据的复杂性。模型训练是一项不常发生的任务,通常在某种意义上是“离线”进行的,因此如果需要更长时间也没关系。然而,当将训练好的模型应用于真实世界的数据时,比如为了执行预测,事情需要移动得更快一点,因此低计算成本是至关重要的。

学习的类型

根据我们想要解决的问题和我们已经获得的数据,我们还需要确保选择一个合适的学习算法。机器学习有许多学习类型,可以在不同的环境中使用,根据需要提供不同性质的答案。这些是:

  • 监督 学习:在监督学习中,数据集包括标记的例子。换句话说,该集合包含每个示例的正确响应(称为目标)。目标是开发一个模型,该模型将特征向量作为输入,并输出预测的目标变量。
  • 无监督 学习:另一方面,在无监督学习中,数据集是一组未标记的例子。这种学习类型在我们想要执行聚类、降维或离群点检测时最有用。
  • 半监督 学习:当数据集包含有标签和无标签的例子时,我们可能需要应用半监督学习算法。
  • 强化 学习:当学习过程是“顺序的”时,这种类型的学习最适合。在强化学习中,当预测的答案是错误的时,算法通常会得到指示,但不会被告知如何纠正它。

要更全面地讨论机器学习环境中的监督、非监督和半监督学习,请务必阅读以下文章。

机器学习的现实应用

机器学习在应用于现实世界问题方面取得了巨大进步。这是因为不断增长的计算能力可以帮助机器解决人类需要几个世纪才能解决的问题。

**推荐引擎:**公司使用机器学习算法,以便根据用户过去可能购买的东西或类似用户购买的东西向用户提供推荐。

语音识别:此外,ML 模型可以在自然语言处理的背景下进行训练和使用,以处理人类语音并将其转换为书面格式(也称为语音到文本)。Siri、Alexa 和谷歌助手就是完美的例子。

计算机视觉:机器学习和人工智能的另一个热门领域是计算机视觉,它使计算机能够从数字图像和视频中提取信息。CV 的一些应用包括自动驾驶卡和医学成像。

自动化交易:通过分析可能影响股票价格的信息,ML 甚至可以用于优化股票投资组合和推动自动化高频交易。

客户服务:在线聊天机器人正在接管世界,取代了过去支持客户的传统人工代理。这些机器人通常能够回答常见问题,推荐产品,甚至代表客户执行某些操作。

最后的想法

在今天的文章中,我们介绍了机器学习,它无疑是过去几年中取得巨大进步的计算机科学领域之一。此外,我们讨论了机器如何能够学习以及存在的不同学习类型。最后,我们探索了机器学习和人工智能可以产生巨大影响的几个领域。

成为会员 阅读介质上的每一个故事。你的会员费直接支持我和你看的其他作家。

你可能也会喜欢

https://pub.towardsai.net/data-versioning-for-efficient-workflows-with-mlflow-and-lakefs-892df1f8e7d8

什么是元数据?

原文:https://towardsdatascience.com/what-is-metadata-800403c0767b?source=collection_archive---------12-----------------------

以及为什么你需要开始利用你的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

元数据—图片来自Castor的网站

我们越来越多地听到元数据及其对数据分析的重要性。虽然元数据听起来像一个花哨的词,但它指的是一个非常简单的概念。我们把“meta”这个词(以及其他)归功于古希腊人。Meta 的意思是“关于事物本身”。元笑话是关于笑话的笑话,元思考是关于思考的思考。在事物的逻辑延续中,元数据是关于数据的数据。这个数据的唯一目的是定义和描述它所链接的数据对象。例如,网页可能包括指定该页面用什么软件语言编写、使用什么工具创建它、该页面关于什么对象等的元数据。在我深入探讨元数据和元数据管理的重要性之前,让我们花点时间通过查看真实世界和数字世界中的几个元数据示例来了解这个主题。

让我们从一些元数据示例开始

在现实世界中,元数据无处不在。每当你打开一封电子邮件、阅读一本书或从亚马逊订购一些东西时,你都会遇到元数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

元数据图书—图片来自亚马逊

每本书都富含元数据。多亏了元数据,书籍可以被整齐地分类,使得潜在的用户可以很快找到它们。关于书籍的元数据包括:

  • 标题
  • 作者姓名
  • 发布者详细信息
  • 目录
  • 出版日期
  • 指数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片的元数据是照片的时间或地理位置

当您使用 iPhone 拍摄照片时,元数据会在照片创建时生成并存储。该元数据包括:

  • 照片拍摄的时间
  • 文件名
  • 用什么相机创建的文件
  • 格式
  • 地理定位

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

电子邮件的元数据是电子邮件发送的时间,例如来自 Castor 的图像

每次接收或发送电子邮件时,您都会遇到元数据。这些元数据允许对您邮箱中的电子邮件进行有效分类,并帮助您使用关键字快速找到特定的电子邮件。电子邮件的元数据通常包括:

  • 消息 ID
  • 发送电子邮件的日期和时间
  • 发件人和收件人的电子邮件地址
  • 主题

不同类型的元数据

为了清楚起见,不同类型的元数据被放在特定的类别中。不同类型的元数据如下:

描述性元数据:描述资源或文件信息的数据。它用于帮助发现和识别。描述性元数据包括标题、摘要、作者、关键字等元素。

结构元数据:告知数据对象结构的数据。它启发用户如何组织资源/文件。结构化元数据的一个例子是目录。目录显示了章节的页码,以及章节之间的相互关系。

管理元数据:帮助管理资源的技术信息。这可以是文件的创建日期、文件类型、权限等。管理元数据还与使用权和知识产权相关,提供给定资产的所有者、如何使用、由谁使用以及使用多长时间等信息。

处理元数据存储?

有两种方法可以处理数字元数据存储:

  • 数字元数据可以在内部存储在与数据相同的文件中。这种类型的存储称为嵌入式元数据。使用这种存储配置,无论数据到哪里,元数据都会随数据一起传送。这样做的好处是它创建了一致性,因为每次数据本身发生变化时,元数据也会发生变化。使用这种存储方法的问题是,你不能在一个地方管理所有的数字元数据,这就产生了冗余(它阻碍了标准化)。
  • 元数据也可以存储在原始数据库之外的元数据存储库中,通常是数据目录/数据字典。将您组织的元数据集中在一个地方可以实现更高效的搜索和管理,避免冗余问题。另一方面,这种存储方法增加了数字元数据和数据对象之间不一致的风险,因为一个方面的变化可能不会反映在另一个方面。

为什么应该投资元数据管理策略?

在人们的心目中,数字数据比元数据更重要。您可能没有意识到,元数据是释放数据价值的关键。

本周发生在我身上的一件不幸的事情提醒了我元数据的重要性。午饭后,我把装有车钥匙和其他贵重物品的包忘在了公园里。当我两个小时后回来时,包显然已经不见了。幸运的是,我投资了一个叫做磁贴的小装置,它可以随时定位我的车钥匙。我只需要打开“tile”应用程序就可以知道我的钥匙的位置。基本上,tile 让我可以访问我的车钥匙的元数据。这让我找到了钥匙,我很快就回去工作了。

元数据至关重要。我的车钥匙很珍贵,但是如果我不知道它们在哪里,它们对我来说就没用了。如果您的组织收集任何类型的数据,您也处于同样的情况。你可以有很棒的数据集,如果你不能在你的云数据仓库或其他地方找到它们,它们也完全没有用。

这也向您展示了投资元数据管理工具的重要性。我很高兴我有磁贴,自动生成和更新关于我的车钥匙的元数据。事实上,我很忙,不想浪费时间考虑我的各种设备和对象的位置,而不管它们有多重要。在一个理想的世界里:我不会花任何时间去想我的车钥匙,而是总是在我需要的时候找到它们。您的组织可能面临同样的数据问题。数字资产成倍增长,除了保持元数据的整洁记录,人们还有其他优先考虑的事情。当然,能够在需要的时候找到一个表是很好的,但是花费 100%的精力来跟踪云数据仓库中的每个数字资产肯定是不值得的。这时,投资能够自动收集数据集元数据的元数据管理工具就变得有意思了。‍

良好的元数据管理实践将如何改变您的生活?

此时您可能已经明白了:元数据是关键。尽管如此,培养关于数据对象的元数据将会以你无法想象的方式影响你的组织。元数据告诉你你有什么数据,它们来自哪里,它们意味着什么,它们与你的数据资产的其他部分有什么关系。这在四个方面帮助您的组织:数据发现和信任;数据治理、数据质量和成本管理/数据维护。

数据发现和信任

  • 我应该在哪里查找相关数据?
  • 这个数据重要吗?
  • 这个数据集代表什么?
  • 我该如何使用这些数据?

数据发现显然是良好的元数据管理策略的第一个受益者。拥有一个有组织的、集中的元数据存储库可以让您准确地知道您的数据存储在哪里以及谁可以访问它。每个表都有丰富的上下文,包括它包含的内容、谁将它导入公司、它与哪个仪表板和 KPI 相关,以及可以帮助数据科学家找到它的任何其他信息。简而言之,元数据让你的数据**可以被发现。**元数据存储库回答以下问题:

这些都是相当基本的,近乎荒谬的问题。可悲的现实是,大多数数据用户浪费大量时间试图回答这些问题。许多组织忽视了他们的元数据,导致数据分析师花费数小时在不同的位置寻找他们需要的数字资产。

一旦您的企业以标准化流程收集了元数据,通过利用数据发现工具的搜索功能,在您需要的时候找到您需要的数据将变得更加容易。还记得当你只记得照片拍摄的地点时,在你的 iPhone 上找到照片有多容易吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Iphone 按位置搜索功能—图片由 Louise de Leyritz 提供

我非常喜欢这个功能,因为我有超过 40,0 00 张照片存储在云中。当你收集完元数据后,你可以通过使用**关键词、**像谷歌搜索一样在一瞬间找到数字资产。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

元数据有助于对大量数据(来自 Castor 的图像)进行强大的搜索

与必须扫描系统中的每个数据源以寻找正确的数据资产相比,这为数据用户节省了大量时间。

元数据还使与相似或链接的对象能够与相似的对象配对,以帮助优化数字资产的使用。例如,元数据可以帮助您将数据库与从该数据库创建的仪表板配对。

数据安全/隐私/治理

如果您正在处理数据,您需要准备好处理安全性和合规性问题。这些事情常常让人觉得像一座大山一样难以处理。敏感数据和私人信息不应该落入坏人之手,但当您处理数千甚至数百万个数据集时,感觉几乎不可能控制事情。确保安全性和遵守 GDPR 等法律的关键是拥有可靠的数据治理战略。

数据治理是一组关于数据使用和数据安全的策略。创建这些策略是为了确定要应用于给定数据集的适当动作

  • 标记私人信息 (PII),这意味着你可以控制哪些用户可以访问这些信息。
  • 将数字资产置于上下文中,为如何合法使用信息提供清晰的定义。
  • 识别不应该保留的信息。出于监管目的,通常为用户记录指定到期日期。如果您保存的数据超过了这个日期,您将面临巨额罚款。维护良好的元数据有助于您跟踪数据是何时创建的,以及何时需要被处理。
  • 最后,元数据为法规遵从性建立了数字审计跟踪。维护良好的数据存储库有助于证明符合监管框架,如 GDPR。这是很有价值的:如果你不能证明合规,你会自动被当局视为不合规。这是你想要避免的事情,因为不遵守 GDPR 协议会带来可怕的后果。

在这里,元数据再次拯救了你的生命。它提供了在类别中识别、定义和分类数据的方法,以确保强大的数据治理。更特别的是,它允许你 to:‍

数据质量监控

高质量的数据是非常可取的,因为它使您的组织的资源更加可靠,增加了通过使用它们获得的商业利益。数据质量根据以下一组基本维度进行衡量:

  • **准确性:**这描述了“数据正确描述被描述的‘真实世界’对象的程度”
  • **完备性:**完备性是指所需数据在数据集中的程度。含有大量缺失值的数据集是不完整的。
  • **一致性:**如果数据集被复制到多个位置,那么它们的内容在所有实例中都必须保持一致。
  • **及时性:**这是指你的数据集是否足够新。

高质量的数据是非常可取的,因为它使您的组织的资源更加可靠,增加了通过使用它们获得的商业利益。数据质量根据以下一组基本维度进行衡量:

在投资一个昂贵的数据质量解决方案之前,看看你的元数据对数据质量有什么看法。如果您投资了元数据管理策略,数据用户在处置每项数字资产时应具备以下要素:

这已经让你的数据质量评估差得很远了。首先,你对数据的准确性有所了解。事实上,表格定义为您提供了有关数字资产内容的清晰信息,以及信息是如何收集的,由谁收集的。这使您可以快速检查信息是否反映了真实世界的事实,是否经过了准确的衡量。拥有一个集中的元数据存储库也支持数据一致性。最后,元数据告诉您上次刷新表的时间,从而告诉您数据是否是最新的。

成本管理和维护

最后,在优化数据库管理,尤其是数据存储时,元数据可以提供很好的帮助。不同的存储解决方案有不同的成本。例如,在云数据仓库中存储数据比在数据库中存储数据更昂贵。一般来说,访问数据库中的数字资产越容易,这种存储解决方案就越昂贵。基于元数据,您可以确定在您的业务中使用最多的表以及很少使用的表。这非常实用,因为它允许您将未使用的表移动到成本更低、更难查询的存储空间中。基于您的元数据,您可以创建规则,根据这些规则,在过去 30 天内未使用的数据将被立即移动到成本较低的存储桶中。元数据使您能够根据存储成本和使用情况准确确定每个数据集的成本。

一个好的元数据管理解决方案还可以帮助您更好地维护数据库。关于数字资产的元数据包括数据质量分数、特定时期内数据资产的问题数量等。因此,您可以根据元数据准确地知道应该将维护工作集中在哪些数据集上。如果某项数字资产在过去几天内停机了 10 次,您将确保有人尽快修复它。更一般地说,这有助于您对数据团队的行动进行优先级排序,确保其产生最大可能的影响和商业价值。

你需要元数据管理工具吗?

元数据很重要。你现在可能已经明白了。但是,还有一个问题:您能否手动记录系统中的所有文件,或者您是否需要投资一个元数据管理工具来支持您的记录工作?在决定是否投资一个元数据管理解决方案时,要考虑的最重要的方面是,它是否对您记录资源的方式和您收集元数据的方式有重要影响。事实上,您需要首先了解您是否有能力记录您的云数据仓库的内容。

现在您可能想知道:数据目录能提供什么样的帮助?从根本上说,元数据管理工具的价值在于它自动化了数据文档过程。这是什么意思?比方说,您在系统中记录一个特定的文件,用描述性的上下文和定义来丰富列。智能数据目录将将您对特定列的原始定义传播到您的云系统中具有相同名称的所有其他列。这意味着您在文档上花费的每一分钟都比使用手动过程记录数据资源产生更大的影响。如果数千个数据集包含一个同名的列,那么为一个列编写定义就相当于为数千个列编写定义。这极大地节省了时间和成本。

现在,您是否觉得自动化这个过程有趣取决于您的组织是企业还是小企业。

如果你是一个小企业,你不会处理太多的数据资源。在这种情况下,让某个人(或几个人)负责记录您公司的每个文件是可能的。手动维护数据目录以保持系统有序是一个可行的选择。如果这是你目前需要的,我们已经在商店这里有一个模板,我们解释如何有效地使用它。

在企业案例中,您的业务可能太大,无法手动记录数据内容和文件。记录成千上万的文件将花费大量的时间和人力资源。尤其是考虑到数据不是静态的。你的公司一直在收集数据。这意味着您需要雇用一个全职的数据文档团队,持续更新您的文件周围的元数据。就成本和时间而言,投资于自动化文档流程的解决方案通常更有效率,因为它可以让您的系统具有可见性。如果这是最适合您的业务模型的选项,请确保您选择的工具符合您公司的需求。我们在这里列出了各种选项

最后的话

大数据非常有价值,但元数据是让组织获得这一价值的关键。一个好的元数据管理策略将在四个方面帮助您的组织:数据发现、数据治理、数据质量和数据维护/成本管理。手动维护一个集中的元数据存储库是很累人的,当您拥有的数据集数量开始呈指数级增长时,这很快就会变得不可持续。谢天谢地,有很多工具可供您选择。

关于我们

我们写了利用数据资产时涉及的所有过程:从现代数据栈到数据团队组成,再到数据治理。我们的博客涵盖了从数据中创造有形价值的技术和非技术层面。如果您是一名数据领导者,并且希望更深入地讨论这些主题,请加入我们为此创建的社区

在 Castor,我们正在开发一个数据文档工具 Figma,Slack generation。或者对 Fivetran,Looker,Snowflake,DBT 的狂热爱好者来说是数据方面的。我们将产品目录设计得简单易用、令人愉悦且友好。

想去看看吗?联系我们,我们将向您展示一个演示。

原载于https://www.castordoc.com

什么是公制?

原文:https://towardsdatascience.com/what-is-metric-74b0bf6e862?source=collection_archive---------40-----------------------

了解数据科学家的衡量标准

作为一名数据科学家,您可能会遇到不同种类的距离度量。在 NLP 中,你可以使用余弦距离度量来得到相似的单词;在计算机视觉中,你可以使用 L2 距离度量来获得相似的图像;协同过滤也有内积度量。我们经常使用“公制”这个术语,但它是什么意思呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

椅子的笛卡尔平面(照片由 Unsplash 上的森林西蒙拍摄)

度量定义

在开始定义之前,让我们先弄清楚这些术语。通常,“公制”意味着距离,这个术语我们在日常生活中经常使用,例如:

  • 雅加达和万隆的距离是多少?
  • 开车时保持安全距离。

度量的正确定义最初来自数学。一开始学习它可能会令人生畏,但实际上这是很自然的,它反映了我们所知道的距离这个术语。毕竟,数学家不会凭空定义一些东西。

首先,让我们将 d(x,y) 定义为 xy 之间的度量(或距离)。就当 xy 是任意的点。作为一个指标,有 4 个条件需要满足。大家一个一个讨论吧。请注意,在本文中,我将互换使用术语度量和距离。

1.非否定性

在数学中,这个条件被定义为:

对于所有的 x 和 y,d(x,y) ≥ 0。

顾名思义,这个条件非常明显。度量不能为负。类似于距离,很容易理解为什么我们应该有这个度量条件,因为我们毕竟不能有负的距离。两个城市之间的距离从来都不是负数!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

距离总是非负的(由位云去飞溅上拍摄)

其实这个条件不是必须的。如果其他三个条件都满足,这个条件也满足。如果你想了解更多,你可以打开这个维基

2.不可分辨事物的同一性

在数学中,这个条件被定义为:

如果 d(x,y) = 0,那么 x = y。

不可分辨的意思是‘无法分辨’。这也是很明显的。如果两个城市之间的距离是 0,那么他们一定是同一个城市,不是吗?除非有某种虫洞或者心灵传输。

3.对称

在数学中,这个条件被定义为:

对于所有的 x 和 y,d(x,y) = d(y,x)。

换句话说,x 和 y 之间的距离与 y 和 x 之间的距离相同。作为一个移动距离,这不一定是正确的。从城市 A 到 B 的距离可能不同于从城市 B 到 A 的距离,这取决于道路或城市布局。然而,如果我们用坐标测量,或者用直升机测量,它们是一样的。

4.三角形不等式

在数学中,这个条件被定义为:

d(x,y) ≤ d(x,z) + d(y,z),对于所有的 x,y,z。

最后一个条件不如前三个条件明显。先来讨论一下为什么叫三角不等式。每个三角形都有这个性质:

取三角形的任意两条边;另一边的长度小于这两边的总和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果 c > a + b ,你就不能做出三角形

在上面的等式中,我们有三个点( xyz ),这三个点构成一个三角形。所以才有关系。

接下来,三角形不等式在我们的度量定义中意味着什么?让我们用一个例子来说明。在一张纸上画两个点,分别叫做 xy 。如果你需要测量这两点之间的距离,你会怎么做?你可以画一条从 x 到 y 的线段,然后测量线段的长度。听起来很明显,不是吗?但是,我们为什么不画另一个点(称为点 z ),然后画两条线段(从 xz ,以及 zy )并测量长度呢?原因很简单:

该距离应计算为两点之间的最短路径。

你不绕道算距离,明显更长。因此,三角形不等式条件意味着应该以最短的方式计算度量。

度量示例

让我们讨论一些距离示例,以及它是否满足“真实”度量的定义。

1.欧几里得距离

欧几里德距离(也称为 L2 距离)是你在日常生活中常用的距离定义,例如测量我上面讨论的距离点。它显然满足“真正的”度量定义。

2.余弦距离

余弦距离(或 1 - 余弦相似度 )是你在处理向量时可能遇到的距离。不幸的是,余弦距离不是一个“真正的”度量。首先,它不满足不可分辨条件。【1,1】**【2,2】的余弦距离为 0,而【1,1】≦【2,2】

而且,它不满足三角形不等式。假设 d 为余弦距离 x = [1,0】,y = [0,1],z = [1,1] 。很容易看出 d(x,y) = 1d(x,z) = d(y,z) ~ 0.3 ,所以 d(x,y) > d(x,z) + d(y,z) 不满足三角形不等式。这就是为什么余弦距离实际上没有任何意义:如果你绕道(到 z 的距离更短,而不是直接从 xy

3.内积度量

内积(或点积)常用于协同过滤模型。这个概念类似于余弦相似度,但没有对向量进行归一化。事实上,它甚至不是一个“距离”,因为当它更远时,它在减少,相比之下,对距离的普遍理解是:当它更远时,它在增加。还有一种方法可以将距离定义为负内积,即简单地将内积乘以 -1 。它作为一个距离更有意义,但它只满足对称条件,所以它肯定不是一个度量。

欧几里德距离与余弦距离

建议选择欧几里德距离作为距离度量,因为它是“真正的”度量,而不是余弦距离。通常,余弦距离是优选的,因为它的范围从-1 到 1,相比之下,欧几里得距离是无限的,所以在余弦距离中设置阈值(比如 0.7)更容易。其实你可以通过探索数据中的距离范围,用欧氏距离找到阈值,类似余弦距离。

外卖食品

总之,距离度量是解决问题的工具。如果你需要用余弦距离和内积,那就随便用吧。毕竟,数据科学的目标是解决问题,你可以自由选择你的工具。我希望这篇文章能帮助你理解工具☺

什么是 ML 可观测性?

原文:https://towardsdatascience.com/what-is-ml-observability-29e85e701688?source=collection_archive---------10-----------------------

行业笔记

在实验室中构建机器学习概念证明与在现实世界中制作模型截然不同。

随着越来越多的团队转向机器学习来简化他们的业务或将以前不切实际的技术变成现实,人们对能够帮助将模型从研究实验室带到客户手中的工具和人员的兴趣越来越大。谷歌建立了 TFX,脸书建立了 FBLearner,优步建立了米开朗基罗,Airbnb 建立了 Bighead,这些系统允许这些时候扩大他们的 MLOps。

在这些大型科技公司之外,事实是,在实验室中构建机器学习概念证明与在现实世界中制作模型截然不同。让我们先快速看一下在将模型应用于现实世界问题时可能会出错的一些事情。

还能出什么差错?

  1. 训练发球偏斜

在部署模型时,您的模型很有可能不如在离线验证时执行得好。这些生产移交并不总是进展顺利,这通常被称为培训/服务偏差。

一个潜在的罪魁祸首是你的模型被训练的数据在统计上不同于你在生产中看到的数据。另一种可能是您的培训环境和生产环境之间的特性转换代码不一致。这可能比人们想象的更常见。通常,包含特性转换代码的笔记本在没有太多版本控制的情况下被传递和更改,这可能会导致混淆到底哪种类型的转换被用来为模型创建特性。如果创建特征的方式在培训和生产环境之间不一致,那么模型的性能会在一开始就受到很大的影响。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

训练发球偏斜。图片作者。

2。改变数据分布

除了训练数据、生产数据和要素转换之间的这种潜在差异之外,您的模型所暴露的数据分布也可能会随着时间的推移而发生变化,这通常称为数据漂移或要素漂移。这种漂移可能是渐进的,也可能在一夜之间发生,并导致模型性能下降。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改变分布。图片作者。

3。杂乱的数据

另一件需要注意的事情是数据源的保真度。事物不会像代码一样一成不变。你在处理数据。在研究实验室中,通常要花费数千个小时来创建高质量的数据集,以最少的噪音和准确的标签。在现实世界中,你通常没有这样的质量或新鲜度保证。如果您依赖外部数据源,您可能会受到其可靠性的影响。

查看这篇文章,了解 ML 车型的更多故障模式

可观察性有什么帮助?

ML 可观察性是在模型开发周期的所有阶段获得对模型性能的深入理解的实践:从构建模型开始,到部署模型,一直到产品化。

可观察性是部署模型后盲目飞行的团队和能够快速迭代和改进他们的模型的团队之间的关键区别。

  1. 检测时间

ML 可观察性的第一个关键目标是及时地向你提出这些问题。你可以解决一个问题,直到你知道它,你不希望你的客户遭受几天或几周的痛苦,直到你意识到有事情发生。因此,一个好的 ML 可观测性解决方案有助于减少检测模型中的问题所需的时间。

这在不同的上下文中可能有不同的意思。如果您正在构建您的模型,一个好的可观察性工具可能帮助模型构建者更快地发现他们的模型的问题,促进一个更紧密的迭代循环;然而,在生产场景的上下文中,ML 可观察性工具可以监控关键的性能度量,这些度量可以在出现问题时通知模型所有者。

2。解决问题的时间

尽管检测问题是第一步,但这并不是 ML 可观察性的终点。一旦检测到问题,可观测性工具需要促进问题的解决。一个好的可观察性工具的关键标志是一个团队能多快找到解决问题的根本原因。

回到我们之前讨论过的,模型的性能有多种回归方式。一个好的 ML 可观测性解决方案需要引导模型所有者了解发生变化的输入数据分布、特征变换或模型预测预期,并提供解决方案。

例如,如果您发现模型的输入特征随着时间的推移而不断漂移,并导致模型错误预测一组特定的示例,ML 可观察性工具会通知您,推荐一种方法来增加训练集,并提示您重新训练模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ML 工程师生命周期。图片作者。

如何实现 ML 可观测性?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评估商店。图片作者。

现在你可能认为 ML 可观察性听起来很棒,但是我的团队实际上是如何实现的呢?ML 可观测性可以通过应用评估库来实现。评估库的工作是帮助您验证模型,调试模型预测的问题,显示表现最差的数据,并为您提供有关如何以及何时重新训练模型的建议。

为了更深入地了解评估库的作用,让我们探索一下评估库如何适应 ML 模型生命周期的每一部分。

启动前验证

在模型构建的训练和验证阶段,评估存储在跟踪训练数据中每个定义部分的模型性能方面起着关键作用。当模型的性能对于某个特定部分发生显著变化时,或者从测试结果中可能出现新的感兴趣的数据部分时,评估存储的工作就是通知模型构建者。此外,在培训和验证期间,评估存储应该检测输入数据是否与生产数据有显著差异,以帮助避免我们之前提到的培训-生产偏差问题。

转到模型部署,评估库还可以帮助您选择最适合推广到生产的模型。通过跟踪模型在生产中对一组候选模型所做的预测,评估存储可以编译关于哪个模型在各种数据切片中表现最佳的结果。

监控

将模型部署到生产环境中时,评估存储会跟踪所有输入要素和输出预测,以便在这些分布发生显著变化时发出警报。最重要的是,评估商店需要跟踪生产中每个输入示例的预测和基本事实。

在一些模型应用程序中,在模型做出预测后,地面真相立即可用——想想搜索结果,用户点击最相关的链接,你现在就知道你放在顶部的链接是否真的与用户最相关。

然而,在其他情况下,地面真相可能被延迟或完全丢失。在这些更棘手的场景中,评估存储的工作是帮助团队跟踪与模型性能相关的代理指标,并在这些代理指标的分布发生显著变化时向模型所有者提供警报。

根本原因

在生产中检测到模型的问题后,评估存储可以显示输入数据、要素、基本事实/代理指标中的哪些关键分布导致了模型性能的变化。由于评估存储一直跟踪这个模型元数据,它可以检测每个分布随时间的漂移,并找出最大的影响因素。

检测模型回归并将其分类为故障模式的能力有助于为模型所有者应该如何修复问题提供指导。例如,假设您有一个模型,该模型试图预测向用户推荐哪个电视节目,以最大化用户观看该节目的可能性。在你不知情的情况下,已经有大量年轻用户开始使用你的产品,他们的喜好并没有很好的体现在训练数据中。

评估商店将能够检测和显示模型性能的显著变化,并指出输入数据和要素分布的变化。然后,您可以深入研究哪些特征发生了最大的变化,并看到“年龄”特征的分布在模型回归时已经向更年轻的一侧转移。

此时,您可以使用您的评估商店来查找这些新的年轻用户的示例,用这些示例增加您的训练集,并重新训练您的模型以更好地考虑这些新用户。

改进型号

随着数据集变得越来越大,以支持更大的模型,问题空间变宽,评估存储的一个关键作用是显示模型表现不佳的数据切片。了解到存在哪些机会来提高模型的性能后,模型构建者可以扩充他们的训练集,添加新功能,重新训练他们的模型,或者带着这些新知识回到绘图板。

结论

总之,通过应用评估库实现的 ML 可观测性可以在验证、监控、故障排除和改进模型的整个过程中帮助您的团队。通过自省模型在一段时间内的表现,ML observability 可以帮助您的团队识别训练数据中的差距,找出模型表现不佳的示例,并排比较模型表现,验证模型,并识别生产中的问题。停止盲目飞行,让你的 ML 努力更上一层楼。

联系我们

如果这个博客引起了你的注意,并且你渴望了解更多关于机器学习可观察性模型监控,请查看我们其他的博客ML 监控上的资源!如果您有兴趣加入一个有趣的 rockstar 工程团队,帮助模型成功生产,请随时联系我们,并在此找到我们的空缺职位!

什么是 MLOps,为什么我们应该关注它

原文:https://towardsdatascience.com/what-is-mlops-and-why-we-should-care-9b2d79a29e75?source=collection_archive---------19-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

两周前,我在 LinkedIn 上看到了吴博士的一篇帖子。他呼吁人们观看他最近的一个关于 MLOps 主题的演示视频,并征求意见和传播。我忙着期末考试,压轴项目,还有关于毕业典礼的杂七杂八的东西,所以直到今天才看。

当我只看到视频的一半时,我意识到这个话题并不是我们日常生活中在网上看到的六千个无聊话题之一。这是一件值得与朋友分享的事情,应该比现在更多地在社区和学校进行讨论。

我们都遇到的瓶颈

人工智能在 20 世纪 50 年代推出,大数据在 20 世纪 90 年代推出,但它们直到过去十年才变得如此流行。直到今天,仍然有许多企业很难将这些技术集成到他们的运营中。

对于个人来说,我会赌 100 美元,在你过去的机器学习实践中,或者在你认识的人的项目中,你都遇到过这个问题:无论你多么努力地尝试,或者你训练你的模型多少次迭代,你的模型的准确性都会在性能远离人类工作的某个地方停止增加。

我们可能都同意,这些困境很有可能发生,因为企业或个人无法捕捉足够的数据来满足他们的需求,或者可用的算法不够先进。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

然而,今天,吴恩达指出,这个问题有另一个解决方案:从大数据转移到干净的数据。下面是他举的一个例子来说明他的想法。在图中,我们可以看到,如果我们当前有 500 个训练示例,并且希望达到 0.6 的准确度分数,我们可以清理数据(提高标签一致性)或者将数据大小增加两倍。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者提供的图片(模拟自吴恩达的演示)

他还声称,对于某些类型的分析,仅仅增加数据集的大小不会有多大帮助,例如语音识别。你必须确定哪个因素阻碍了模型更好的性能,比如背景中的汽车声。

我们必须注意,对于小数据集,标签一致性更重要,因为强大的算法将有能力平均掉给定的足够大的数据集的损失。如果我们从不同的角度来看这句话,我们也可以预计,如果数据量少的企业能够实现标签一致性并找到适当的算法,他们将有机会在运营中利用人工智能。

Andrew 还指出,大数据问题中存在罕见事件的长尾(网络搜索、无人驾驶汽车、推荐系统),这也是小数据问题。

MLOps

在演讲中,Andrew 提到,人们通常开玩笑说,我们倾向于在机器学习项目中花费 80%的时间来搜索和准备数据,然而人们只关注 20%的训练和建模时间。换句话说,假设我们已经从培训过程中获得了最大的收益,我们仍然有足够的空间(80%)去努力和提高。

然而,当他浏览人工智能社区的最新学术论文时,99%的论文都是针对建模的研究,只有 1%是针对数据的。他澄清说,研究增强建模技术是一件伟大的事情,但我们也应该认识到数据质量的重要性,并为此做出贡献。

数据是人工智能的食物

因此,他推广了 MLOps 的理念,这有助于确保始终如一的高质量数据。他用一个 ML 项目的生命周期图来说明这个想法。我对原始图表做了一点变换,使其更具可读性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本上,MLOps 团队将不断检查流程,并分析在培训和部署阶段提高标签/数据一致性和质量的可能性。它最重要的任务是确保在 ML 项目生命周期的所有阶段始终如一的高质量数据。

下面是一个例子,说明他让他的团队如何使数据质量系统化(可重复且可靠):

  • 让两个独立的贴标机给一个图像样本贴标签
  • 衡量贴标机之间的一致性,以发现他们不同意的地方
  • 对于贴标签者意见不一致的班级,修改标签说明,直到它们变得一致

外卖食品

首先,从以模型为中心到以数据为中心:

以模型为中心的视图:

  • 尽可能收集数据,开发一个足够好的模型来处理数据中的噪音
  • 保持数据固定,并迭代改进代码/模型

以数据为中心的视图:

  • 数据的一致性至关重要。使用工具提高数据质量;这将允许多个模型做得很好
  • 保持代码不变,迭代改进数据

其次,当前的神经网络模型可能会有偏差。在小数据集上很容易获得完美的训练分数,但方差会增加,这意味着发生了过拟合。这就是为什么我们需要干净的数据而不是嘈杂的数据。

第三,重要前沿:MLOps 工具,让以数据为中心的 AI 成为一个高效、系统的过程。

第四,什么是好数据:

  • 定义一致(标签 y 的定义明确)
  • 重要案例的覆盖面(输入 x 的良好覆盖面)
  • 及时反馈生产数据(分布包括数据漂移和概念漂移)
  • 大小合适

他还在演示结束时做了一个现场调查:你认为谁会加入 MLOps 团队?与会者似乎更喜欢 ML 工程师和领域专家来做这项工作。我非常赞同为特定项目引入领域专家的必要性。如果一个人能处理所有的就好了,但这不现实。领域专家可能缺乏 ML 知识,但他们可能是最了解数据的人。

这是来自深度学习的视频。youtube 上的 AI,将花费您一个小时来观看:

请随时与我联系LinkedIn

什么是 MLOps——入门必备的一切

原文:https://towardsdatascience.com/what-is-mlops-everything-you-must-know-to-get-started-523f2d0b8bd8?source=collection_archive---------2-----------------------

ML 系统开发生命周期和 MLOps 需求的完整演练

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ML 系统工程及其利益相关者的操作—图片由作者生成

直到最近,我们都在学习软件开发生命周期(SDLC ),以及它是如何从需求获取→设计→开发→测试→部署→一直到维护的。我们过去和现在都在研究软件开发的瀑布模型、迭代模型和敏捷模型。

现在,我们正处于一个阶段,几乎所有其他组织都在试图将 AI/ML 融入他们的产品。构建 ML 系统的新需求增加/改革了 SDLC 的一些原则,从而产生了一个新的工程学科,称为 MLOps。

MLOps——一个新名词出现了,它引起了人们的热议,并催生了新的工作简介。MLOps 是机器学习操作的缩写,也称为 ModelOps。

在这里我们将讨论:

  • 什么是 MLOps,
  • 它解决了哪些关键挑战,以及
  • 它都由什么组成?
  • 一个人必须瞄准什么样的技能和个人资料组合,以及如何开始?

当我展开每一部分时,请继续阅读。

在 Google trends 上查找它会告诉你这是一个相对较新的学科,因为越来越多的组织正试图将 ML 系统集成到他们的产品和平台中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者生成的图像

定义

我是这样定义的:

它是一门工程学科,旨在统一 ML 系统开发(dev)和 ML 系统部署(ops ),以标准化和简化生产中高性能模型的持续交付。

为什么是 MLOps?

直到最近,我们还在处理可管理的数据量和小规模的极少数模型。现在形势发生了转变,我们正在将决策自动化嵌入到广泛的应用中,这产生了许多来自构建和部署基于 ML 的系统的技术挑战。

为了理解 MLOps,我们必须首先理解 ML 系统的生命周期。生命周期涉及数据驱动组织的几个不同团队。从开始到结束,以下团队插话:

  • 业务开发或产品团队 —用 KPI 定义业务目标
  • 数据工程 —数据采集和准备。
  • 数据科学 —构建 ML 解决方案和开发模型。
  • IT 或 DevOps —完成部署设置,与科学家一起监控。

这是 ML 生命周期的一个非常简单的表示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由作者生成的图像

Google 的团队已经对构建基于 ML 的系统所带来的技术挑战进行了大量的研究。一篇关于 ML 系统中隐藏的技术债务的 NeurIPS 论文向你展示了开发模型只是整个过程中的一小部分。许多其他流程、配置和工具将集成到该系统中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者生成—灵感来自https://papers . nips . cc/paper/2015/file/86 df 7 dcfd 896 fcaf 2674 f 757 a 2463 EBA-paper . pdf

为了简化整个系统,我们有了新的机器学习工程文化。该系统涉及每个人,从具有最低技术技能的高层管理人员到数据科学家,再到开发人员和 ML 工程师。

MLOps 应对的主要挑战

大规模管理这样的系统并不是一件容易的事情,许多瓶颈都需要解决。以下是团队提出的主要挑战:

  • 擅长开发和部署可扩展 web 应用程序的数据科学家非常缺乏。最近市场上出现了一种新的 ML 工程师,旨在满足这种需求。这是数据科学和 DevOps 的交汇点。
  • 在模型中反映不断变化的业务目标—存在许多依赖关系,数据不断变化,维护模型的性能标准,并确保 AI 治理。很难跟上持续的模型培训和不断发展的业务目标。
  • 技术和业务团队之间的沟通差距,他们很难找到共同语言进行协作。最常见的是,这种差距成为大项目失败的原因。
  • 风险评估— 围绕此类 ML/DL 系统的黑箱性质,有很多争论。模型往往会偏离它们最初的目标。评估此类故障的风险/成本是一个非常重要且细致的步骤。
    例如,与标记一个无辜的人进行欺诈、冻结其账户并拒绝其贷款申请相比,YouTube 上不准确的视频推荐的成本要低得多。

主要阶段—掌握 MLOps 需要什么

至此,我已经对系统的瓶颈以及 MLOps 如何解决这些问题给出了很多见解。你需要瞄准的技能可以从这些挑战中获得。

以下是你需要关注的关键技能:

1。从业务目标出发构建 ML 问题

机器学习系统开发通常始于商业目标或目的。它可以是一个简单的目标,将欺诈交易的百分比降低到 0.5%以下,或者可以是建立一个系统来检测皮肤科医生标记的图像中的皮肤癌。

这些目标通常有特定的性能度量、技术需求、项目预算和 KPI(关键性能指标),它们驱动着对部署模型的监控过程。

2.架构 ML 和问题的数据解决方案

目标明确转化为 ML 问题后。下一步是开始搜索合适的输入数据以及针对该类数据尝试的模型类型。

搜索数据是最费力的任务之一。这是一个包含多项任务的过程:

  • 你需要寻找任何可用的相关数据集,
  • 检查数据及其来源的可信度。
  • 数据源是否符合 GDPR 等法规?
  • 如何使数据集可访问?
  • 源的类型是什么—静态(文件)还是实时流(传感器)?
  • 要使用多少个源?
  • 一旦模型被部署到生产环境中,如何构建一个可以驱动训练和优化的数据管道?
  • 所有的云服务都要使用什么?

3.数据准备和处理——数据工程的一部分。

数据准备包括特征工程、清理(格式化、检查异常值、插补、重新平衡等)等任务,然后选择有助于基本问题输出的特征集。

一个完整的管道将被设计,然后编码,以产生干净和兼容的数据,以提供给模型开发的下一个阶段。

部署这种管道的一个重要部分是选择云服务和架构的正确组合,这种组合是高性能和经济高效的。例如,如果您有大量的数据移动和大量的数据要存储,您可以使用 AWS S3 和 AWS Glue 构建数据湖。

您可能想练习构建一些不同种类的管道(批处理与流),并尝试在云上部署这些管道。

4.模型训练和实验—数据科学

一旦你的数据准备好了,你就可以进入训练你的 ML 模型的下一步。现在,训练的初始阶段是用一堆不同类型的模型进行迭代。你将使用几个定量的方法来缩小到最佳的解决方案,比如准确性、精确度、召回率等,你也可以使用模型的定性分析来解释驱动模型的数学,或者简单地说就是模型的可解释性。

我有一个完整的任务列表,你可以在训练 ML 模型时阅读:

现在,您将使用不同类型的数据和参数运行大量实验。数据科学家在训练模型时面临的另一个挑战是再现性。这可以通过版本化您的模型和数据来解决。

您可以向 ML 系统的所有组件(主要是数据和模型)添加版本控制以及参数。

随着开源工具如https://dvc.org/CML的发展,这现在很容易实现。****

其他任务包括:

  • 通过为模型定型编写单元测试来测试模型。
  • 对照基线、更简单的模型以及不同的维度检查模型。
  • 使用分布式系统、硬件加速器和可扩展分析来扩展模型训练。

5.构建和自动化 ML 管道

建造 ML 管道时应牢记以下任务:

  • 确定系统需求—参数、计算需求、触发因素。
  • 选择合适的云架构—混合云或多云。
  • 构建培训和测试管道。
  • 跟踪和审核管道运行。
  • 执行数据验证。

6.将模型部署到生产系统

部署 ML 模型主要有两种方式:

  • 静态部署或嵌入式模型是将模型打包到可安装的应用程序软件中,然后进行部署。例如,提供请求批量评分的应用程序。
  • 动态部署——使用 FastAPI 或 Flask 等 web 框架部署模型,并作为响应用户请求的 API 端点提供。

在动态部署中,您可以使用不同的方法:

  • 在服务器(虚拟机)上部署
  • 在容器中部署
  • 无服务器部署
  • 模型流——与 REST APIs 不同,所有的模型和应用程序代码都在一个流处理引擎上注册,比如 Apache Spark、Apache Storm 和 Apache Flink。

以下是一些注意事项:

  • 确保符合适当的文件和测试分数。
  • 重新验证模型的准确性。
  • 执行可解释性检查。
  • 确保满足所有治理要求。
  • 检查任何数据工件的质量
  • 负载测试—计算资源使用情况。

7.监控、优化和维护模型

一个组织需要关注模型在生产中的表现,但是要确保良好和公平的治理。这里的治理意味着放置控制措施,以确保模型向受其影响的所有涉众、员工和用户交付它们的责任。

作为该阶段的一部分,我们需要数据科学家和 DevOps 工程师通过执行以下任务来维护整个生产系统:

  • 跟踪模型预测的性能下降和业务质量。
  • 设置日志记录策略并建立持续评估指标。
  • 排除系统故障和引入偏差。
  • 在生产中部署的培训和服务管道中调整模型性能。

进一步推荐阅读…

这一切都与 MLOps 有关,它不是一份工作简介,而是由几个利益相关方组成的生态系统。我相信,如果你是在 ML 和软件工程(DevOps)交叉领域工作的人,你会非常适合寻找能够端到端处理这种系统的人的初创公司和中型组织。

ML 工程师是服务于这个最佳位置的职位,也是有抱负的候选人应该瞄准的目标。以下是一些您可以参考的资源:

****https://cloud.google.com/certification/machine-learning-engineer https://aws.amazon.com/certification/certified-machine-learning-specialty/?ch=sec&sec=rmg&d=1

你也可以观看这个博客的视频版本:

更新:我联系了德米特里·彼得罗夫,就这个话题进行了进一步的讨论,你可以在这里收听(或观看)我们的对话:

后续步骤

我计划开发一系列关于使用谷歌云或 AWS 构建端到端 ML 系统的教程和视频。订阅我的简讯了解更多更新。

✨公告—关于构建生产就绪型 ML Pipelines✨的群组课程

你好!我正在考虑推出一个为期 3 周的关于建立大规模生产流水线的队列课程。我将从测试组开始,这样我可以完善材料。测试版将是 800 美元,比最终价格有很大的折扣。

我(和我的团队)将现场授课,分享我们学到的关于使用谷歌的 TensorFlow Extended、Apache Airflow、Kubeflow 和 T2 的谷歌云平台等工具构建强大的 ML 管道的一切。这是一个技术栈,为诸如 #Spotify#Airbnb#twitter 等应用提供支持。

如果您有兴趣加入,请填写这张表格:

目标:

目标是加速你早期的 ML 工程生涯。

价值

学完这门课程,你会成为一名更自信、更有韧性的 ML 工程师。这是我希望在投身 ML 工程时就有的课程。

您将学到的内容:

我们将一起解开将笔记本电脑模型转移到生产环境所需的 ML 管道的每个单独组件(如信息图所示)。

你将通过做项目来学习。

材料和教学:

  • 研讨会促进主动学习和动手操作,而不是被动的讲座。
  • 与同龄人一起学习——Zoom 分组讨论小组、积极参与的 slack 社区和小组项目。
  • 一门应用课程,提供学习指南、抽认卡和 ama。

谁应该报名

本课程是为那些已经在大规模训练 ML 模型,现在希望学习构建完整 ML 管道的人而设计的。对于转变为更具实践性的工程角色的数据科学家或新的 ML 工程师<2 years into their career.

Hit me up!

My DMs are open for queries. Also, if you found this useful and would love to see more of it, connect with me on TwitterLinkedIn 。此外,请订阅我的频道了解更多关于数据科学的内容。

您可以订阅我的每周数据科学简讯,我会将说明性教程、实用项目想法和实时培训课程直接发送到您的收件箱。****

什么是自然语言处理(NLP),为什么它对你很重要?

原文:https://towardsdatascience.com/what-is-natural-language-processing-nlp-and-why-does-it-matter-to-you-3cc4fb003940?source=collection_archive---------22-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

JESHOOTS.COMUnsplash 上拍照

自然语言处理,也称为 NLP,允许机器理解人类通过文本或语音说出和写下的短语的含义。

自然语言处理(NLP)是人工智能(AI)的一个子领域,研究机器理解人类语言的能力和局限性。

NLP 的主要目的是为计算机提供理解和编写文本的能力。

“理解”文本意味着识别上下文,执行句法、语义、词汇和形态分析,创建摘要,提取信息,解释意义,分析感觉,甚至从处理过的文本中学习概念。但是让我们从一些定义开始,请…

什么是自然语言?

虽然题目需要中级的语言学和技术知识,但是自然语言的定义相当简单。这是人类交流的纯粹方式。语言是自然语言的一个很好的例子。

诚然,计算机习惯处理的语言,如 XML、SQL 和 PHP,具有复杂性。然而,我们交流的方式,以及所有的语法规则和歧义,克服了这个困难。

了解了这一点,接下来的挑战就是将这两种交流方式联系起来,这样两者就能在紧密自然的互动中相互理解。

什么是自然语言处理?

自然语言处理是计算机如何处理自然语言,并开始理解人类语言的含义。

在这种情况下,术语“处理”意味着分析和理解。也就是说,它是关于机器处理我们说话方式的能力,克服我们的拼写错误、歧义、缩写、俚语和口语表达。

例如,当我们说“穿上你的靴子”,我们的意思是“穿上你的鞋子,在这种情况下,就是一只靴子。”然而,对于机器来说,解析这个时间段并将动词从冠词和名词中分离出来是一项复杂的任务。

在这种情况下,值得记住的是,即使计算机可以进行这种理解,模糊仍然是一种逆境。毕竟“穿上靴子”和“放上糖”看起来很像,但语义完全不同。

这就是为什么自然语言处理和语义语言处理的结合对这个场景如此重要。尤其是客服。

它是如何工作的?

预处理

预处理,集中数据并帮助机器更好地理解它,是至关重要的。

规范化是一个过程,包括标记化、删除标记和特殊字符,以及将大写字母改为小写字母。每个单词都被识别为一个标记,每个句子都被如此标记。这开始组织文本。

删除停用词 会删除重复出现的单词,如“The”、“that”、“what”和“of”,因为一般来说,它们与模型的构建无关。这些删除应该只在停用词不必要时发生。

还需要删除数字和伴随的符号(例如,“ 、”“ U S 、”“US ”“US、”“km”、“kg”)。

使用拼写检查器来处理错别字、缩写和非正式词汇是很常见的。

词干化过程将这个词简化为它的偏旁特征,并源于它的格言。

处理

有七个处理层次:语音、形态学、词汇、句法、语义、言语和语用。

当机器必须理解口语时,音韵学识别并解释组成单词的声音。

形态学关注单词的组成和性质,形态学,将它们分成形态学(意思是构成单词结尾的词根、词缀、话题和主题元音的更小单位)。同时,句法过程分析句子的构成和语言中允许的结构规范。

词典分析字符行的输入(像程序的源代码)。它产生一系列词汇符号(词汇记号)。它抓住了单词的意思。

语义分析关注短语的含义。提取句法结构的含义。而讲话验证了课文的整体意思。

最后,语用方法解释从文本中提取的概念,检查语义分析的含义是否正确,并定义不清楚的含义。

理解人类的挑战

人工智能背后的关键元素是科幻片:自然语言处理。这项技术已经变得越来越受欢迎,对于让机器能够以我们说话和写作的确切方式理解人是至关重要的。

全球每天产生超过 250 万条新数据。大部分数据是非结构化的。

尽管有许多使用的可能性,但由于分析的复杂性,这些数据没有得到充分利用。得出的结论是,公司只使用了产生的数据的 8%。

数据中断的一个主要原因是机器尚未理解的自然语言中的所谓文本。示例包括博客文本、社交网络出版物和电子邮件文本。

在最多样化的数字平台上,这种类型的文本的产量每天都在增加,这种情况对公司来说是一个千载难逢的机会,即数字技术更先进的公司。

这比你认为你能理解的文本要复杂得多。计算机必须能够识别上下文,进行句法、形态、语义和词汇分析,生成摘要,翻译成其他语言,吸收信息,解释感觉和感觉,以及学习。

自然语言处理给企业带来的好处?

当你给智能手机写消息时会发生什么?从你插入第一个字母的那一刻起,你想写的单词是否就像变魔术一样出现?这是一个自然语言处理能给我们人类带来什么的实际而典型的例子。

这是我们认为理所当然的事情,我们不会用任何东西来交换。我们使用智能手机的这一功能时,几乎没有意识到这一点。这是自然语言处理如此必要的众多原因之一!

正是这种重要性和与 NLP 相关的简化文化引起了企业的注意。作为公司数字化转型的顾问,我已经确定了 NLP 对企业的一些好处和益处。

区别

对我来说最重要的事情之一。企业因其差异化而脱颖而出。使用自然语言处理,加上一点创造性,再加上正确的策略,可以有效地导致突出的行动。

个性化护理

如今,除了日益数字化的习惯之外,还有更多要求更高、更不耐烦的客户。

客户希望当场解决他们的问题。他们不承认在客户支持表格或求助热线上浪费时间,在大多数情况下,这些一开始并不能解决问题。

自然语言处理似乎是一种客户关怀解决方案,因为它可以学习识别和解决当时的关键客户需求——从长远来看是完全自主的。

优化用户体验(UX)

与考虑个性化服务一样,一个交互式的智能机器人可能比需要填写的表单更好。

这不仅仅是客户服务。而且是关于销售,售后,甚至是吸引新客户。

降低成本

技术采用的首要目标是什么?简化流程。我们当然会通过简化流程来充分利用技术和人力资源。

有了 NLP,数据收集变得更加自给自足,而不是让整个团队审查文档、流程和无尽的 Excel 表格。

客户满意度

消费者希望尽可能快地解决所有问题,最好不要费太多力气。

当以一种智能的方式应用时,比如将 NLP 的能力发挥到极致的聊天机器人——除了理解意图和理解感受之外,它还将积极地促进您的客户的满意度。

提供数据

数据中断是公司数字时代的重大挑战之一。使用 NLP,收集更真实、更可靠的数据可以代表您当今业务的最佳策略。

结论

自然语言处理是人工智能的一个子集,旨在近似人类行为。一种误解通常证明聊天机器人和其他自助服务工具对用户的负面体验以及虚拟助手的准备不足是正确的。

NLP 的使用足以填补这一空白。在模仿人类语言之前必须了解它,以及它的复杂性和模糊性。

自然语言处理更侧重于理解人的说话方式,而不是将人与机器的关系人性化。不过,这个地区也因此受益。

这项技术也可能有助于回答“机器人将在就业市场上取代人”这个经典问题。

还有一件事…

如果你想了解更多关于人工智能以及如何学习它,以及它将如何影响商业和我们的社会,下面的文章可能会让你感兴趣:

【非常】工业 4.0 中的 AI 简介

人工智能和数字化转型将如何永远改变你的业务

让你学习 AI、机器学习、数据科学印象最深刻的 Youtube 频道。

如果你想继续发现新的资源并了解人工智能,在我的电子书(下方的链接)中,我正在分享关于人工智能、机器学习、深度学习、数据科学、商业智能、分析和其他方面的最佳文章、网站和免费在线培训课程,以帮助你开始学习和发展职业生涯。

学习 AI 在线:200 多种资源在线今天开始学习 AI

此外,我刚刚在亚马逊上发布了其他有趣的电子书,我相信其中一些可能会让你感兴趣……让我们保持联系,关注我,让我们一起做吧。

【https://www.amazon.com/dp/B08RSJRNSN】

参考

  1. CX 现在:什么是自然语言处理,为什么…https://blog . bold 360 . com/ai-insights/CX-now-what-is-natural-language-processing-NLP-and-why-it-is-more-ever-by-ever/
  2. 自然语言处理,是什么?|推送聊天机器人。https://push.al/en/natural-language-processing-what-is-it/
  3. 自然语言处理的 7 大应用。https://www . geeks forgeeks . org/top-7-自然语言处理应用/
  4. 向 ZeitZeiger 问好,这是一种电脑计时方法。https://www . tech times . com/articles/199599/2017 02 28/say-hello-to-zeitzeiger-computer-method-that-tell-time-on-your-body-clock . htm
  5. NLP 有哪些不同的级别?….https://medium . com/@ CKEspanol/what-the-different-levels-of-NLP-how-do-these-integrate-with-information-retrieval-c 0 de 6b 9 ebf 61

什么是神经架构搜索?你为什么要在乎?

原文:https://towardsdatascience.com/what-is-neural-architecture-search-and-why-should-you-care-1e22393de461?source=collection_archive---------9-----------------------

由算法创建的神经网络

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

疾控中心Unsplash 拍摄的照片

深度学习的民主化

深度学习模型的使用每天都变得越来越民主,在很多行业变得不可或缺。然而,有效的神经网络的实现通常需要建筑工程的背景和大量的时间来在迭代过程中探索我们知识的全部解决方案。神经网络的形式和结构将根据特定的需要而变化。因此,有必要根据给定的需求设计特定的架构。以试错的方式设计这些网络是一项乏味的任务,需要架构工程技能和领域专业知识。专家利用他们过去的经验或技术知识来创建和设计神经网络。这意味着潜在使用和评估的体系结构集合将减少到专家已知的那些。

迫切需要效率和优化

在一些行业中,神经网络的效率是至关重要的。为了使神经网络一般化并且不过度适应训练数据集,找到优化的架构是很重要的。然而,在生产力比质量更重要的时代,一些行业忽视了他们的模式的效率,并且满足于第一个实现他们目标的模式,而没有更进一步。寻找合适的架构是一项耗时易出错的任务并且需要架构设计技能。由于缺乏时间或架构专业知识,这些行业没有通过“足够”的模型充分挖掘其数据的潜力。

本文旨在展示神经架构搜索(NAS) 的进展,它面临的困难和提出的解决方案,以及 NAS 现在的受欢迎程度和未来趋势。

如何理解神经架构搜索的复杂性

神经架构搜索旨在为满足特定需求的神经网络发现最佳架构。NAS 本质上是一个人手动调整神经网络并学习什么工作得好的过程,并自动完成这项任务以发现更复杂的体系结构。这个领域代表了一套工具和方法,这些工具和方法将使用搜索策略测试和评估搜索空间中的大量架构,并通过最大化适应度函数来选择最符合给定问题 的目标的架构。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

参考文献 —神经架构搜索概述

NAS 是 AutoML 的一个子领域,它封装了所有自动化机器学习问题的过程,因此也是深度学习问题。随着 Zoph 和 LeBaker 和 al 的工作,2016 年标志着 NAS 的开始,他们利用强化学习算法实现了最先进的图像识别和语言建模架构。这项工作极大地推动了这一领域的发展。

著名项目

神经结构搜索是机器学习中发展最快的领域之一。在不同的行业和不同的问题中,大量的研究工作涉及对神经网络结构的搜索的自动化。如今,许多手动体系结构已经被 NAS 构建的体系结构取代:

最近在 NAS 方面的工作表明,该领域正在全面扩展并成为趋势。2019 年和 2020 年标志着正在进行的研究数量的加速。虽然早期的工作可以被认为是概念的证明,但当前的研究正在解决跨几个行业研究领域的更具体需求。这一趋势显示了 NAS 所能带来的潜力,不仅体现在它的效率和适应任何类型问题的能力,还体现在工程师在非自动化任务上节省的时间。

神经架构搜索的好处要不要投资?局限性呢?

NAS 方法探索许多具有可变复杂性的潜在解决方案,因此在计算上非常昂贵。他们的搜索空间越大,需要测试、训练和评估的架构就越多。这些方法需要大量的资源和时间来找到一个足够好的模型。他们基于强化学习的 NAS 方法 Zoph 等人用了 800 个 NVIDIA K40 GPUs,用了 28 天。自从第一种方法以来,新的模型已经出现,搜索时间大大缩短。例如,渐进式神经架构搜索展示了类似的最先进的结果,搜索速度提高了 5-8 倍。高效的神经架构搜索大约需要 7 个小时才能找到该架构,与 NAS 相比,GPU 时数减少了 50,000 倍以上。

然而,这一领域受到其他几个限制。事实上,很难知道一个潜在的模型在真实数据上的表现如何。由于架构是用训练数据评估的,如果我们期望在真实数据上有一个执行模型,后者必须是高质量的。
仍有必要定义算法将如何找到并评估这些架构。这个任务还是手工完成,需要微调。然而,领域知识的缺乏不会降低架构的效率。这些知识有助于加速搜索过程,它将指导搜索,从而算法将更快地收敛到最优解。

最近的算法,如 PNAS 方法,试图近似未来性能,但这些预测器必须微调,仍然是近似值。此外,某些方法受到鲁棒性问题的困扰,很难训练。

一些实际的研究现在集中在使用 生物启发算法 作为 NAS 方法。这些算法对于优化任务非常有效,因此似乎是寻找神经网络最佳架构的理想候选。

带走:

  • NAS 从大量备选方案中找到理想的解决方案,并选择最符合给定问题目标的方案
  • 优化算法
  • 生物灵感
  • 计算成本非常高
  • 很难估计它在真实数据中的表现

结论

在一个优化性能至关重要的时代,神经架构搜索是一个快速扩展的领域。这个非常新的领域仍然面临一些困难,以成为行业中深度学习项目设计的成熟步骤。然而,最近的工作表明,随着更快和更完整的体系结构评估方法的出现,这些困难将在未来几年消失。领域知识的贡献将不再是不可或缺的,而是提高研究方法效率的优势。因此,NAS 将为行业和公司带来更多的灵活性,这些工具能够适应多种特定需求。

🚀- 圣甲虫的消息

https://medium.com/@tgey/about-me-thomas-gey-a8a42f6622cc https://medium.com/@ScarabNews/membership https://medium.com/subscribe/@ScarabNews

感谢阅读本文!如果你有任何问题,请在下面留言。

参考文献:

究竟什么是神经网络实现?

原文:https://towardsdatascience.com/what-is-neural-network-implementation-anyway-a37e108d0143?source=collection_archive---------30-----------------------

python3 和 scikit-learn 实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

乌列尔资深大律师Unsplash 拍摄的照片

随着时间的推移,从事数据科学的人越来越多。特别是,深度学习领域是数据科学界最重要的话题。但是一切都可以归结为它的本质,在任何学术/研究环境中,都是了解你的基础知识。在过去,我已经分享了我关于以下主题的知识:数据集的类型数据预处理Python 中的数据预处理线性回归决策树朴素贝叶斯分类器

在这篇文章中,我将讨论一个非常简单的使用 scikit-learn 实现人工神经网络(ann)的方法。为了将高级深度学习(DL)应用于现实世界的问题,必须理解 ann。如今,我们几乎在所有可以想象的情况下都使用 DL。举几个例子:

  1. 图像分类
  2. 文本分类
  3. 医学图像分割
  4. 深度强化学习
  5. 音频分析

以上这些例子可以进一步分解成具体的问题。

这个实现的代码是独立的。没有来自命令行的输入。代码分为 6 个部分。我会把每个部分的代码,并解释它的方式。在所有的部分都介绍完之后,我会放一个完整代码的链接。如果你只想看代码,可以直接跳到文章的末尾。所以,事不宜迟,让我们开始吧。

第 1 部分—导入所需的包

from sklearn import datasets
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report

→第一行是从scikit-learn库本身导入数据集。我们将使用虹膜数据集来实现。

→第二行是导入MLPClassifier(多层感知器),这是我们的神经网络。

→第 3 行是 数据预处理 的一部分,将整个数据集拆分为训练和测试。

→第 4 行是 数据预处理 的一部分,用于将特征缩放应用于数据集。

→第 5 行是得到 混淆 _ 矩阵 的预测和真实类标签来检查模型的性能。

→第 6 行是获得完整的分类报告,包括准确度、f1 分数、精确度和召回率,作为性能指标

第 2 部分—加载数据集

iris = datasets.load_iris()X = iris.data
y = iris.target
print('total data: ', len(X))

输出:

总数据:150

→第一行是从scikit-learn库中创建并提取数据集(虹膜数据集)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Iris 数据集的属性|来源: Scikit-learn

→第二行是从数据集中获取独立属性。

→第三行是从数据集中获取从属属性。

第 3 部分—将数据集分为训练和测试

任何机器学习算法都需要进行准确性测试。为此,我们将数据集分为两部分:训练集和**测试集。**顾名思义,我们使用训练集使算法学习数据中存在的行为,并通过在测试集上测试来检查算法的正确性。我们的做法如下:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
print('train data: ', len(X_train))
print('test data: ', len(X_test))

输出:

训练数据:112

测试数据:38

这里,我们假设训练集是原始数据集的 75%,测试集是原始数据集的 25%。这通常是它们被分割的比例。但是,你有时会遇到 70-30%或 80-20%的比例分割。但是,你不想对半分。这会导致 模型过拟合。 这个话题太庞大,无法在同一个帖子里涵盖。我将在以后的文章中介绍它。目前,我们将按照 75-25%的比例进行分配。

第 4 部分—特征缩放

在下面的帖子中,我将从概念上详细讨论变量转换(特性缩放)。

我们使用特征缩放将不同的尺度转换为标准尺度,以使机器学习算法更容易。我们在 Python 中这样做,如下所示:

sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

这些数据现在可以输入到机器学习算法中。

第 5 部分—定义和训练MLP 分类器

clf = MLPClassifier(hidden_layer_sizes=(10, 10, 10), random_state=1, max_iter=1000, activation='relu', solver='adam')clf.fit(X_train, y_train)

在这个实现中,

→网络中有 3 个隐藏层,每个层有 10 个神经元,用属性hidden_layer_sizes表示。这个网络是一个非常简单的网络。我鼓励你尝试不同数量的层和不同数量的神经元,看看结果的差异。

random_state无非是一个种子值,这样我们每次运行同一个网络,都不会得到不同的结果。

max_iter是最大迭代次数。求解器迭代,直到收敛或达到此迭代次数。

activation是隐藏层的激活功能。

solver是权重优化的求解器。

要了解有关 MLPClassifier 参数的更多信息,请访问:

https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html

clf.fit将训练数据传递给网络,以便网络从中学习。

要了解神经网络的基本概念,请访问:

第 6 部分—预测测试结果和检查性能

y_pred = clf.predict(X_test)cm = confusion_matrix(y_test, y_pred)
print(cm)print(classification_report(y_test, y_pred, target_names=iris.target_names))

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混淆矩阵和分类报告|作者图片

→我们收集第 1 行网络的预测。

→我们在下一行制作混淆矩阵,然后打印出来。

→我们在最后一行做分类报告,打印出来。

结论

这篇关于分类神经网络的基本实现的文章到此结束。如您所见,测试集的准确率为 97%。我尝试了 80-20%的训练测试分割,我能够实现 100%的测试准确性。精确度如此之高是因为数据集的大小非常小。通常,我们永远不会在更大的数据集中达到 100%的准确率。如果你有,回复这篇文章。我很想知道你是如何做到的?

这是完整的代码。

我正在免费赠送一本关于一致性的电子书。在这里获得你的免费电子书。

如果你喜欢阅读这样的故事,并想支持我成为一名作家,可以考虑注册成为一名媒体成员。每月 5 美元,你可以无限制地阅读媒体上的故事。如果你注册使用我的链接,我会赚一小笔佣金,不需要你额外付费。

https://tarun-gupta.medium.com/membership

我希望你喜欢阅读这篇文章,并开始学习一些基本的人工神经网络实现。感谢您的阅读。

这是我的故事索引:

“ELTP 过程”中的 P 是什么?

原文:https://towardsdatascience.com/what-is-p-in-eltp-process-e56d995d7029?source=collection_archive---------26-----------------------

解决“数据最后一英里问题”,为您的企业释放全面的分析能力。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由大河望田中@ Anelen 有限责任公司授权的 iStock Photo 提供

将 P 添加到 ELT

如果你和数据工程师一起工作过,你可能听说过 ETL 或者 ELT。

  • E 用于从源中提取数据。
  • T 用于将从原始数据转换为干净有用的信息。
  • L用于将加载到目的数据湖或数据仓库。

趋势是在将数据加载到强大的现代数据仓库(如 Google BigQuery、Snowflake、AWS Redshift 或 Microsoft Synapse)后对其进行转换。因此,人们越来越多地使用 ELT 而不是 ETL 来处理数据。

我要给 ELT 加一个 P,就是“Publishing”这是将转换后的数据发布到人们或另一个程序将使用它们的确切位置的过程。我们称之为“前线应用”。

ELT 不能解决“数据最后一英里问题”

考虑这个业务场景:产品合格线索评分(PQL 评分)。

假设您的公司是一家软件即服务(SaaS)公司。基本功能都是免费的。你的潜在客户通过在线广告找到你的服务。注册是免费的,但用户必须输入他们的工作电子邮件和业务信息。

如果您正在使用 Marketo 或 Pardot 等在线营销自动化工具,您可以在此时获取潜在客户的产品发现渠道及其电子邮件。但营销过程通常与使用统计数据脱节。这是因为使用数据通常位于生产数据库中。

或者您可能更进一步,通过 ELT 过程将数据从生产数据库复制到数据仓库。你可能是一名数据科学家,他想出了一个公式或机器学习算法来计算 PQL 分数,以表明哪些免费层用户可能会转化为付费客户。

但是只要数据还在仓库里,它就不会被使用。PSQL 分数应该发布给 Marketo、Pardot 或 Salesforce,因为这是销售和营销人员的工作场所。他们太忙了,没有时间打开商业智能工具或运行查询来找出哪些潜在客户应该优先考虑。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

发布:将数据推出仓库

除了产品营销用例之外,向一线应用发布指标的重要性也非常重要。SaaS 企业的另一个令人信服的案例是客户成功。对于基于订阅的服务,跟踪每个订户帐户的健康状况至关重要。特别是对于复杂的业务应用程序,客户可能会在看到价值之前放弃产品。您的客户在注册后是否采取了正确的步骤来获得价值,或者他们在开始时遇到了困难?

企业 SaaS 公司通常有一个客户成功功能,以帮助新客户在入职过程中及以后。如果能在他们工作的地方(如 Zendesk)获得信息,产品使用统计数据和帐户的健康得分将是有益的。

ELTP 的 P 解决了信息传递的最后一英里问题,使商业运作变得聪明、高效和精益。

ELTP 自动化

在过去的几年里,ELT 业务不断增长。有很多服务可以自动将数据从各种在线应用程序转移到数据仓库。但是很少有资源和服务可用于自动化数据发布,更不用说提供无代码解决方案了。

缺乏无代码解决方案并不一定会阻止企业利用强大的 ELTP 过程。对数据工程的一点点投资将为整个商业运作带来回报。

流行的开源 ELT 框架之一是 singer.io 。singer.io 社区构建了名为“tap”的数据提取器和名为“target”的数据加载器。Singer.io 的规范帮助数据工程师混搭 tap 和 targets,为每个业务用例创建源-目的组合。在典型的 ELT 框架中,Salesforce 和 Marketo 等云应用程序是数据源(tap),数据仓库是目的地(targets)。

当我们从事“ELTP”的 P 时,我们颠倒了名称:例如,我们为 BigQuery 开发了tap 程序来提取产品使用度量,为 Pardot 开发了目标程序。通过运行这种 tap-target 组合,我们自动完成了将产品使用数据从 BigQuery 发布到 Pardot 的过程,因此我们客户的营销和销售团队可以充分利用 PQL 指标,而无需手动移动数据。

ELTP 的未来

数据发布不仅限于人类消费。计算出的指标可以复制回生产数据存储或缓存层,以使产品的用户体验更加优化和个性化。这些指标可以基于简单的统计数据,也可以基于机器学习的复杂计算结果。通过解决最后一英里的问题,并确保有价值的信号被正确地传递到重要的地方,我们可以释放看不见的潜力。

在不久的将来,将会有更多的新业务提供无代码解决方案和服务来结束这个循环。与此同时,我们将帮助企业定制 ELTP 解决方案,并在销售、营销和客户成功使用案例方面创造更多成功故事。

有趣的演示

这是一个解决“最后一英里问题”的有趣演示这些 GIF 动画是在指定的时间间隔自动创建并发布在 Twitter 上的。我们从来源(地质金融)提取数据,转换数据(包括制作动画的部分),并将其交付到重要的地方(社交媒体)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片作者。美国地质调查局的公共领域数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

关于作者

大河望·田中是 ANELEN 有限责任公司的首席执行官兼数据科学家,该公司是一家专注于数据工程、分析和数据科学的精品咨询公司。ANELEN 的使命是帮助创新企业利用数据科学做出更明智的决策。

原载于 2021 年 2 月 13 日 https://articles.anelen.cohttps://articles.anelen.co/What-is-P-in-ELTP-Process/

p 值是多少?

原文:https://towardsdatascience.com/what-is-p-value-370056b8244d?source=collection_archive---------6-----------------------

p 值的详细解释

如果你用谷歌搜索“什么是 p 值”,页面上显示的第一个结果是维基百科的定义:

p 值是在假设零假设正确的情况下,获得至少与实际观察到的结果一样极端的测试结果的概率。—维基百科

嗯…好消息是我们知道这个定义是正确的;糟糕的是,这个定义太正确了,难以理解。

所以…今天的游戏就是想分解这句话!

因为现在是假期!(万岁~),让我们邀请姜饼人一起来玩吧!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

姜饼人:你确定吗?p 值…好玩???(吉尔·威灵顿在像素上拍照)

圣诞老人的饼干店

圣诞老人的饼干店正在出售他们的著名产品——姜饼饼干!圣诞老人为他的饼干感到非常自豪。他相信他的产品是世界上最好吃的。还有,圣诞老人说每个产品(一袋姜饼)的平均重量(μ)是 500g

现在是 21 世纪。圣诞老人已经有了自己的工厂和自动化机器来帮助他制作饼干。如你所知,没有完美的机器和生产过程,所以不同袋的饼干之间会有差异。假设我们知道袋装饼干正态分布,标准差(σ)等于 30g。

因此,如果萨特纳的说法是真的(一袋饼干的平均重量= 500 克),我们可以预期一袋饼干的分布如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们能相信圣诞老人的话吗?

但是,作为一个非常喜欢姜饼的好奇顾客,我想知道…一袋饼干的平均重量真的等于 500 克吗?如果圣诞老人欺骗顾客,给我们少于 500 克的饼干怎么办?我们如何验证圣诞老人的话?

这就是“假设检验”的用武之地。

为了实现假设检验,首先,让我们建立我们的零假设(H0)和替代假设(H1)。作为一个讲道理的人,我们不应该在没有任何证据的情况下怀疑别人。所以,我们假设圣诞老人对他的生意是诚实的(H0)。如果我们想检查他的饼干是否少于 500g,我们需要收集数据并有足够的证据来支持我们的猜测(H1)。所以…我们有如下的假设陈述:

H0:平均一袋饼干重量(μ)= 500 克
H1:平均一袋饼干重量(μ)<500 克

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为我们不确定我们的人口分布是什么样子,我用虚线来表示可能的分布。如果圣诞老人的说法是真的,我们可以预计一袋饼干的平均重量等于 500 克(左图)。然而,如果圣诞老人的说法是不真实的,饼干的平均重量小于 500 克,人口分布应该看起来不同(右图)。

酷!问题陈述已设定。那么现在,下一个问题是:如何检验我们的假设陈述?

也许称一下所有的饼干袋,这样我们就能知道确切的人口分布了?嗯……显然,我们不可能收集到所有圣诞老人的甜饼店生产的甜饼(人口)!!!那么…我们该怎么办?

在这里,“推断统计”派上了用场!

推断统计学的核心概念

在推断统计学中,我们感兴趣的是总体参数(总体的属性)。但是,要收集全部人群的所有数据来计算参数,几乎是不可能的。因此,我们从总体中抽样以获得样本数据。然后,我们从样本数据中计算统计量(样本的属性)作为我们的估计量,以帮助我们推断未知的总体参数。(如下图)

参数和统计示例:
-参数:总体均值(μ)、总体标准差(σ) …
-统计:样本均值(x̄)、样本标准差(s) …

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

检验我们的假设陈述也是一项推断统计工作。流程同上。但是现在,我们对单个未知参数不感兴趣;相反,我们感兴趣的是“我们是否能拒绝零假设?”。

这个问题怎么回答?使用相同的方法—我们从样本数据中计算统计数据来推断这个问题的答案。这里使用的统计称为检验统计。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

太好了!现在,我们知道应该收集样本数据并计算检验统计量,以检验假设陈述。

但是……让我们暂停一下。在进入测试部分之前,让我快速回顾一下抽样分布的概念,以确保我们在同一页上。

抽样分布审查

抽样分布是样本统计量的分布。

让我们以其中一个统计数据——样本均值(x̄)——为例。如果我们从总体中多次取样,我们可以得到许多样本数据集(样本 1 到样本 m)。然后,如果我们从每个样本数据集中计算样本平均值(x̄),我们可以得到样本平均值(x̄).)的 m 个数据点利用这些数据点,我们可以画出样本平均值分布图(x̄).由于这种分布来自于样本统计,我们称这种分布为样本均值的抽样分布(x̄)

同样的想法也适用于其他统计数据。例如,如果我们从每个样本数据集中计算检验统计量,我们可以得到检验统计量的抽样分布。

抽样分布与所有其他分布相似,它显示了如果我们从总体中多次抽样,统计值出现的可能性(概率)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在下面的小节中,我将使用棕色来表示采样分布曲线。

不错!现在,是时候进入测试部分了!

测试假设陈述

我们需要做的第一件事是有一个样本数据集。所以,我去了圣诞老人的饼干店,随机挑选了 25 袋饼干(n)作为我们的样本数据。另外,我计算出该样品的平均重量(x̄)为 485 克。

测试的第一部分是将我们的样本统计量与零假设进行比较,这样我们就可以知道我们的样本统计量离期望值有多远。

为此,我们首先假设零假设为真。这是什么意思?这意味着,在我们的例子中,我们假设一袋饼干的人口分布实际上等于 500 克。如果这种说法是正确的,根据中心极限定理,如果我们多次从该总体中取样,我们可以得到样本平均值(x̄)的取样分布,如下图所示(样本平均值的平均值= 500g)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

p 值定义:
“p 值是在假设零假设正确的情况下,获得至少与实际观察到的结果一样极端的检验结果的概率,”—维基百科

所以现在,如果零假设为真,我们可以很容易地看到我们的样本均值比预期均值(500g)低 15g(485–500 =-15)。

嗯……但是“15g”只是一个数字,对我们解释意义帮助不是很大。还有,如果我们要计算曲线下的概率,一个一个的计算效率很低(想象有无数个分布,每个都有自己的均值和标准差……你真的不想计算很多很多次的概率……)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么,我们该怎么办呢?我们标准化我们的值,使得分布的平均值总是等于零。标准化的好处是统计学家已经生成了一个包含每个标准化值下的面积的表格。所以我们不需要逐个计算面积。我们需要做的就是标准化我们的数据。

如何规范?在我们的例子中,我们使用 z 分数来转换我们的数据。在我们的例子中,z-score 是测试统计**。**

下图显示了检验统计量(z 得分)的抽样分布。我们可以看到,如果我们的样本数据正好等于零假设(总体均值=500g,样本均值= 500g),我们应该有检验统计量等于 0。在我们的例子中,我们的样本平均值等于 485g,这使我们的测试统计量等于-2.5 (-2.5 是我们从样本数据中观察到的测试结果)。这表明我们的样本数据比预期值低 2.5 个标准误差

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

p 值定义:
“p 值是在假设零假设正确的情况下,获得测试结果至少与实际观察到的结果一样极端的概率。”—维基百科

这里我想提一下检验统计量是根据不同的情况来选择的。你可能会听到不同种类的统计检验,如 z 检验、t 检验、卡方检验……为什么我们需要不同种类的检验?

因为我们可能需要测试不同类型的数据(分类数据?定量?),我们可能有不同的测试目的(均值测试?比例?),我们拥有的数据可能具有不同的分布,我们可能只有有限的数据属性……因此,如何选择合适的测试方法是另一项至关重要的工作。

在这种情况下,由于我们对检验平均值感兴趣,我也假设我们的总体数据是正态分布的,具有已知的总体标准差(σ)。基于我们的条件,我们选择了 z 检验。
如果您对何时使用每种统计检验感兴趣,请参考不同种类的统计检验的假设。

好了,现在我们有了测试统计数据。当零假设为真时,我们知道我们的检验统计量离期望值有多远。那么,我们真正想知道的是:如果零假设为真,我们得到这个样本数据的可能性(概率)有多大?

要回答这个问题,我们需要计算概率。如你所知,一个点到另一个点之间的概率就是我们在这两点之间的抽样分布曲线下的面积。

所以在这里,我们不计算特定点的概率;相反,我们计算从我们的测试统计点到无穷大的概率——表示远离我们的测试统计(也远离预期的测试统计)的所有点的累积概率。

这个累积概率就是我们的 p 值

你可能想知道为什么我们不计算特定测试统计的概率(一分)。以下是我在这篇文章中发现的两种可能的解释:

(1)数学上,概率曲线上特定点的概率为零。为了计算概率,我们需要计算曲线下的面积。

(2)为了决定我们是否应该拒绝零假设,我们使用 p 值来比较显著性水平。由于显著性水平是累积概率,我们需要使用相同的格式来比较其中两个。因此,p 值也应该是一个累积概率。(我将在后面介绍 siginificant level)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

p 值定义:
“p 值是在假设零假设正确的情况下,获得至少与实际观察到的结果一样极端的测试结果的概率。”—维基百科****

精彩!我们刚刚解释了 p 值定义的所有部分!

让我们计算一下本例中的 p 值。正如我之前提到的,使用检验统计的最好方法是统计学家已经了解了抽样分布的属性。因此,我们可以只查找 z 表,或使用任何统计软件来帮助我们获得 p 值。

在我们的例子中,p 值等于 0.0062 (0.62%)。

请注意,在我们的案例中,我们正在进行单尾测试。也就是说,我们只考虑一个方向来计算分布中的“极端”概率。由于我们的替代假设(H1)被设定为“平均值小于 500 克”,我们只关心小于我们的检验统计量的值(左侧)。

我们可以根据另一个假设来确定应该关注哪条尾巴。如果备选项假设包括:
(1)感兴趣属性小于(<)期望值:关注左尾
(2)感兴趣属性大于(>)期望值:关注右尾
(3)感兴趣属性不等于(≦)期望值:关注双尾

注意:
感兴趣的属性-平均值、比例…(在我们的例子中是平均值)
期望值-特定数字…(在我们的例子中是 500g)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,我们有 p 值= 0.0062。嗯…这是一个小数字…但这意味着什么呢?

这意味着,在我们的零假设为真的条件下(总体均值真的等于 500g),如果我们从这个总体分布中抽样 1000 次,我们将有 6.2 倍的机会得到这个样本数据(样本均值= 485g)或样本均值小于 485g 的其他样本。

换句话说,如果我们得到样本均值等于 485g 的样本数据,有两种可能的解释:

  1. 人口平均数实际上等于 500 克(H0 是正确的)。而我们非常“幸运”的得到了这个难得的样本数据!(1000 次抽样中的 6.2 次)

或者…

2.“零假设为真”的假设是不正确的。该样本数据(样本平均值等于 485g)实际上来自更可能发生样本平均值= 485g 的其他人口分布。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

酷!所以现在我们知道,如果我们的 p 值非常小,这意味着要么我们得到了非常罕见的样本数据,要么我们的假设(零假设为真)是不正确的。

那么,接下来的问题就是:我们现在只有 p 值,但是如何用它来判断什么时候拒绝零假设呢?换句话说,p 值有多小,我们就愿意说这个样本来自另一个人群?

这里先介绍一下判断标准— 显著水平(α) 。显著水平是一个预定义的值,需要在实施假设检验之前设置。你可以把显著性水平作为一个阈值,这给了我们一个何时拒绝零假设的标准。

该标准设定如下:

如果 p 值≤显著水平(α),我们拒绝零假设(H0)。
如果 p 值>显著水平(α),我们无法拒绝零假设(H0)。

比如说,我把我的显著性水平设为 0.05。

我们可以看到下图,红色区域是显著水平(在我们的例子中,它等于 0.05)。我们使用显著性水平作为我们的标准,如果 p 值在(小于或等于)红色区域内,我们拒绝 H0;如果 p 值超过(大于)红色区域,我们无法拒绝 H0。

这里我想提一下,显著性水平(α)也表示我们对 I 型错误可接受的最大风险(I 型错误是指当 H0 实际为真时我们拒绝 H0)。

通过下图很容易看出为什么——下面的分布曲线表明零假设(H0)是正确的。红色区域是当假设为真时,我们决定拒绝零假设的概率。如果 p 值等于显著性水平(我们的情况是 0.05),那么当 H0 为真时,这将是我们错误拒绝 H0 的最大概率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在我们的例子中,我们有 p 值= 0.0062,小于 0.05,因此,我们可以拒绝我们的零假设。换句话说,根据我们的测试,我们很遗憾地说,我们有足够的证据来支持我们的替代假设(一袋饼干的平均值小于 500 克)。这意味着…我们有足够的证据证明圣诞老人欺骗了我们…

嗯…如果我们把显著性水平改成 0.005 会怎么样?

结果会不一样。因为 0.0062 > 0.005,所以我们不能拒绝 H0。这是棘手的部分,因为显著水平是主观的,我们需要在测试前确定它。否则,我们很可能在知道 p 值后欺骗自己。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们有足够的证据证明你欺骗了我们!!!(图片由像素上的安德里亚·皮亚卡迪奥拍摄)

概述

谢谢你读到这一步。让我们快速回顾一下,结束今天的游戏!

p 值是多少?

第 1 部分:为了检验我们的样本数据是否支持替代假设,我们首先假设零假设为真。这样我们就可以知道我们的样本数据离零假设给出的期望值有多远。

p 值定义:
“p 值是在假设零假设正确的情况下,获得至少与实际观察到的结果一样极端的检验结果的概率”—维基百科

第 2 部分:根据分布、数据类型、目的、数据的已知属性,选择一个合适的检验统计量。并计算样本数据的检验统计量。(测试统计显示我们的样本数据与期望值的差距)

p 值定义:
“p 值是在假设零假设正确的情况下,获得测试结果至少与实际观察到的结果一样极端的概率。”—维基百科

第三部分:计算在代表你的替代假设(左尾,右尾,双尾)的方向上,从检验统计点到无穷大(表示更极端)的概率(抽样分布曲线下的面积)。

p 值定义:
“p 值是在假设零假设正确的情况下,获得测试结果至少与实际观察到的结果一样极端的概率。”—维基百科

这个累积概率就是 p 值。

小 p 值是什么意思?

如果我们有一个非常小的 p 值,这可能表明两种可能的意义:
(1)我们是如此“幸运”地得到这个非常罕见的样本数据!
(2)这个样本数据不是来自我们的零假设分布;取而代之的是来自其他人群的分布。(以便我们考虑拒绝零假设)

p 值怎么用?

为了确定我们是否可以拒绝零假设,我们将 p 值与预定义的显著性水平(阈值)进行比较。

如果 p 值≤显著水平(α),我们拒绝零假设(H0)。
如果 p 值达到>显著水平(α),我们就无法拒绝零假设(H0)。

感谢您的阅读!欢迎任何反馈、建议和评论。如果你能让我知道你的想法和我文章中可能的错误,我将不胜感激。

图标属性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 Flaticoniconixar 制作的姜饼人图标

catkuroFlaticon 制作的纸袋图标

参考

[1] Everything you Should Know about p-value from Scratch for Data Science
[2] (video) What is a Hypothesis Test and a P-Value? | Puppet Master of Statistics
[3] (video) Hypothesis Testing: Test Statistic (one-sample t-test) I Statistics 101 #3 | MarinStatsLectures
[4] (video) What is a p-value? (Updated and extended version)
[5] How t-Tests Work: t-Values, t-Distributions, and Probabilities
[6] Interpreting P values
[7] P-values Explained By Data Scientist
[8] Test statistics explained
[9] What is a test statistic?
[10] Test Statistic: What is it? Types of Test Statistic
[11] Why do p-values include the probability of obtaining more extreme values than the test statistic?
[12] Wikipedia - p-value
[13] Bluman, A. G. (2018). Elementary statistics: A step by step approach. New York, NY: McGraw-Hill Higher Education.
[14] 沈明來. (2016). 生物統計學入門第六版, 九州圖書文物有限公司

使用 Python 的量子计算简介

原文:https://towardsdatascience.com/what-is-quantum-entanglement-anyway-4ea97df4bb0e?source=collection_archive---------10-----------------------

利用 Python 技巧学习量子计算!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

迈克尔·泽兹奇在 Unsplash 上的照片

量子计算的世界是新的和令人兴奋的,因为它是压倒性的和困难的。然而,这并不是必须的!你不需要一个物理学博士或一个超导量子位实验室来自己做实验,也不需要涉足这样一个新兴的领域。在这篇文章中,我将向你展示如何简单地开始,如何运行你自己的量子模拟,你所需要的只是一台笔记本电脑,一些耐心和一杯咖啡(所有喝茶的人都可以选择)。

首先,我将使用 Python 和 IBM 包 Qiskit 。一旦 Python 启动并运行,您就可以使用命令行并使用以下命令来安装 Qiskit。如果您在安装 Qiskit 时遇到问题,请查看此处的以获取更多信息。

作为参考,这些将是我使用的 Python 和 Qiskit 的版本。顶部的导入语句用于访问版本信息,我们将使用类似的语句从 Qiskit 获得其他功能。

在上面的代码和任何从包中获得能力的代码的顶部,我们将需要 import 语句。具体来说,我们将需要以下进口。

Aer 是我们所有量子模拟器的后端所在,这就是 M 模拟器的意义所在,把它放在顶部也是一个很好的做法,因为就像我们的 import 语句一样,我们不会在编写其余代码时更改它们。

现在,在我们编写代码之前,让我们讨论一下量子计算。量子计算机与经典计算机的区别在于它的位数。一些读者会熟悉经典位,它们由 0 和 1 表示,这些位的组合形成二进制字符串,类似于 0010110。经典位只能取 0 和 1 的值。Bits 可以存储信息,比如数字、字母、特殊字符、这篇文章以及我将来要写的所有文章。在我们的量子电路中,我们将使用经典位元来储存测量值,因为它们擅长这样做。

量子位不一样,可以同时取 0 和 1 的值!如果你对量子力学不熟悉,想想这个有点奇怪,让我们现在就开始,改天再说。当一个量子比特(量子比特)处于两个状态之间时,我们称之为叠加态,这可以表示为在每个状态下发现量子比特的概率。举个简单的例子,我们可以设置一个量子位,使其处于 0 和 1 的完美叠加状态。这意味着在测量量子位之前,它处于两种状态,当我们测量它时,它将是 0 和 1 的一半时间。

在你抓耳挠腮之前,想一个更简单的例子。我抛一枚硬币,接住它,盖上盖子,这样就没人能看见了。如果你要猜硬币是什么,你会说正面或反面,但硬币还不是正面或反面,直到我揭开我的手给你看。你会说,在你看它之前,如果你猜对了,你有一半的可能性是正确的,如果你猜对了,你有一半的可能性是正确的。这是一个需要记住的好例子,硬币比量子位更为我们所熟悉。

量子位的这种怪异性质使得它们如此特别和有趣,这是它们最擅长的,以叠加态存在。这就是我们今天要编码的,我们将取两个都处于 0 状态的量子位,将它们放入 0 和 1 的相等叠加中。这个叠加是特殊的,我们将会得到 4 个最大纠缠态之一,也称为贝尔态!这些在量子计算的许多方面都非常重要,所以这是一个实用的起点。

既然我们知道我们将需要经典位和量子位,我们可以用

qreg 和 creg 是电路获取所需比特的地方。从量子寄存器 qreg,我们的电路将找到量子位。creg 也一样。我们用这些填满我们的电路

现在我们有了名为缠绕者的量子电路。三行代码已经让我们走了很远,但是我们还没有完成。我们如何用量子位做事情?我能听到你在问自己。这是通过量子门实现的。量子门是以某种方式转换一个或多个量子位的操作。在这个例子中,我们将看到两个这样的门,哈达玛门和 CNOT 门。

阿达玛门是一个被覆盖的硬币翻转,它把一个量子位从 0 态变成 0 和 1 相等叠加的状态。CNOT 门更复杂,需要两个量子位来发挥它的魔力。本质上,CNOT 门改变“目标”量子位,取决于它看到“控制”量子位时看到的东西。这就是 CNOT 门的作用。

在这篇文章中,我们不会手动计算量子位的状态,但是你可以随意去做,或者自己尝试不同的门和量子位,看看它们会做什么。

我们将在第一个量子位上应用哈达玛门,在两个量子位上应用 CNOT 门,将第一个量子位作为控制,将第二个量子位作为目标。在我们应用这些门之后,剩下要做的就是检查我们的答案,看看我们得到了什么,这是通过测量每个量子位并将每个结果留在一个经典位中来完成的。

注意潜在的混淆,Python 和许多编程语言一样,从数字 0 开始计数,而不是 1。这意味着 0 量子位是第一个,1 量子位是第二个。你可以看到门是量子电路对象的方法,门以量子位为参数。测量也只是量子电路的一种方法,它把要测量的量子位作为第一个参数,把测量留下的经典位作为第二个参数。第一个和第二个经典位也分别编号为 0 和 1。

我是一个视觉爱好者,所以我会告诉你如何看到你刚才编码的量子电路图,并绘制我们的测量结果。我们可以用画出量子电路。draw() 方法。

这就产生了这张图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者的量子电路

我们沿着量子电路从左到右,看到了表示阿达玛门的**“H”**,有蓝点和加号的位是 CNOT 门,加号告诉我们哪个量子位是目标。以及两个看起来像迷你速度计的物体,代表每个量子位元的测量值。

现在我们已经看到了我们的量子电路,我们需要看到我们的结果。这是通过对我们的电路进行测量模拟来实现的。 execute() 函数将待测电路作为其第一个参数,将您想要用来进行仿真的仿真器作为第二个参数。

模拟器进行许多测量,并记录它发现的每个 0 和 1。然后 hist 变量获取这些记录,我们最后使用 plot_histogram() 给出我们结果的直方图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按作者划分的 Phi+状态直方图

这里我们看到,当我们观察这个系统时,我们粗略地测量到两个量子位有一半时间处于 0 状态,而发现两个量子位有一半时间处于 1 状态。这是一个最大纠缠贝尔态。我们取了两个未纠缠的量子比特,并把它们混合得如此之多,以至于它们总是被发现处于相同的状态。纠缠是系统的冯·诺依曼熵的一种表示,在我们的贝尔态中,我们会说熵是最大的。熵是我们系统中无序或随机的量度,因为当我们测量我们的系统时,我们对每个可能的结果都只有一个同样可能的结果,它被认为是最大随机的。纠缠是一种可以被某些量子协议“用尽”的资源。我们可以在以后的文章中发现更多这样的内容!

我希望你现在对量子计算有一个更好的了解,以及如何在自己家里舒适地玩这些东西。感谢您阅读这篇文章,不久肯定会有更多文章。

你可以在 LinkedinGithub 找到我。如有任何疑问或意见,请给我发邮件。

什么是无线电信息学?

原文:https://towardsdatascience.com/what-is-radiomics-d9fb790a58c7?source=collection_archive---------29-----------------------

放射组学广义地定义了一个涉及从放射图像中提取高通量定量特征的过程。

放射组学源于几十年的医学成像和计算机辅助诊断。在该领域,医学图像被转换成高通量的定量特征(Lambin 等人,2012)。这些特征显示了增强诊断和预后预测的潜力(Rao 等人,2012)。尽管源自医学图像的量化特征可以追溯到几十年前(Haralick。,1973),‘组学’后缀表达了这些数据的维度、生物学重要性,并将这些特征与精确医学联系起来。

放射组学研究包括五个主要阶段:参与者选择、临床医生成像、放射组学特征提取、探索性分析和建模。Lambin 及其同事提出了一个 radiomics 质量分数,这是一个 36 分的系统,用于提高整个 radiomics 管道的稳健性(Lambin 等人,2017 年)。

虽然放射组学是从医学图像中高通量特征提取的新颖定义,但是存在两种类型的放射组学特征提取方法;“常规无线电组学”和“深度无线电组学”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1:收音机学的发展。(图片作者)

深度射电天文学

深度学习工作流可用于从图像中学习特征,并执行分类/回归,而无需详细的 ROI 描绘。

这种方法的基础是,深度学习模型不仅应该用于数据挖掘和预测,还应该用于数据生成。使用深度学习提取的特征数量是手工特征的几倍。深度放射组学有几个优点,包括能够生成大量特征,并能够在同一管道内进行分类。

虽然 deep radiomics 提供了潜在的无限多的功能,但有三个主要挑战。第一个挑战是特性的可解释性。尽管我们可以将深层放射组学特征与生物学特征(基因组学、转录组学等)联系起来。)准确理解每个 radiomcs 功能的含义是一项挑战,尤其是与手工制作的 radiomics 功能相比。然而,随着可解释的深度学习的现代进步,通过使用激活映射等技术,深度放射组学有机会减少这种缺乏可解释性的情况。

第二个挑战是过度合身。当模型非常适合训练数据集但不适合测试/验证数据集时,过拟合是一个问题。这通常是由于每个相对较少数量的样本具有大量特征(数千至数十万)的结果。

而迁移学习等技术有助于在小数据集上使用深度学习。第三个问题是基于迁移学习在深度放射组学中的应用。迁移学习的总体思想是使用一个预先训练的模型,该模型一直在对数十万到数百万张图像进行训练,以识别重要的特征。如果没有迁移学习,在一个小群体上的训练将不会学习这些重要的特征。然而,大多数预训练模型是在二维图像上训练的,并不适用于原始 3D 医学图像。

常规放射组学特征

常规放射组学是描绘感兴趣区域(ROI)和提取“手工”特征的方法。这些特征试图通过捕获描述 ROI 形态、形状和纹理的参数来描述 ROI(Wang 等人,2014)。这些特征然后与结果变量相关联,例如存活时间。

形状特征顾名思义,它们描述了所描绘的 ROI 的形状,以及包括其体积、最大直径、最大表面积、肿瘤紧密度和球形度在内的属性。

一阶统计特征本质上是体素值的汇总统计。这包括平均值、中间值、最小值、最大值、偏斜度、峰度、均匀性和熵。

二阶特征,也称为纹理特征,是从体素到相邻体素的关系中获得的。纹理特征提供了关于体素强度和几何形状的信息。一组常见的纹理特征是从灰度级共生矩阵中导出的,灰度级共生矩阵量化了给定范围内具有相同强度的体素的数量。另一个例子是从灰度级游程矩阵(GLRLM)导出的纹理特征,该矩阵计算具有相同强度的连续体素的数量。GLCM & GLRLM 之间的关键区别是连续体素强度的计数。

高阶统计特征通常是一阶或二阶特征,从经过数学变换或滤波的图像中获得。这个想法是他们将抑制不必要的变化/噪音或揭示重要的细节/模式。用于计算这些特征的技术包括分形分析、闵可夫斯基泛函的泛函分析、小波变换和高斯拉普拉斯变换。

随着基于常规放射组学特征的技术、软件及其复杂性的增加,图像生物标记标准化倡议(IBSI)概述了一系列特征提取指南和特征命名法(Zwanenburg 等人,2016)。

放射基因组学

“放射基因组学”一词最初用于描述放射治疗对肿瘤基因谱的毒性作用(Kang et al .,2018)。然而,最近放射基因组学已被用于描述放射组学特征及其与基因组学及其他的关联,如蛋白质组学和代谢组学/代谢组学(Peeken 等人,2018)。尽管使用术语放射基因组学来描述放射组学与代谢组学/代谢组学的关系可能会由于基因组学后缀而增加不必要的混淆。

放射组学和放射基因组学的挑战

虽然放射组学和放射基因组学领域有潜力,但在它进入临床之前,必须解决几个挑战。(谢赫。, 2017).

从参与者选择到无线电组学建模,无线电组学流程中的每一步都容易出错。这可能导致错误的传播。例如 ROI 描绘,具有一定程度的观察者间可变性。这很难控制,特别是如果 ROI 没有被多位放射科医生描绘和计算相似性得分,这可能会影响下游的放射组学特征(Leijenaar 等人,2013)。

Leijenaar 及其同事的一项研究显示,在非小细胞肺癌队列的 PET-CT 扫描中,由 5 名观察者描绘的独立 ROI 之间的类间相关系数(ICC)大于 0.9。有趣的是,在 Leijinaar 的研究中,重测队列的大多数放射组特征的 ICC 较低(平均 0.71)。然而,这一队列只有 11 名患者,而观察者间队列有近 23 名患者。

IBSI 和定量成像生物标记联盟等团体开始为整个放射组学管道(从患者扫描到建模)制定标准指南,以提高可重复性。来解决无线电通讯管道中的问题。Lambin 和他的同事提出了一个 radiomics 质量评分系统,这是一个 36 分的系统,用于提高整个 radiomics 管道的稳定性。这个积分系统的基础是 16 个关键要素。这些问题包括,如果不同的临床医生进行了多次分割,是否收集了幻像,以及作品是否是开源的。

总结

放射组学是一种从医学图像中提取更多信息的廉价、高效和非侵入性的方法。传统的放射组学和深层放射组学都面临一些挑战。然而,当这些策略在临床上变得可行时,有可能引发一场巨大的医学革命。

机器学习中真正“公平”的是什么?

原文:https://towardsdatascience.com/what-is-really-fair-in-machine-learning-1fcdb6f35313?source=collection_archive---------25-----------------------

寻找衡量和想象公平的方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源

机器学习中的平等

答随着机器学习领域的扩大,人工智能的力量被用于做出关键决策,我们开始怀疑机器学习算法是否真的“公平”机器学习算法正在影响存在歧视和偏见的决策;我们的目标是衡量这种决策的结果,并确保我们的预测是平等的。尽管机器学习模型可能有助于人类决策,同时节省时间,但 ML 算法产生的结果也可能显示出有利于特定群体的偏差。随着衡量和维护公平的需求变得越来越重要,机器学习中的平等是研究人员不断探索的新领域。

没有数据,机器学习算法就无法运行。数据是机器学习中决策的关键;因此,训练数据中出现了许多偏差。数据中的偏差主要是由人类收集方法对少数群体的错误信息或极少信息造成的。虽然有些人可能认为改变数据收集方法会降低一个群体对另一个群体的偏好,但事实是,在大多数情况下,无法确保数据收集过程中的平等。相反,我们需要让模型产生不受种族或性别等潜在偏见因素影响的输出。仅仅知道数据可能不公平是远远不够的,**我们需要能够通过我们预测的这些敏感属性来衡量和表示关系。**这些关系可以通过工具和指标计算甚至可视化,从而更好地帮助我们理解模型和数据中的不平等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者使用 Canva 创建的图像

定义问题

如前所述,对某些群体的不公平是由“敏感属性造成的,这些属性可能会将一个类别与另一个类别区分开来,如种族或性别。在一个完美的场景中,一个模型将基于对任何群体都一视同仁地提供的特征来预测一些目标。最简单的解决方案是删除这些“敏感属性”。然而,简单地取消这些功能并没有多大作用。由于大多数敏感属性在人与人之间是非常独特的,该模型仍然能够根据提供的其他信息推断出被移除的特征。预测或数据必须满足某些测量或统计特性,才能被认为是“公平的”。

想象一下这样一种情况,很多人都在申请一份有着不同经历的工作。我们的目标是根据一个人的特征来预测他是否会被录用。这里,将代表敏感或受保护的特征, X 将是告诉我们关于申请人的任何其他信息, Y 是基本事实,ŷ是我们的预测。

我们可以通过估计给定特征 XA. 的概率分布来表述这个问题

当地面真值为 1 关于特征 X 和被保护属性 A 时。

评估方法和指标

测量模型预测最广泛使用的标准之一是人口统计均等

人口均等

为了满足这个性质,必须在统计上独立于。简单来说, A 无论如何都无法与 Y 的预测联系起来,无论地面真值如何。**

人口均等可以进一步扩展为强人口均等**。在前面的人口统计均等的情况下,我们声明二元模型输出必须独立于敏感属性。二元结果由模型连续输出的阈值决定,如果预测值大于阈值,我们将其视为 1。可以对某个阈值实施人口统计均等,但不能确保它适用于所有情况。另一方面,强人口统计奇偶校验在和模型的连续输出之间强加了统计独立性,进一步确保无偏性。在我们的场景中,没有任何其他特征,每个人都应该有相同的机会获得工作,不管他们的敏感属性如何。**

类似于人口均等,还有机会均等。机会平等只会限制优势群体的平等。在我们的情况下,它被提供了工作。机会均等允许预测依赖于只能通过地面真相。请注意,该方法允许使用与结果直接相关的特征,但不允许使用*来表示结果。*****

机会均等

对于优势结果中的的所有值,真实阳性率应保持相同。它没有人口统计的奇偶校验严格,这确保了我们的预测成为某一类的概率在 A 的所有值中保持不变,而不管地面是否真实。简而言之,对于一群具有相同资历的人来说,无论他们的“敏感属性”如何,他们都有同等的机会被录用。这具有更广泛的应用,因为大多数人只关心“积极群体”中的不歧视。**

最后,还有预测奇偶校验。预测奇偶性,或者有时称为结果测试,更侧重于 Y 的地面真相。它要求给定我们的预测 y-hat,地面真理不能依赖于*与机会均等相对的是我们的预测*****

给定 Y-hat,a 在统计上独立于 Y

这表明我们的模型的精度,或者说*为正并且它确实属于正类的概率,应该在 A 的所有值上保持相同。*

对 CBNs 的温和介绍

既然我们已经建立了如何通过我们的预测来衡量和评估公平性的意识,我们将手转向可视化。因果贝叶斯网络可以表示场景,并通过箭头和图表来说明公平性。回到我们的情况:

  • 对每个人来说,我们有 x 个特征,这些特征在某些方面告诉我们这个人的情况。
  • 我们还有 一个 ,受保护的属性,在我们的例子中,它将是性别。
  • 我们的预测ŷ将产生一个介于 0 和 1 之间的概率,代表这个人是否会被提供一份工作。**

这种情况可以使用一个带有节点和边的有向无环图来表示,称为因果贝叶斯网络(CBN)。在贝叶斯网络中,节点代表与问题相关的随机变量或特征,而它们之间的边显示它们的统计依赖性。

如下右图所示, A 被认为是直接影响 Y 如果路径直接指向 Y. 这被认为是一条随意的路径。另一方面(左图),如果 A 不直接指向 Y ,则表明对于 A 要潜在地影响 Y ,必须经过 X 。当敏感属性的影响通过其他特征 X 表示时,被认为是公平的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CBNs,图片由作者使用 LucidChart 提供

在这个特定的图中,从 AX 的路径代表基于Ap(X | A)X 的概率。从 X 再到 Y 的路径,就是基于 X,p(Y | X)Y 为真的几率。在从 A 到 X 没有偶然路径的情况下,3 个变量的联合分布

A 可能会影响 Y ,但不会直接影响。

当在 A 和 Y 之间建立任何偶然路径时,上面提到的度量不能被满足。CBNs 还有很多功能,甚至可以用它来量化不公平,但是,它的基本功能就像上面描述的一样简单。

结论

在这篇文章中,我们讨论了各种方法来衡量公平,甚至可视化与它相关的关系。数据中的不公平可能很难甚至不可能消除,因此我们需要能够发现这种不平等,并能够解释它对我们的模型预测的影响。

什么是回归均值?

原文:https://towardsdatascience.com/what-is-regression-to-the-mean-f86f655d9c42?source=collection_archive---------3-----------------------

入门

一个容易理解但容易忘记的统计学概念

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

艾萨克·史密斯Unsplash 上拍摄的照片

以下是我过去读过、听过或说过的一些事情。你能找出这些陈述中的错误吗?

  • 一位老师感叹道:“当我表扬我的学生做得好的时候,下一次他们尝试的时候,他们往往做得不太好。当我惩罚学生的糟糕表现时,下一次他们会做得更好。因此,惩罚有效,奖励无效。”
  • 一个有抱负的运动员惊叹道:“哇,昨天我的脚真的很痛,我把它泡在一碗泡了大蒜的热水里,现在感觉好多了。那种大蒜味的水里一定有某种治疗的功效!”
  • 一位影评人规定:“获得奥斯卡奖,演艺圈最负盛名的奖项,会导致演员的职业生涯 走下坡路,而不是上升 。”

你的直觉可能是这些陈述有问题。毫无疑问,大蒜水治不了脚痛!这篇文章通过回归均值的概念解释了为什么这些陈述是有问题的,并建议了一些你可以采取的步骤来避免犯这种错误。

回归平均值

让我们来看看这些陈述中所谈到的事件模式。在所有这些陈述中,事件按如下方式展开:一个“极端”事件(无论是好的还是坏的方向)之后是一个更典型的事件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者插图

我们经常观察到事件以这种模式展开(极端、典型、典型、极端……),因为有一种统计现象叫做回归均值或*回归平庸。*回归均值是指罕见或极端事件之后可能会出现更典型的事件。随着时间的推移,结果会“回归”到平均值。

这个术语是由弗朗西斯·高尔顿爵士创造的,他注意到高个子父母的孩子往往比他们矮,而矮个子父母的孩子往往比他们高。从图形上看,这意味着如果我们在 x 轴上绘制父母的身高,在 y 轴上绘制孩子的身高,并通过所有的数据点绘制一条线,我们会得到一条斜率小于 1 的线(或相当于小于 45 度的角)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者插图

这张图表显示,平均而言,比普通男性高的父亲会有一个比他略矮的儿子。平均来说,比普通人矮的父亲会有一个比他稍高的儿子。

这一概念不仅有助于研究父母和子女身高之间的关系。如果你反思自己的经历,你很可能会发现这种现象随处可见。例如,回归均值解释了为什么你第二次去你上次评价很高的餐馆时却没有达到你的期望。当然,不仅仅是你认为上次的奶油布丁更好吃!

解释这种现象的统计特征是,连续获得多个极端结果就像多次获得硬币正面——不寻常且难以重复。让餐厅体验最佳的各种因素——食物的质量、你去的时候餐厅有多忙、服务员的友好程度、你那天的心情——很难在第二次完全重复。

谬误

一般的统计规则是,只要两个变量之间的相关性不完美(即在上图中,斜率不是 1),就会回归到均值。但是…那又怎样?

回归均值是一个关于世界的统计事实,既容易理解也容易忘记。因为事件的顺序是这样展开的(极端、典型、典型、极端……),我们的大脑会自动在“极端”事件和“典型”事件之间画出某种关系。我们(错误地)推断极端事件导致了典型事件(例如,奥斯卡获奖导致了随后的平庸电影),或者是这两个事件之间的某种东西导致了典型事件(例如,大蒜味的水让脚感觉“正常”)。

简而言之,当我们忘记回归均值的作用时,我们最终会将某些结果归因于特定的原因(人、之前的事件、干预),而事实上这些结果最有可能是由于偶然。换句话说,即使我们去除了之前的“极端”结果,“正常”结果也会发生。

让我们回想一下本文中的前三个陈述。关于这些陈述的真实性,回归均值意味着什么?

老师的错误:

老师暗示奖励他/她的学生会让他们下次表现更差。但是从回归均值的框架来看,老师对她的奖惩制度过于推崇。

正如丹尼尔·卡内曼在中笔记的思维,快与慢成功=天赋+运气。这个等式的“运气”部分意味着一系列的成功(或失败)很难重复,即使一个人有很多天赋(或没有天赋)。

这个等式的“运气”部分意味着一系列的成功(或失败)很难重复,即使一个人有很多天赋(或没有天赋)。

考虑两个学生简和乔。在第一年,简做得很糟糕,但乔是杰出的。简排在最底层的 1%,而乔排在最顶层的 99%。如果他们的结果完全是因为天赋,就不会有回归——简在第二年应该一样差,乔在第二年应该一样好(下图中的可能性 A)。如果他们的结果是运气和天赋各占一半,我们会期望有一半的回归:Jane 应该上升到 25%左右,Joe 应该下降到 75%左右(可能性 B)。如果他们的结果完全是由运气造成的(例如抛硬币),那么在第 2 年,我们预计 Jane 和 Joe 都将回归到 50%(可能性 C)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者插图

成功=天赋+运气等式意味着最有可能的情况是某种程度的倒退。第一年表现很差的 Jane 可能在第二年表现稍好(不管她是否受到惩罚),而第一年表现非常好的 Joe 可能在第二年表现稍差(不管他是否受到奖励)。老师的奖惩制度可能没有她想的那么厉害。

运动员的失误:

运动员暗示大蒜水治愈了她疼痛的脚。假设有一天运动员的脚疼得很厉害。绝望中,她尝试了各种方法,包括睡前用大蒜浸泡的水。她醒来后发现她的脚感觉好多了。也许水确实有一些治疗作用。但是回归均值似乎是一个同样可信的故事。

因为身体疾病有一个自然的起伏,一个真正痛苦的一天之后可能会有一个不那么痛苦的一天。疼痛起伏的模式可能会让人们觉得大蒜水是一种有效的治疗方法。但更有可能的是,大蒜水什么也没做。由于生物的自然进程,疼痛无论如何都会消退。

这个例子显示了如何回归到平均值通常可以用来使无效的治疗看起来有效。一个庸医看到他们的病人处于最低谷时,可能会开出一种无效的药,打赌他们的病人第二天会好一些,并推断这种药起了作用。

影评人的错误:

影评人暗指奥斯卡诅咒,即一旦你赢得了奥斯卡,你的下一部电影和表演就不会那么好了(甚至可能是)。几个对男女演员的采访表明,他们也相信这个诅咒,说赢得这样一个声望很高的奖项带来的压力和期望最终会伤害他们的职业生涯。

虽然压力和期望可能解释了他们下一部电影的成功(或失败),但“诅咒”也可能在很大程度上归因于回归均值。演员有时真的有很好的表演——结合了好的剧本、好的导演、与其他演员的良好化学反应,以及对角色的合适。从统计学上来说,在他们的下一部电影中,所有这些因素以相同的剂量和相同的方式出现的几率很低。因此,期待他们的下一次表演比他们获得奥斯卡奖的表演更差似乎是很自然的。“诅咒”并不神秘。

外卖食品

均值回归描述了“极端”结果之后往往会出现更多“正常”结果的特征。这是一个既容易理解又容易忘记的统计学概念。当我们目睹“极端”事件,如不太可能的成功或失败时,我们会忘记这种事件是多么罕见。当这些事件之后是更多的“正常”事件时,我们试图解释为什么这些“正常”事件会发生——我们忘记了这些“正常”事件是……正常的,我们应该预料到它们会发生。这常常导致我们将因果力量归因于那些可能在导致“正常”事件中没有起到任何作用的人、事件和干预。

为了避免犯这种错误,当我们试图解释一些(积极的或消极的)事件或结果时,我们应该首先抓住自己。然后,我们应该问自己以下问题:

  1. 从统计学上来说,这个结果有什么“不正常”吗?或者这是我应该预料到的吗?
  2. 这一事件之前是否有一些“极端”的结果,使得“正常”的事件相比之下显得“奇怪”?
  3. 即使我们删除了之前的事件,“正常”事件还会发生吗?“例如,即使运动员的脚没有泡在大蒜水里,她会感觉更好吗?

问题 1 迫使我们考虑正常事件发生的可能性。问题 2 鼓励我们思考彼此相关的结果,而不是孤立的观察。问题 3 促使我们进行反事实思维,想象一个我们认为导致“正常”事件的实体已经被移除的世界。通过问自己这三个问题,我们就不太可能把不必要的权力归于事件、人、系统和干预。

什么是拒绝抽样?

原文:https://towardsdatascience.com/what-is-rejection-sampling-1f6aff92330d?source=collection_archive---------3-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

拒绝抽样是一种 蒙特卡洛 算法,在代理分布的帮助下,从复杂的(“难以抽样的”)分布中抽取数据。

什么是 蒙特卡洛 *?*如果一种方法/算法使用随机数来解决一个问题,它被归类为蒙特卡罗方法。在拒绝采样的情况下,蒙特卡罗(又名随机性)有助于实现算法中的标准。

注意——我也有一个 YouTube 视频解释这个算法(如果你更喜欢看&听)——

YouTube——什么是拒绝抽样?

术语&符号

  • 目标(分布)函数f(x)——“难抽样”分布。我们的利益分配!
  • 建议(分配)函数**【x】***—*代理分配我们可以从中取样。

伟大的想法

关于抽样,几乎所有蒙特卡罗方法的中心思想是,如果你不能从你的目标分布函数中抽样,那么使用另一个分布函数(因此称为建议函数)。

然而,取样程序必须“遵循目标分布”。遵循“目标分布”意味着我们应该根据出现的可能性得到几个样本。简而言之,应该有更多来自高概率区域的样本。

这也意味着,当我们使用建议函数时,我们必须引入必要的修正,以确保我们的采样过程遵循目标分布函数!这个“校正”方面然后采取验收标准的形式。

它是如何工作的?

我将借助一个例子来解释这个算法。考虑一个我们不能从中取样的目标分布函数。该图及其函数形式如下所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

这是一个一维目标函数,我们的任务是获取介于-3 和 3 之间的样本。建议函数的一个选择是均匀分布函数。下面是它的函数形式,即 g(x)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

如果我把这个建议函数和我们的目标函数一起画出来,它看起来会像这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

正如您所看到的,目前我们的建议功能并没有完全封装我们的目标功能。一旦我们制定了纠正措施(或验收标准),这种封装的重要性就会变得清晰。

一个简单的补救方法是缩放建议函数,但是然后 缩放常数应该是多少?……这是拒绝采样的一个挑战,但对于更简单的一维目标函数,可以通过最大化来实现。这个比例常数用符号 CM. 表示。在本教程中,我将使用 C.

缩放后,我们的绘图将如下所示。在本例中, C 的值为 25。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

现在,我们准备使用我们的建议函数进行采样。然后,我们将评估样本的这两个函数。我在这里用一张图片来展示它,这样你就可以把它形象化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

样品用橙色 x 标记。粉红色点表示其 f(x)值。您还可以看到它将在哪里为建议函数 g(x)求值。因此,由于我们使用了均匀分布作为建议函数,所有样本的可能性相等,它们都将评估为 C g(x)

现在我们需要一个标准来帮助确保我们最终遵循目标分布函数。上面的情节应该可以帮助我们对这个准则形成一个初步的直觉。我将把你们看到的粉色点和橙色 X 所在的垂直线称为评估线。

你应该朝这个方向思考——“如果我能在这条评估线上得到一个数字,如果这个数字低于粉红色点,那么我会接受样本 X,否则我会拒绝它”。

但是这个所谓的数字会从哪里来,又怎么保证会落在这个所谓的评价线上呢?

这就是我们利用随机性(又名蒙特卡洛概念)的地方。但在此之前,让我给你看一下这个图的旋转版本,它呈现了一个更好的视觉效果(并有望带来更好的直觉)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

在这个旋转版本中,我们可以看到我们有一个范围为(0,Cg(x))的轴,我们接受 X 的标准是使用介于 0 和 Cg(x)之间的另一个数。如果这个数字在粉红色点的左边,我们接受我们的样品,否则我们拒绝它。

这里的主要思想是,粉色标记左右两边的线条部分不相等,并且(在某处)反映了样本出现的几率。但问题是谁会给我们这个落在这条评估线上的数字呢?

为了得到这个数,我们将使用另一个从 0 到 Cg(x)的均匀分布。尽管所有来自均匀分布的随机数的概率相等,但我们可以看到,随着评估线的尺寸变大,会有更多的数字落在评估线的右侧。这种随机性的使用使得这种算法被归类为蒙特卡罗算法。这是两个显示接受和拒绝事件的图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

基于上述解释,您可以看到我们对 X 的接受标准可以用数学方法表示为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

这就等于说,如果“u”低于粉色点,那么我们接受!…查看下图的原始形式:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

值得注意的是,当样品被剔除时,我们会将其丢弃并重复该过程,即

  • 从建议功能中获取另一个样本
  • 从均匀分布函数中获得一个介于 0 和 Cg(x)之间的随机数(u)
  • 检查 u≤f(x);如果是真的,接受它,否则拒绝它
  • 重复

我还想让你们熟悉这个验收标准的另一种表述。在这个公式中,我们将从均匀分布中得到“u ”,该均匀分布给出了从 0 到 1 的样本,即标准均匀分布。如果您使用它,那么验收标准将如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

如果我们多次重复这个算法,我们最终会得到一个类似这样的图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

显而易见,许多样品将被拒绝😩

一种补救方法是通过选择另一个建议分布函数来减少拒绝区域。请记住,您将选择建议分布函数,您可以从中采样,也可以封装目标函数(当然是在缩放之后!).下面我将向你展示高斯分布作为建议函数的用法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

拒绝区域现已显著减少。在这种情况下,比例常数 C 为 11。

一个简单的 python 实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

使用上述简单的 python 实现,我尝试了我们的两种建议分布函数(即均匀分布和高斯分布),结果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:作者

正如所料,选择高斯分布作为建议函数要好得多(53.63%的接受率)但仍然相当低效!

剔除取样的局限性和挑战

  • 选择合适的建议函数并找出其比例常数
  • 要求目标函数的 PDF 已知
  • 通常效率低下,尤其是在高维空间

如果你有问题,需要更多的澄清,请写在评论中,我会很乐意尝试回答他们,如果需要的话,更新文章。

什么是剩余连接?

原文:https://towardsdatascience.com/what-is-residual-connection-efb07cab0d55?source=collection_archive---------0-----------------------

一种训练深度神经网络的技术

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由Unsplash

训练神经网络的一个困境是,我们通常希望更深的神经网络具有更好的准确性和性能。但是,网络越深,训练越难收敛。在本文中,我们将讨论剩余连接(也称为跳过连接),这是一种简单但非常有效的技术,可以使训练深度神经网络更加容易。它被不同的模型广泛采用,从计算机视觉中首次引入的 ResNet,自然语言处理中的 Transformer,一直到强化学习中的 AlphaZero 和蛋白质结构预测的 AlphaFold。

公式

在传统的前馈神经网络中,数据按顺序流经每一层:一层的输出是下一层的输入。

剩余连接通过跳过一些层为数据到达神经网络的后面部分提供了另一条路径。考虑一个层序列,层 i 到层 i + n ,设 F 为这些层所代表的函数。用 x 表示层 i 的输入。在传统的前馈设定中, x 会简单的一个一个的经过这些层,层 i + n 的结果是 F ( x )。绕过这些层的剩余连接通常如下工作:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图一。残留块。由作者创作。

剩余连接首先对 x 应用身份映射,然后执行元素加法F(x)+x。在文献中,取一个输入 x 并产生输出F(x)+x的整个架构通常被称为剩余块或积木块。通常,残差块还会包括一个激活函数,例如应用于F(x)+x的 ReLU。

强调上图中看似多余的身份映射的主要原因是,如果需要,它可以作为更复杂函数的占位符。例如,只有当 F ( x )和 x 具有相同的维度时,元素相加 F ( x ) + x 才有意义。如果它们的维数不同,我们可以用线性变换(即乘以矩阵 W )代替恒等式映射,改为执行F(x)+Wx

通常,在整个神经网络中使用多个残差块,这些残差块可以具有相同或不同的架构。

它如何帮助训练深度神经网络

对于前馈神经网络,由于诸如爆炸梯度和消失梯度的问题,训练深度网络通常是非常困难的。另一方面,经验表明,具有剩余连接的神经网络的训练过程更容易收敛,即使网络有几百层。像深度学习中的许多技术一样,我们仍然没有完全理解关于剩余连接的所有细节。然而,我们确实有一些有趣的理论,这些理论得到了强有力的实验结果的支持。

表现得像浅层神经网络的集合

对于前馈神经网络,正如我们上面提到的,输入将依次通过网络的每一层。更专业地说,输入通过一个长度等于层数的单一路径。另一方面,具有剩余连接的网络由许多不同长度的路径组成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图二。剩余连接的未解视图。由作者创作。

作为例子,考虑具有 3 个剩余块的网络。我们可以尝试逐步扩展这个网络的公式:

*x*₃ = *H*(*x*₂) + *x*₂
   = *H*(*G*(*x*₁) + *x*₁) + *G*(*x*₁) + *x*₁
   = *H*(*G*(*F*(*x*₀) + *x*₀) + *F*(*x*₀) + *x*₀) + *G*(*F*(*x*₀) + *x*₀) + *F*(*x*₀) + *x*₀

有 2 = 8 项输入 x ₀对输出 x ₃.有贡献因此,我们也可以将此网络视为长度为 0、1、2 和 3 的 8 条路径的集合,如上图所示。

根据这种“未阐明的观点”,[6]表明,具有剩余连接的网络的行为类似于不强烈相互依赖的网络的集合体。而且梯度下降训练时的梯度大部分来自于短路径。换句话说,剩余连接不能解决爆炸或消失梯度问题。相反,它通过在“系综”中使用浅层网络来避免这些问题。

解决破碎渐变问题

虽然剩余连接不能解决爆炸或消失梯度问题,但它可以解决另一个与梯度相关的问题。

[1]表明,对于深度前馈神经网络,梯度类似于白噪声。这不利于训练,这个问题被称为破碎梯度问题。残差连接通过向梯度引入一些空间结构来解决这个问题,从而帮助训练过程。

实现示例

进一步阅读

  1. 残差连接的命名来源于以下:有些函数 H ( x )对于一个层的序列来说是非常难学的,但是学习相应的残差函数H(x)-x就容易多了。例如,恒等函数H(x)=id(x)很难拟合,但它的残差函数只是零函数,通过将所有层中的所有权重都设为 0,可以很容易地学习到零函数。
    有了残差连接,我们的层只需要学习F(x)=H(x)-x,残差块的最终输出就是
    F(x)+x = H(x)-x 关于这个动机的更多细节,我们可以参考 ResNet 的原始论文[3]。
  2. [5]示出了残差块能够执行迭代特征细化,这意味着每个块略微改善了前一层的表示。这部分解释了为什么具有残差块的非常深的神经网络具有更好的准确性:残差块越多,表示越精细。
  3. [2]表明 ResNet 模型架构,通过改进的训练和扩展策略,能够匹配最近的最新性能。这展示了剩余连接的有用性和相关性。
  4. 剩余连接的关键特征是它提供了从早期层到后期层的短路径。[4]通过将所有层直接相互连接,进一步发展了这一思想:每一层从所有前面的层获得输入,并将其输出传递给所有后面的层。这表明在设计神经网络体系结构方面有很大的创造性空间。

参考

  1. D.Balduzzi,M. Frean,L. Leary,J.P. Lewis,k . w-d . Ma 和 B. McWilliams。破碎的渐变问题:如果结果是答案,那么问题是什么? (2017),ICML 2017。
  2. I .贝洛、w .费杜斯、x .杜、E.D .库布克、a .斯里尼瓦斯、t-y .林、j .施伦斯和 b .佐夫。重温 ResNets:改进的培训和扩展策略 (2021),NIPS 2021。
  3. K.何,张,任,孙军。用于图像识别的深度残差学习 (2016),CVPR 2016。
  4. G.黄,刘,范德马腾,温伯格。密集连接的卷积网络 (2017),CVPR 2017。
  5. 南亚斯特日布斯基、达皮特、巴拉斯、维尔马、切和本吉奥。剩余连接鼓励迭代推理 (2018),ICLR 2018。
  6. A.韦特、m .威尔伯和 s .贝隆吉。残差网络的行为类似于相对较浅网络的集合 (2016),NIPS 2016。

什么是负责任的 AI?

原文:https://towardsdatascience.com/what-is-responsible-ai-548743369729?source=collection_archive---------8-----------------------

能力越大,责任越大

对一些人来说,人工智能这个词可以激发进步和生产力的想法。对其他人来说,前景不太乐观。许多担忧,如不公平的决策、工人被取代、缺乏隐私和安全,都是有根据的。更糟糕的是,这些问题很多都是 AI 特有的。这意味着现有的指导方针和法律不适合解决这些问题。这就是负责任的人工智能发挥作用的地方。它旨在解决这些问题,并为人工智能系统建立问责制。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源: flaticon

为什么我们需要负责任的人工智能

当我们谈论人工智能时,我们通常指的是在系统内用于自动化某事的机器学习模型。例如,自动驾驶汽车可以从传感器中获取图像。机器学习模型可以使用这些图像来进行预测(例如,我们面前的物体是一棵树)。汽车使用这些预测来做出决策(例如,左转以避开树)。我们把这整个系统称为人工智能。

这只是一个例子。人工智能可以用于从保险承保到检测癌症的任何事情。决定性的特征是系统做出的决策很少有人参与。这可能会导致许多潜在的问题,公司需要定义一种使用人工智能的明确方法。负责任的人工智能是一个治理框架,旨在做到这一点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

责任 AI 的主要目标(来源:作者)

该框架可以包括关于可以收集和使用哪些数据、应该如何评估模型以及如何最好地部署和监控模型的细节。该框架还可以定义谁对人工智能的任何负面结果负责。不同的公司有不同的框架。一些将确定具体的方法,其他的将有更多的解释。他们都寻求实现同样的目标。那就是创造可解释的、公平的、安全的、尊重用户隐私的人工智能系统。

责任人工智能的目标

首先提到的领域是可解释性。当我们解释一个模型时,我们得到了它如何做出预测的解释。人工智能系统可能会拒绝你的抵押贷款申请,或者诊断你患有癌症。即使这些决定是正确的,用户也可能会要求解释。有些模型比其他模型更容易解释,因此更容易得到解释。负责任的人工智能可以定义我们如何构建可解释的模型,或者何时可以使用不太可解释的模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与可解释性相关的是模型公平性。人工智能系统有可能做出歧视某些人群的决定。这种偏差来自用于训练模型的数据中的偏差。一般来说,一个模型的可解释性越强,就越容易确保公平和纠正任何偏见。我们仍然需要一个负责任的人工智能框架来定义我们如何评估公平性,以及当发现一个模型做出不公平的预测时该怎么办。这在使用不易解释的模型时尤其重要。

安全和安保是另一个问题。这些对于软件开发来说并不陌生,可以通过加密和软件测试等技术来解决。不同的是,与一般的计算机系统不同,AI 系统不是确定性的。当面对新的情况时,他们会做出意想不到的决定。这些系统甚至可以被操纵做出错误的决定。当我们与机器人打交道时,这尤其令人担忧。如果他们犯了错误,像自动驾驶汽车这样的事情可能会造成伤害或死亡。

最后一个方面是隐私和数据治理。所用数据的质量很重要。如果人工智能使用的数据有错误,那么系统可能会做出错误的决定。一般来说,AI 也不应该被允许使用敏感数据(例如,病史、工会会员)。在欧洲,这些问题大多由 T2 的 GDPR 解决。在欧洲以外,它们将需要由公司自己负责的人工智能框架来解决。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

归根结底,这一切都归结为信任。如果用户不信任 AI,他们就不会使用你的服务。我们不会信任使用我们不愿意分享的信息的系统,或者我们认为它会做出有偏见的决定。如果我们认为它会对我们造成身体伤害,我们当然不会信任它。对决策的解释和对这些决策的问责对建立这种信任大有帮助。这种对信任的需求是推动使用人工智能的公司进行自我监管的原因。

负责任人工智能的未来

目前,当涉及到人工智能时,公司被期待自我监管。这意味着他们必须创建和实现自己负责任的人工智能准则。像谷歌、微软和 IBM 这样的公司都有自己的指导方针。这方面的一个问题是,负责任的人工智能的原则在各个行业的应用可能不一致。较小的公司可能甚至没有资源来创建自己的公司。

一个潜在的解决方案是所有公司都采用相同的指导方针。例如,欧盟委员会最近发布了可信人工智能的道德准则。这详细说明了人工智能被认为是可信的 7 个关键要求。使用这些准则将有助于公司确保他们的人工智能系统符合相同的标准。真正的问题是——我们能相信公司会自我监管吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2020 年人工智能和机器学习状态报告包括了来自 374 家从事数据/人工智能工作的组织的回复。75%的组织表示,人工智能是其业务的重要组成部分。然而,只有 25%的人认为公平的人工智能很重要。这表明答案是否定的;不,我们不能相信他们。为了使共同准则有效,它们也必须得到执行。换句话说,指导方针必须成为法律/法规,公司必须面对不遵守它们的惩罚。

“毫无疑问,人工智能需要监管。问题是如何最好地实现这一点,”—桑德尔·皮帅(谷歌首席执行官)

这似乎是我们前进的方向。在欧洲,最近已经提出了新的法规。它们基于上述道德准则,并将影响许多行业。在这一点上,美国没有这样的法规。尽管如此,谷歌、脸书、微软和苹果等科技公司的高管都呼吁围绕数据和人工智能进行更多监管。所以看起来这只是时间问题。

我们提到了算法公平性。这是负责任人工智能的重要组成部分,很可能成为许多人工智能监管的焦点。这本身就是一个非常有趣的话题,我们将在下面的文章中进行更深入的探讨。

图像来源

所有图片均为本人或从 www.flaticon.com获得。在后者的情况下,我拥有他们的高级计划中定义的“完全许可”。

负责任的人工智能框架示例

谷歌 | 微软 | IBM | 欧盟委员会

其他参考文献

D.佩萨奇和 e .施慕利,算法公平性 (2020),https://arxiv.org/abs/2001.09784

A.吉利斯,责任 AI (2021),https://search enterprise AI . techtarget . com/definition/responsible-AI

埃森哲,负责任的人工智能:在你的人工智能解决方案中建立信任的框架 (2018),https://www . Accenture . com/_ ACN media/PDF-92/Accenture-AFS-Responsible-AI . PDF

阿彭,《2020 年人工智能和机器学习状况报告》 (2020 年),https://appen . com/whites/The-State-of-AI-and-Machine-Learning-Report/

K.瓦尔希, AI 法律来了 (2020),https://www . Forbes . com/sites/cognitive world/2020/02/20/AI-Laws-Are-Coming/?sh=5b526ef7a2b4

南 Schechner & V. Pop,谷歌推如何监管人工智能的‘明智’想法 (2020),https://www . wsj . com/articles/Google-pusses-Sensible-Ideas-for-How-Regulate-AI-11579521003?mod=article_inline

A.Satariano,欧洲提出人工智能严格规则 (2021),https://www . nytimes . com/2021/04/16/business/Artificial-Intelligence-regulation . html?sm typ = cur&smid = tw-nytimes

广义线性模型有什么好概括的?

原文:https://towardsdatascience.com/what-is-so-general-about-generalized-linear-model-15dde9be2640?source=collection_archive---------21-----------------------

线性和非线性数据回归模型的一般形式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由来自佩克斯艾萨克·加西亚拍摄

我们在许多用例中使用线性回归来模拟标量响应变量和一个或多个解释变量之间的线性关系。线性回归做出一些关键假设,如响应变量的正态性和恒定方差。那么,如果响应变量不遵循“通常的”假设,如正态性和恒定方差,会发生什么?广义线性模型(GLM)是解决这一问题的常用数据转换方法之一。但问题是 GLM 由许多术语、符号和组件组成。所以,有时候理解这个概念有点混乱。不过不用担心,我是来帮你把所有概念都理解清楚的。

GLM 的三个基本统计程序是:

  1. 回归
  2. 方差分析,又名 ANOVA
  3. 协方差分析,也称为 ANCOVA

在本文中,我将主要关注 GLM 的回归部分,并讨论指数族以及当响应变量遵循属于指数族的任何一种分布时如何转换响应变量。

指数家族

给定单个参数θ,我们将指数族定义为一组概率分布,其概率密度函数(或离散分布的概率质量函数)可表示为

P(x| θ) = B(x) exp[η(θ) T(x) — A(θ)]

a 和η是将θ映射到ℝ.的函数

通过将η(θ)作为参数,我们可以用标准形式表示上述方程。

P(x| η ) = B(x) exp[η T(x) — A(η)]

在哪里,

η:自然参数

T(x):充分统计量

B(x):基本度量

A(η):日志分区

现在,我们来看看 伯努利分布 如何属于指数族。让我们考虑一个参数为φ(φ是事件的概率)的伯努利分布。所以 x 的 p.m.f 的形式是

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

所以,与我们能得到的标准形式相比,

B(x)=1

η= log(φ/1-φ)= >φ= 1/1+指数(- η)

T(x)=x

a(η)=-log(1-φ)

或者,A(η)=-log(1-1/1+exp(-η))[替换φ的值]

或者,A(η)= log(1+exp(η))

同样,对于均值未知、方差已知的正态分布https://statisticsbyjim.com/basics/normal-distribution/,p.d.f 如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

所以,η = / σ => = η σ

A(η)= / 2σ = η /2

类似地,对于参数为λ的 泊松分布 ,p.m.f 为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

因此,η = log λ => λ =exp(η)

并且 A(η) = λ = exp(η)

属于指数族的一些其他概率分布是二项式分布、伽玛分布、指数分布、贝塔分布、卡方分布等。

指数族有一些性质:

  1. 指数族的极大似然估计 w.r.t η是凹的。
  2. e[x;∂A(η)/ ∂η
  3. var[x;∂ A(η)/∂η

现在让我们看看一些常用的回归方法是如何利用指数族的概念从 GLM 族设计出来的。

广义线性模型

GLM 的基本思想是为响应变量的期望值拟合一个“适当的”函数的线性模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片—图 1

因此,GLM 主要由三部分组成:

  1. 响应变量的概率分布
  2. 线性预报值
  3. 链接功能

响应变量遵循某个参数的概率分布。

线性预测因子是模型参数β和解释变量 x 的线性组合。

链接函数 g 是将线性预测值和与响应变量 y 的概率分布参数链接起来的函数。

让我们看看如何使用 GLM 的概念来拟合一些常用的回归模型。

线性回归

响应变量 Y 遵循方差不变的正态分布。由于正态分布属于指数族,对于方差已知的正态分布 A(η) = η /2。所以,响应变量的期望值

E(Y) = ∂A(η)/ ∂η = η

已知σ =1,

我们可以写,Identity( ) = Identity(η) = η = βᵗ x

所以,响应变量 Y 服从带参数的正态分布,连接函数 g 应该是 恒等函数

逻辑回归

在这种情况下,响应变量只有两种可能的结果(二分法),通常称为“成功”和“失败”。因此,响应变量不遵循方差不变的正态分布。在这种情况下,我们可以说响应变量 Y 是一个伯努利随机变量。

所以,响应变量的期望值

E(Y) = ∂A(η)/ ∂η = 1/[1+exp(- η)]

我们可以写,logit(φ)= logit(1/[1+exp(-η)])=η= βᵗx

所以,响应变量 Y 遵循参数φ= 1/[1+exp(-η)]的伯努利分布,链接函数 g 应该是Logit function

泊松回归

现在让我们考虑另一种情况,其中响应变量不是正态分布的,它表示某个事件的计数。因此,响应变量可以遵循泊松分布或负二项分布。让我们看看如果响应变量 Y 遵循泊松分布会发生什么。

所以,响应变量的期望值

E(Y) = ∂A(η)/ ∂η =经验(η)

我们可以很容易地书写,

log(λ) = log[exp(η)] = η = βᵗx

所以,响应变量 Y 服从参数为λ =exp(η)的泊松分布,连接函数 g 应为 对数函数

好吧!好吧!理论到此为止。让我们来关注一下 GLM 在 Python 中的实现。

图片来源: giphy

让我们先看看如何在 python 中使用 GLM 的概念来拟合线性回归模型。

我使用 python 中的 statsmodels 库拟合的所有回归模型。

我用于线性回归的数据散点图有 2 个解释变量(汽车的马力和加速度)和 1 个响应变量(汽车的 mpg)(出现在图 2 的左侧面板中)。可以看出,解释变量和响应变量之间存在线性关系,响应变量的方差几乎是常数。因此,为该数据集拟合线性模型是一个下降的想法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片-图 2:线性回归图

拟合线性回归的代码非常简单。我将解释变量定义为 x,响应变量定义为 y,并在解释变量中添加了常数项。

不需要传递任何链接函数,因为高斯族的默认链接是标识函数。

现在,让我们关注一些非线性数据,因为在现实生活中,拟合线性模型并不总是可行的。

例如,我们需要根据候选人的 gpa 和多年工作经验来预测他/她是否会被某门课程录取。现在,这里的响应变量有两个结果“是”或“否”。

从图 3 左侧面板中的数据可以看出,x 和 y 变量之间不存在任何线性关系。事实上,最关键的一点是线性回归是无界的。所以,我们需要的不是线性回归,而是可以输出 0 到 1 之间的任何值的东西。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片—图 3:逻辑回归图

逻辑回归的代码也非常简单,除了概率分布和链接函数之外,几乎与线性回归相同。用于逻辑回归的分布是二项式/伯努利分布,使用的关联函数是 logit,这是二项式家族的默认值。

事实上,我们也可以使用 probit 函数作为链接函数。我们的主要座右铭是输出介于 0 和 1 之间。logit 和 probit 函数给出了几乎相似的推论。但是,由于可解释性,通常使用 logit 函数。

图 3 的右侧面板示出了直曲面被 S 形曲面代替,并且该值被限制在 0 和 1 之间。它还允许在 x 变量的低端和高端有不同的变化率,从而正确处理异方差

最后,让我们看看,如果我们需要使用学生的数学和科学分数来预测他们获得的奖励数量,我们可以做些什么。散点图看起来像图 4 左侧面板中的图。

我们无法对此数据进行线性回归拟合,因为响应变量的方差相对于解释变量而言不是常数。此外,响应变量的值是正整数,它是离散的,但用于线性回归的正态分布采用连续变量,它也可以是负的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片—图 4:泊松回归图

我们使用泊松分布进行泊松回归,以对数作为连接函数。

我们可以从图 4 的右侧面板看到,预测的表面是指数型的。

如需了解更多细节,如回归模型总结以及我如何在 python 中拟合 3d 图,请访问我的 GitHub 个人资料。

结论

总的来说,我们已经看到 GLM 可以用来拟合线性和非线性数据。事实上,我们可以使用其他几种非规范的链接函数来计算概率分布,从而以最有效的方式拟合数据。比如我们可以用 probit 函数进行逻辑回归;正态分布的对数函数。

因此,最终我们可以说广义线性模型是用任何类型的数据拟合回归模型的“通用”方法。

就是这样的乡亲。感谢阅读,快乐学习!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值