在国际论坛facebook上有一个有趣的讨论,“AI是否将代替人工?”尽管目前尚未定论,但一个不可否认的事实是,以AI机器人为主导的新兴应用在各领域如雨后春笋般出现。作为AI技术落地的一种表现形式,人机协同亦乘势崛起。从基本概念来看,人机协同是一个人与机器透过经验及工作交流,持续改善工作流程的过程。机器可以依据人类导入的信息及流程执行作业,人类再根据机器产出的成果进行调整,形成一种协作模式。本质上来讲,就是让人和机器各自做擅长的事情,互补性的实现价值最大化,而不仅仅是人和机器互相补位的问题。当前,这种协作模式已被应用到多个领域内,例如服务行业的智能客服系统、医疗行业的手术机器人、甚至是新闻领域...... Last article READ

了解使用AugLy的数据增强

介绍

机器学习和深度学习模型的一个常见问题是“过度拟合”。这意味着模型在训练数据集上的准确性非常高,但在测试数据上却没有较高的准确性。

为了解决过拟合问题,我们可以增加数据集的大小,即将模型暴露于新数据以获得更好的泛化。额外的数据并不总是可用的,收集起来可能具有挑战性,而且耗时且昂贵。在这种情况下,数据科学家使用称为“数据增强 (DA)”的过程。

使用数据增强,我们可以通过几种增强技术来扩展真实数据的大小。此过程在具有较小数据集和过拟合的模型的项目中是有益的。数据增强有助于提高模型的准确性。

机器学习和深度学习模型可以使用数据增强。可以增强图像、文本、音频和视频类型的数据。一些深度学习框架——Keras、Tensorflow、Pytorch 等具有内置的增强功能,而许多开源 Python 库是专门为增强而开发的。

针对不同数据类型的增强技术:

图像:图像的增强技术允许缩放、翻转、旋转、裁剪、改变亮度/对比度/清晰度/模糊、颜色过滤等等。

文本:文本的增强技术通过单词/句子改组、同义词替换、释义等来支持 NLP 任务。

音频和视频技术可以通过引入噪声、改变速度等来增强数据。

图像和文本数据增强

医疗保健、农业、制造、汽车等领域的项目处理图像处理,似乎受益于图像数据增强。同样,具有深度学习技术的 (NLP) 应用程序也受益于文本数据增强。本文重点介绍图像和文本增强。

所有生成的增强图像和文本都是独一无二的,我们可以使用增强技术的组合来构建用于模型训练的多样化数据集。

重要的是要了解,使用工具扩充数据集是高效且容易的,但选择适当的扩充选项或技术组合需要对手头的真实数据集有很好的了解和一定程度的经验。

有多个用于图像和文本的 Python 数据增强库,但我们将在本文中探索“Augly”库和一些增强技术。

什么是AugLy ?

AugLy 是 Facebook 最近推出的用于数据增强的 Python 开源项目。AugLy 旨在提高 AI 模型在训练和评估期间的稳健性。该库包括四种模式(音频、视频、图像和文本),并提供 100 多种数据增强方法。

在处理涉及音频、视频、图像或文本数据集的机器学习或深度学习项目时,该库可以增加数据并提高模型的性能。

AugLy 是如何工作的?

四种模式的 AugLy 库使用相同的接口。基于函数的技术以及基于类的方法可用于数据增强。强度函数定义图像变化的强度。当调用 AugLy 函数时,这些是使用参数定义的。为了更深入地了解数据是如何转换的,该函数为用户提供了转换后的信息。

现在让我们看看 AugLy 可用的一些数据增强技术。

使用 AugLy 进行图像数据增强

使用 pip 命令安装 AugLy

pip install augly

上面的命令是下载使用图像和文本模式所需的先决条件。

要安装音频和视频格式的附加依赖项,请使用以下命令

pip install augly[av]

pip 不安装 python-magic。要安装它,请运行以下命令。某些环境需要运行 AugLy

pip install python-magic-bin

如果你在 Google Colab 上运行本教程并遇到“No matching distribution found for python-magic-bin”错误,请改用此命令。

!sudo apt-get install python3-magic

对于 AugLy 的图像子库,我们将从'augly.'中导入'imaugs'子模型。utils 用于导入示例图像。

import os

import augly.image as imaugs

import augly.utils as utils

from IPython.display import display

在这里,我们定义了增强的图像路径。我们将使用鸟的示例图像。

# Image path setting 

input = '/content/bird.jpg'

图像缩放

imaugs 的 AugLy 的'scale()' 函数可以用来缩放图像。该方法需要一个重要的参数来定义表示小图像或大图像的图像。如果将其设置为较低的值,则图像会很小。否则,图像被放大。

# Image Scaling with small factor

image = imaugs.scale(input, factor=0.1)

display(image)

# Image Scaling with large factor

image = imaugs.scale(input, factor=0.7)

display(image)

图像模糊

使用此选项,我们可以降低图像清晰度,创建模糊图像。

# Image Blurring

image = imaugs.blur(input, radius = 4.0)

display(image)

图像亮度

使用此选项,可以修改输入图像的亮度。

# Increasing Image Brightness

image = imaugs.brightness(input, factor=1.2)

display(image)

图像暗度

我们可以降低亮度以使具有相同亮度特征的图像更暗。

# Making Image Darker

image = imaugs.brightness(input, factor=0.3)

display(image)

图像对比度

我们可以使用以下命令更改图像的对比度。

# Changing Image Contrast

image = imaugs.contrast(input, factor=2.7)

display(image)

图像翻转 - 水平和垂直

使用这些命令,我们可以水平和垂直翻转图像。

#horizontal flip

image_h = imaugs.hflip(input)

display(image_h)

#vertical flip

image_v= imaugs.vflip(input)

display(image_v)

图像灰度要将图像更改为灰度,我们可以使用以下命令

#Grayscale image

image = imaugs.grayscale(input)

display(image)

图像退化(椒盐噪声)

要向输入图像添加噪声,请使用

# Degrading Image Pixels

image = imaugs.shuffle_pixels(input, factor=0.3)

display(image)

图像倾斜

此功能以随机角度倾斜图像。

# Image skew

image = imaugs.skew(input)

display(image)

图像透视变换

我们可以通过定义 sigma 值(即标准偏差)来执行图像转换。较高的 sigma 值将意味着更强烈的图像转换。

# Image Perspective Transform

aug = imaugs.PerspectiveTransform(sigma=20.0)

image=aug(input)

display(image)

图像纵横比

使用这种技术,我们可以控制纵横比,即图像的高度和宽度。

#Changing Aspect Ratio

aug = imaugs.RandomAspectRatio()

image=aug(input)

display(image)

图像裁剪

可以使用以下命令将图像裁剪为必要的像素大小 -

# Cropping Image

image = imaugs.crop(input,x1=0.2,x2=0.8,y1=0.2,y2=0.8)

display(image)

使用 AugLy 创建模因

使用“meme format()”技术,AugLy 可用于创建模因。这种方法通过提供文本和图像来生成代表模因的图像。

例如,使用的图像包含文本“LOL”。下面的代码片段运行“meme_format()”函数并转换图像。

# Creating a meme

display(

   imaugs.meme_format(

       input,

       caption_height=75,

       meme_bg_color=(0, 0, 0),

       text_color=(255, 255, 255),

   )

'caption_height'、'meme_bg_color' 和 'text_color' 等参数用于自定义 meme 的显示方式。黑色的 RGB 是 (0, 0, 0),而白色的 RGB 是 (256, 256, 256)。

将图像转换为屏幕截图

'Compose()' 方法用于改变图像的外观。此函数需要更多参数来进行新转换,例如饱和度和应用于图像的叠加类型。

# Applying several transformations together to create a new image

aug = imaugs.Compose(

   [

       imaugs.Saturation(factor=0.7),

       imaugs.OverlayOntoScreenshot(

           template_filepath=os.path.join(

               utils.SCREENSHOT_TEMPLATES_DIR, "web.png"

           ),

       ),

       imaugs.Scale(factor=0.9),

   ]

display(aug(input))

AugLy 提供了更多的增强技术。你可以通过使用下面的命令来探索这些,了解它们,并将它们与你的图像一起使用。

help(imaugs)

使用 AugLy 进行文本数据增强

第一步是导入包含文本数据增强方法的文本模态。

import augly.text as textaugs

然后,进行示例文本输入。

# Sample text

txt = "Hello, Good Morning! How are you?"

在每个文本中,“simulates_typos”函数可用于通过拼写错误、键盘距离和交换方法来增加文本数据。

aug_tx = textaugs.simulate_typos(txt)

print(aug_tx)

我们可以在每个输入文本中添加标点符号。

print(textaugs.insert_punctuation_chars(txt))

AugLy 的“replace_bidirectional”方法反转每个输入文本中的每个单词或单词的一部分,并使用双向标记以原始序列生成它。它单独反转每个单词,即使换行也能保持单词顺序。print(textaugs.replace_bidirectional(txt))

AugLy 的“replace_upside_down”函数根据粒度将文本中的单词倒置。print(textaugs.replace_upside_down(txt))

结论

在本文中,我们介绍了数据增强在改进机器学习和深度学习模型中的作用。此外,我们看到了不同的图像和文本增强技术。AugLy库支持多种增强技术。我们从 AugLy 库中探索了其中的一些。

本文的主要内容:

· 数据增强可以克服数据短缺,因为它允许从可用的真实数据中扩展数据集。

· 数据增强可以提高模型性能并使其更加可靠。

· 可以使用数据增强库来增强图像、文本、音频和视频格式的数据。有几个专门为数据增强而开发的开源 Python 库。

· AugLy 是 Facebook 开发的开源数据增强库,支持 100 多种增强技术,并且易于初学者使用,是不同类型数据的不错选择。

上面讨论的增强的代码可在我的 GitHub 存储库中找到。你可以尝试本文中分享的增强功能或探索 AugLy 库中的其他增强功能。

       原文标题 : 了解使用AugLy的数据增强

价值投资是所谓投资的唯一一条路,不存在什么捷径,不存在什么窍门——段永平过去几年里,价值投资一直是市场的一条准绳,那些大市值、朝阳赛道的部分企业很容易被冠上价值的帽子。潮水退去之后,那些一路上涨的所谓大市值的股票价格开始了断崖式的下跌,有的甚至跌去了80%的还未止跌,段永平曾经说过,买公司就是买公司未来现金流的折现,而公司的安全边际其实就是自己对这家公司的理解度,和价格无关,4月22日,段永平再度发文,买入了腾讯控股。对于腾讯的“偏爱”,是基于这家公司当下已经跌入价值区间,越跌越买成了段永平的基本逻辑,就如当在外界最不看好的时候买入网易。人弃我取不仅仅是一种勇气,也是一种智慧。有人曾经问过段永......Next article READ