展會信息港展會大全

帶你識別AI數(shù)據(jù)集的各種面孔 (AI 從業(yè)萬字干貨)
來源:互聯(lián)網(wǎng)   發(fā)布日期:2024-01-31 10:52:58   瀏覽:4716次  

導(dǎo)讀:上一篇文章,我們講了AI神經(jīng)網(wǎng)絡(luò)的優(yōu)化,里面提到要用很多AI數(shù)據(jù)集才能完成訓(xùn)練。這篇文章,我們就來講下AI數(shù)據(jù)集的數(shù)個面孔,希望能一次給大家說明白。 歡迎一起揭秘AI的世界,相信對AI略有了解的朋友已經(jīng)知道,AI的智能是因為底層是一批又一批的數(shù)據(jù)在AI大...

上一篇文章,我們講了AI神經(jīng)網(wǎng)絡(luò)的優(yōu)化,里面提到要用很多AI數(shù)據(jù)集才能完成訓(xùn)練。這篇文章,我們就來講下AI數(shù)據(jù)集的數(shù)個面孔,希望能一次給大家說明白。

歡迎一起揭秘AI的世界,相信對AI略有了解的朋友已經(jīng)知道,AI的智能是因為底層是一批又一批的數(shù)據(jù)在AI大模型的后面支撐運(yùn)行,成為了基石,造就了AI。

如果讀過我前面幾篇AI系列文章的朋友,也會知道,AI的神經(jīng)網(wǎng)絡(luò)在機(jī)器學(xué)習(xí)中發(fā)揮了巨大的作用,而神經(jīng)網(wǎng)絡(luò)的訓(xùn)練也是基于數(shù)據(jù)來完成的。所以,接上篇和大家聊了如何訓(xùn)練神經(jīng)網(wǎng)絡(luò)的全過程技術(shù)原理后,這次我們來聊聊AI中的基石:數(shù)據(jù)集。

由于數(shù)據(jù)集部分要說的內(nèi)容比較多,一篇文章上萬字已經(jīng)是大部分人的閱讀上限了,但是吧,為了減少文字去壓縮內(nèi)容也非我本意。所以本次,為了說清楚數(shù)據(jù)集,又不想造成過長的閱讀壓力,我會將近期寫的數(shù)據(jù)集的內(nèi)容拆分成多篇文章發(fā)布。

照例,開篇提供文章結(jié)構(gòu)導(dǎo)圖,方便大家在閱讀前總攬全局,有大致的畫面框架。

一、什么是AI數(shù)據(jù)集?

在機(jī)器學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)集是一組經(jīng)過組織和整理的數(shù)據(jù),是用于AI模型的訓(xùn)練、驗證和測試的數(shù)據(jù)集合,其質(zhì)量、多樣性和數(shù)據(jù)規(guī)模會直接影響著AI模型的性能和泛化能力。

數(shù)據(jù)集通常包含大量的數(shù)據(jù)點(diǎn),每個數(shù)據(jù)點(diǎn)代表一個樣本或?qū)嵗,還有與其相關(guān)的特征和標(biāo)簽。特征是用來描述數(shù)據(jù)點(diǎn)的變量,而標(biāo)簽則是與數(shù)據(jù)點(diǎn)相關(guān)的輸出變量。

例如,在圖像識別任務(wù)中,數(shù)據(jù)集可能包括許多帶有不同顏色、形狀和大小的圖片,每張圖片的特征可以是像素值,而標(biāo)簽則表示圖片中物體的類別。

如果數(shù)據(jù)集存在錯誤、偏差或噪聲,AI模型在學(xué)習(xí)過程中可能會產(chǎn)生錯誤的理解和預(yù)測,從而降低其性能。

如果數(shù)據(jù)集包含的數(shù)據(jù)點(diǎn)過于相似或者缺乏代表性,AI模型可能會出現(xiàn)過擬合的問題,即在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但在新的、未見過的數(shù)據(jù)上表現(xiàn)不佳。關(guān)于數(shù)據(jù)擬合問題的討論,《萬字干貨)如何訓(xùn)練優(yōu)化“AI神經(jīng)網(wǎng)絡(luò)”模型?》中有更詳細(xì)的描述,就不在此贅述了。

一般來說,數(shù)據(jù)集規(guī)模越大,AI模型的學(xué)習(xí)效果越好。這是因為大規(guī)模的數(shù)據(jù)集可以提供更多的信息,幫助AI模型學(xué)習(xí)到更多的特征和規(guī)律。然而,數(shù)據(jù)集規(guī)模的增加也會帶來計算資源和時間的挑戰(zhàn)。

可見,我們在實際應(yīng)用中,需要根據(jù)任務(wù)的特性和需求,選擇合適的數(shù)據(jù)集,并對其進(jìn)行適當(dāng)?shù)念A(yù)處理和增強(qiáng),這樣可以提高AI模型的訓(xùn)練效果和泛化能力。

二、AI數(shù)據(jù)集長什么樣?什么格式?

為了適應(yīng)不同場景,數(shù)據(jù)也需要變成合適的模樣(也就是格式),便于AI模型可以直接運(yùn)用。因此,我們常常需要處理各種格式的數(shù)據(jù)集,也需要對常見的格式有一些了解,知曉其適用的場景,有哪些特點(diǎn)和不足之處,這樣我們在面對各種數(shù)據(jù)集和應(yīng)用場景時,就能做到“心中有數(shù)”。

數(shù)據(jù)集常見的格式主要有:CSV(逗號分隔值),JSON(JavaScript對象表示法),XML(可擴(kuò)展標(biāo)記語言),HDF5(層次數(shù)據(jù)格式5),Parquet(列式存儲),xlsx、xls等格式的Excel文件。

既然知道了有那么多格式,我們就分別根據(jù)這些常用的格式進(jìn)一步展開,先介紹這些格式的基本定義,為了便于大家理解,會舉一個簡單的例子,還會再說說什么場景下適合用什么數(shù)據(jù)格式來存儲和處理數(shù)據(jù),這些格式在實際運(yùn)用中又會暴露出哪些劣勢。

1. CSV(逗號分隔值)

這是最常見的一種數(shù)據(jù)格式,是一種簡單的文本格式,每行表示一個樣本,每列表示一個特征,各個元素之間用逗號分隔。

以下是一個簡單的CSV文件的例子:

在這個例子中,每一行代表一個數(shù)據(jù)點(diǎn)(一個人),而每列則表示該數(shù)據(jù)點(diǎn)的一個特征(姓名、年齡、城市)。逗號用于分隔不同的數(shù)據(jù)值。

CSV格式的數(shù)據(jù)文件結(jié)構(gòu)清晰,易于理解和操作。每個數(shù)據(jù)記錄都被逗號分隔開,每一列數(shù)據(jù)都是獨(dú)立的,我們可以很容易地通過簡單的文本編輯器或者表格軟件來查看和編輯數(shù)據(jù)。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用CSV格式存儲或處理數(shù)據(jù)?

【當(dāng)數(shù)據(jù)足夠簡單又結(jié)構(gòu)化表示時】

當(dāng)數(shù)據(jù)集的結(jié)構(gòu)相對簡單,又是結(jié)構(gòu)化的形式,每一行表示一個數(shù)據(jù)點(diǎn),每一列表示一個特征或?qū)傩,用CSV格式就是一個很不錯的選擇,直觀且方便。

【當(dāng)數(shù)據(jù)需要被多人共享時】

CSV文件是一種通用的文本格式,易于共享和協(xié)作。在多個團(tuán)隊或研究者之間傳遞數(shù)據(jù)時,CSV提供了一種簡單的、不依賴特定軟件的共享方式,很常用。

【當(dāng)數(shù)據(jù)需跨平臺使用時】

CSV格式具有跨平臺的優(yōu)勢,幾乎所有的數(shù)據(jù)處理工具和編程語言都支持CSV文件的讀寫。項目成員在不同環(huán)境和工具中使用數(shù)據(jù)非常方便。

【當(dāng)數(shù)據(jù)集規(guī)模比較小時】

對于規(guī)模相對較小的數(shù)據(jù)集,CSV是一個輕量級的選擇,性價比高。它不會占用過多磁盤空間,所以非常方便我們傳輸、存儲和處理數(shù)據(jù)。

【為了方便查看和編輯時】

CSV文件是純文本文件,可以用文本編輯器輕松查看和編輯,這很方便我們隨時查看或編輯數(shù)據(jù)。

我們在AI數(shù)據(jù)集的實際應(yīng)用中,也并不是優(yōu)先就用CSV格式,它也會暴露出一些劣勢。

【文件的大小會限制數(shù)據(jù)的處理能力】

由于CSV文件中的數(shù)據(jù)是以文本形式存儲的,這意味著當(dāng)數(shù)據(jù)集非常大時,CSV文件的大小也會相應(yīng)地增大。這可能會導(dǎo)致內(nèi)存不足,從而影響數(shù)據(jù)處理的效率和速度。

此外,對于大型數(shù)據(jù)集,可能需要將數(shù)據(jù)分割成多個CSV文件進(jìn)行處理,這會增加數(shù)據(jù)管理的復(fù)雜性。

【不適用于復(fù)雜數(shù)據(jù)結(jié)構(gòu)】

在實際應(yīng)用中,我們可能需要處理包含多種類型數(shù)據(jù)(如數(shù)值、文本、日期等)的數(shù)據(jù)集。然而,CSV格式只能簡單地將這些數(shù)據(jù)以字符串的形式存儲在一起,無法清晰地表示數(shù)據(jù)之間的層次關(guān)系和關(guān)聯(lián)性。

可見,CSV只能適用于簡單的表格形式的結(jié)構(gòu)化數(shù)據(jù)。對于包含復(fù)雜嵌套結(jié)構(gòu)、多層次關(guān)系或大量元數(shù)據(jù)的數(shù)據(jù)集,CSV格式不夠靈活。

【數(shù)據(jù)不規(guī)范就會出錯】

由于CSV文件中的數(shù)據(jù)是以逗號分隔的,因此如果某個字段中包含了逗號,或者字段的值中包含換行符等特殊字符,那么這個字段的值就會被錯誤地解析為多個字段。而且這種情況在實際應(yīng)用中是非常常見的,卻很難通過簡單的方法來避免或修復(fù)。

在我們了解了CSV格式后,在實際應(yīng)用時,面對需要處理的一堆數(shù)據(jù)時,我就可以知道什么時候用CSV格式,什么時候不用。

比如,只是數(shù)量較少又簡單的用戶表,含有用戶的姓名、年齡、地址等基礎(chǔ)文本信息的話,可以方便地存儲在CSV文件中。如果數(shù)據(jù)集包含時間序列或地理空間信息,數(shù)據(jù)結(jié)構(gòu)又比較復(fù)雜,CSV格式就不合適了。

2. JSON(JavaScript對象表示法)

JSON基于JavaScript的語言標(biāo)準(zhǔn),是一種輕量級的,用于存儲和交換數(shù)據(jù)的文本格式,支持層次結(jié)構(gòu)和復(fù)雜的數(shù)據(jù)類型,有著優(yōu)秀的結(jié)構(gòu)化數(shù)據(jù)表示能力。

在AI數(shù)據(jù)集中,往往存在復(fù)雜的信息層次和多層嵌套的結(jié)構(gòu),而JSON的樹狀表達(dá)方式非常適合清晰地呈現(xiàn)這些數(shù)據(jù)之間的關(guān)系。

以下是一個簡單JSON格式的例子:

在這個JSON中,每個對象表示一個數(shù)據(jù)點(diǎn),例如動物。對象包含各種特征(如顏色、大孝棲息地)以及一個標(biāo)簽(表示動物的類別)。這種結(jié)構(gòu)可以很好地表示復(fù)雜的數(shù)據(jù)集。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用JSON格式存儲或處理數(shù)據(jù)?

【當(dāng)需要多語言、多平臺應(yīng)用時】

JSON具備跨平臺兼容性。在多語言、多平臺的AI應(yīng)用中,我們常常需要進(jìn)行數(shù)據(jù)交換。JSON格式可以在不同編程語言和操作系統(tǒng)之間實現(xiàn)靈活通用。這種特性在構(gòu)建跨領(lǐng)域或多模塊的AI系統(tǒng)時顯得尤為重要。

【在Web應(yīng)用和API開發(fā)中】

由于JSON在JavaScript中的原生支持,以及易于解析和生成的特性,JSON成為了Web服務(wù)和應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)氖走x格式。

在與Web生態(tài)系統(tǒng)集成的場景下,選擇JSON有助于確保數(shù)據(jù)的順暢交流,為系統(tǒng)的互聯(lián)互通提供了便捷途徑。

【適用于輕量級應(yīng)用中】

JSON是一種輕量級的數(shù)據(jù)交換格式,結(jié)構(gòu)相對簡單,由鍵值對構(gòu)成,易于理解和編寫。也因為此特性,JSON在網(wǎng)絡(luò)傳輸中占用的帶寬相對較校

如果遇到一些對數(shù)據(jù)量要求不大的輕量級應(yīng)用或移動應(yīng)用,JSON是不錯的選擇,在這類應(yīng)用中JSON可以減少數(shù)據(jù)傳輸?shù)呢?fù)擔(dān),提高系統(tǒng)的運(yùn)行效率。

有利也有弊,我們在AI數(shù)據(jù)集的實際應(yīng)用中,JSON格式自然也會暴露出一些劣勢。

【數(shù)據(jù)冗余】

JSON格式的數(shù)據(jù)通常包含許多嵌套的結(jié)構(gòu),這可能導(dǎo)致數(shù)據(jù)的冗余。例如,如果一個對象的屬性是另一個對象的列表,那么這個屬性可能會被重復(fù)多次,導(dǎo)致數(shù)據(jù)的冗余,在存儲和傳輸時也會占用更多的空間和帶寬。

【解析與生成相對較慢】

由于JSON是一種文本格式,解析時需要進(jìn)行字符的逐個解析,通常需要消耗更多的計算資源和時間。而二進(jìn)制格式則可以直接通過字節(jié)進(jìn)行快速解析。因此,JSON的解析和生成相對于二進(jìn)制格式來說,會更加耗時。

正因為JSON文件不支持直接對數(shù)據(jù)進(jìn)行高效的壓縮和解壓縮操作。相比之下,當(dāng)需要對大量數(shù)據(jù)進(jìn)行快速讀寫操作時,使用JSON格式并不合適,二進(jìn)制格式可能會更加高效。

【處理復(fù)雜嵌套數(shù)據(jù)會比較麻煩】

由于JSON文件中的數(shù)據(jù)是以樹形結(jié)構(gòu)組織的,當(dāng)數(shù)據(jù)層次較深,存在大量嵌套和重復(fù)的信息時,JSON文件可能變得較為臃腫,在讀取或?qū)懭肭短讛?shù)據(jù)時需要進(jìn)行遞歸操作。這可能會導(dǎo)致性能下降并增加程序的復(fù)雜性。

BTW,遞歸是一種編程技巧,它是通過函數(shù)自我調(diào)用的方式來解決問題的一種方法;舅枷胧菍⒁粋問題分解為若干個相似的子問題,然后逐個解決這些子問題,最后將這些子問題的解合并得到原問題的解。如果對這方面感興趣的朋友,可以自行了解。

3. XML(可擴(kuò)展標(biāo)記語言)

XML是一種標(biāo)記語言,用于存儲和傳輸結(jié)構(gòu)化信息,適用于各種數(shù)據(jù)類型。它的主要特點(diǎn)是允許用戶自定義標(biāo)簽,這些標(biāo)簽可以用來描述數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。

以下是一個簡單的XML示例,表示一個包含不同信息的數(shù)據(jù)集:

在這個例子中, 元素包含多個 元素,每個 元素包含一個標(biāo)識符 、文本 和標(biāo)簽 。

XML和JSON有一些相似之處,但依舊有其獨(dú)特的優(yōu)勢。雖然在某些場景下逐漸被JSON取代,但在某些應(yīng)用中,仍然被廣泛使用著。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用XML格式存儲或處理數(shù)據(jù)?

【當(dāng)數(shù)據(jù)結(jié)構(gòu)復(fù)雜時】

由于XML的樹狀結(jié)構(gòu),它能夠自然地表達(dá)復(fù)雜的數(shù)據(jù)關(guān)系,包括嵌套、多層次結(jié)構(gòu)等。因此,XML非常適合表示具有復(fù)雜關(guān)聯(lián)的數(shù)據(jù),例如文檔、配置文件等。

【當(dāng)數(shù)據(jù)更新頻繁時】

如果一個AI系統(tǒng)需要頻繁地更新數(shù)據(jù),那么使用XML格式也是一個不錯的選擇。因為XML文件的讀取和寫入速度相對較快,這使得我們可以更快地加載新的數(shù)據(jù)并更新模型。

【當(dāng)對元數(shù)據(jù)需求高時】

如果數(shù)據(jù)集需要攜帶大量的元數(shù)據(jù)信息,如數(shù)據(jù)來源、標(biāo)簽、版本等,XML提供了靈活的方式來嵌入這些元數(shù)據(jù),有助于更全面地描述數(shù)據(jù)。

BTW,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),它提供了有關(guān)數(shù)據(jù)的描述性信息,幫助理解、管理和使用實際數(shù)據(jù)。在XML格式中,元數(shù)據(jù)通常以標(biāo)簽的形式嵌入到數(shù)據(jù)中,提供了額外的信息。

假設(shè)有一個圖書館數(shù)據(jù)庫,用于管理圖書信息。每本書都有詳細(xì)的元數(shù)據(jù),這些元數(shù)據(jù)可以使用XML格式進(jìn)行表示。

在上述XML示例中,每個元素表示一本書,而、等標(biāo)簽包含了有關(guān)該書的元數(shù)據(jù)。例如,提供了關(guān)于書籍類型的信息,提供了關(guān)于出版年份的信息,而元素包含了書籍在圖書館的位置信息。

通過這個小例子,可以看出通過使用XML格式,可以將這些元數(shù)據(jù)結(jié)構(gòu)化地組織在一起,不僅易于理解和處理,也有助于圖書館管理系統(tǒng)更有效地跟蹤圖書信息,提供查詢服務(wù),以及管理庫存。

我們在AI數(shù)據(jù)集的實際應(yīng)用中,XML格式也因為自身的一些劣勢(如下),自然也有不適用的地方。

【占用更多存儲空間】

XML文件的結(jié)構(gòu)相對冗余,包含了大量標(biāo)簽和元素,這些都會增加文件的大小,同時增加存儲和傳輸?shù)呢?fù)擔(dān)。尤其是在處理大規(guī)模數(shù)據(jù)時,這種情況可能成為性能瓶頸。

【解析復(fù)雜】

XML文件的解析相對復(fù)雜,需要使用專門的解析器。與其他格式相比,解析XML文件需要更多的計算資源和時間。這會導(dǎo)致在處理大型XML文件時,解析和處理速度相對較慢。

【標(biāo)記過多】

成也標(biāo)記,敗也標(biāo)記。XML因為使用了大量的標(biāo)記符號(如尖括號和斜杠)來定義元素和屬性。如果標(biāo)簽嵌套層次太深或標(biāo)簽使用過于頻繁,可能會導(dǎo)致文件結(jié)構(gòu)混亂,難以維護(hù)。

【不適合簡單數(shù)據(jù)結(jié)構(gòu)】

俗話說,什么馬配什么鞍。對于簡單的數(shù)據(jù)結(jié)構(gòu),使用XML格式可能顯得過于繁重。例如,如果只需表示鍵值對或簡單的層次結(jié)構(gòu),XML的結(jié)構(gòu)則顯得過于繁瑣,選擇更輕巧的格式可能更加合適。

總體而言,我們在實際應(yīng)用中,需要根據(jù)具體需求,綜合考慮XML的優(yōu)勢和劣勢,以及與其他格式的比較,選擇最適合的數(shù)據(jù)格式。

4. HDF5(層次數(shù)據(jù)格式5)

HDF5(Hierarchical Data Format 5)是一種用于存儲和組織大規(guī)模數(shù)據(jù)的文件格式。從“層次數(shù)據(jù)格式”這個名字中我們可以知道,HDF5支持層次化的數(shù)據(jù)結(jié)構(gòu),這意味著數(shù)據(jù)可以按照層次關(guān)系進(jìn)行組織,就像文件夾和文件的結(jié)構(gòu)一樣。這種層次化的結(jié)構(gòu)讓存儲和檢索復(fù)雜的數(shù)據(jù)變得更加靈活和高效。

HDF5的設(shè)計目標(biāo)是支持各種類型和復(fù)雜性的數(shù)據(jù),它支持多種數(shù)據(jù)類型,包括數(shù)值、字符、圖像和音頻等,適用于科學(xué)、工程等領(lǐng)域的數(shù)據(jù)管理和分析。

在AI機(jī)器學(xué)習(xí)中,特別是在深度學(xué)習(xí)和大規(guī)模數(shù)據(jù)處理方面,研究人員和工程師經(jīng)常使用HDF5格式來存儲和交換數(shù)據(jù),例如神經(jīng)網(wǎng)絡(luò)的權(quán)重、訓(xùn)練樣本等。

HDF5格式可以包含多個組(Group)和數(shù)據(jù)集(Dataset)。每個數(shù)據(jù)集都可以包含多維數(shù)組以及與之相關(guān)的元數(shù)據(jù)。以下是一個HDF5格式的文件示例:

在這個例子中,我們用HDF5格式存儲實驗室測得的溫度和濕度數(shù)據(jù)。Weather_Data是整個數(shù)據(jù)集的名稱,包含了多個實驗組(Experiment_1,Experiment_2等)。每個實驗組中都有溫度(Temperature)和濕度(Humidity)兩個數(shù)據(jù)集,它們分別包含相應(yīng)的測量數(shù)據(jù)。

HDF5格式這種層次化的組織方式可以讓權(quán)重信息清晰地保存和讀取,也適用于存儲和管理復(fù)雜、大規(guī)模的科學(xué)數(shù)據(jù),比如氣象學(xué)、地球科學(xué)等領(lǐng)域的數(shù)據(jù)。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用HDF5格式存儲或處理數(shù)據(jù)?

【當(dāng)處理大規(guī)模數(shù)據(jù)集時】

對于深度學(xué)習(xí)中包含龐大權(quán)重和特征的模型,HDF5格式就有了發(fā)揮之地。HDF5有壓縮和分塊存儲的特性,可以高效地壓縮、存儲和檢索大量數(shù)據(jù),能夠有效應(yīng)對深度學(xué)習(xí)模型中產(chǎn)生的海量數(shù)據(jù)。

【當(dāng)數(shù)據(jù)結(jié)構(gòu)復(fù)雜時】

當(dāng)數(shù)據(jù)集具有復(fù)雜的層次結(jié)構(gòu)或包含多個數(shù)據(jù)類型時,用HDF5格式比較合適。它支持多層次的數(shù)據(jù)組織,允許在同一文件中存儲各種數(shù)據(jù)類型,包括標(biāo)量、數(shù)組和復(fù)合數(shù)據(jù)類型。對于在傳感器網(wǎng)絡(luò)、科學(xué)實驗結(jié)果等場合中,涉及多層次信息的數(shù)據(jù)存儲和處理非常重要。

【有元數(shù)據(jù)管理需求時】

元數(shù)據(jù)對于數(shù)據(jù)集的理解和解釋至關(guān)重要。HDF5格式提供了高度靈活的元數(shù)據(jù)管理機(jī)制,允許我們附加詳細(xì)的描述性信息,對數(shù)據(jù)進(jìn)行標(biāo)注和注釋。正因為如此,數(shù)據(jù)集更具可讀性,更易于共享和協(xié)作,對于科研領(lǐng)域的數(shù)據(jù)集尤為有益。

在知道了適用場景之后,我們也同樣需要知道,在AI數(shù)據(jù)集的實際應(yīng)用中,HDF5格式會暴露出哪些劣勢?

【學(xué)習(xí)成本高相對較高】

雖然HDF5格式在靈活性和性能方面迪歐不錯,但與CSV或JSON等文本格式相比,HDF5文件的結(jié)構(gòu)和使用方式可能對新手不夠友好,需要一定的時間來適應(yīng)。這可能對一些小型項目或初學(xué)者構(gòu)成一定的障礙。

【不適用于簡單結(jié)構(gòu)和小規(guī)模數(shù)據(jù)】

HDF5格式的優(yōu)勢在于處理大規(guī)模和復(fù)雜結(jié)構(gòu)的數(shù)據(jù),但對于簡單結(jié)構(gòu)和小規(guī)模數(shù)據(jù),它可能就“大材小用”了,或者說性價比不高。使用HDF5格式存儲小規(guī)模數(shù)據(jù)會顯得繁瑣,而且文件大小相對較大,不如其他輕量級格式直觀。

【不適用于文本數(shù)據(jù)】

HDF5格式主要用于存儲數(shù)值型和結(jié)構(gòu)化的數(shù)據(jù),對于文本數(shù)據(jù)的支持相對較弱。在一些需要純文本存儲和處理的場景下,像CSV這樣的格式可能更為簡單和實用。

我們通過二元對立的角度來看,HDF5格式在處理大規(guī)模、復(fù)雜數(shù)據(jù)集上有優(yōu)勢,但在學(xué)習(xí)成本,數(shù)據(jù)類型兼容等方面也存在不足,我們在選擇格式時需權(quán)衡利弊,根據(jù)具體需求和應(yīng)用場景做出合適的選擇。

5. Parquet(列式存儲)

Parquet是一種開放源代碼的列式存儲格式,旨在提供高效的數(shù)據(jù)壓縮和快速掃描性能。它最初由Apache軟件基金會開發(fā),支持多種編程語言的讀寫。

它具有良好的壓縮性能和高效的查詢性能,適用于大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)。目前廣泛應(yīng)用于大數(shù)據(jù)領(lǐng)域,特別是在Apache Hadoop生態(tài)系統(tǒng)中。

假設(shè)我們有一個包含用戶信息的數(shù)據(jù)集,使用Parquet格式進(jìn)行存儲可能如下所示:

在這個例子中,我們?yōu)槊總用戶提供了姓名、年齡、電子郵件的信息。這種結(jié)構(gòu)充分展示了Parquet格式的列式存儲特性,有助于在處理大規(guī)模數(shù)據(jù)集時提高存儲和查詢效率。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用Parquet格式存儲或處理數(shù)據(jù)?

【當(dāng)數(shù)據(jù)類型和關(guān)系復(fù)雜時】

Parquet支持多種數(shù)據(jù)類型,包括數(shù)值、日期、時間戳等,所以它非常適合處理復(fù)雜的AI數(shù)據(jù)集。此外,Parquet還支持嵌套的數(shù)據(jù)結(jié)構(gòu),如數(shù)組和字典,這個特點(diǎn)有助于它可以輕松地表示復(fù)雜的數(shù)據(jù)關(guān)系。

【需要處理大規(guī)模的數(shù)據(jù)時】

Parquet有高效的查詢性能。在AI數(shù)據(jù)集中,經(jīng)常需要處理大規(guī)模的數(shù)據(jù),Parquet格式的列式存儲特點(diǎn),在查詢和分析特定列的數(shù)據(jù)時更加高效。AI應(yīng)用常常需要頻繁讀娶篩選或聚合大量數(shù)據(jù),用Parquet格式是很好的選擇。

又加上Parquet有良好的壓縮性能。Parquet的壓縮算法,可以減小存儲空間。在AI領(lǐng)域,數(shù)據(jù)集通常龐大,對存儲空間的有效利用至關(guān)重要。使用Parquet格式可以降低存儲成本,提高數(shù)據(jù)集的可擴(kuò)展性。

【處理時間變化的數(shù)據(jù)模式時】

Parquet支持嵌套數(shù)據(jù)結(jié)構(gòu)和模式演化。在AI研究中,數(shù)據(jù)集的結(jié)構(gòu)和字段可能會隨項目進(jìn)展而演化,而Parquet非常靈活,它可以輕松地處理復(fù)雜的數(shù)據(jù)類型和隨時間變化的數(shù)據(jù)模式。

與此同時,我們在AI數(shù)據(jù)集的實際應(yīng)用中,也需知曉Parquet格式會暴露出哪些劣勢?

【不適合頻繁追加數(shù)據(jù)】

Parquet就像一位單一專長厲害到天花板的歌手,讓它唱美聲可以到達(dá)一流,但是唱流行歌曲可能就一般般了。由此可見,Parquet格式適用于分析性質(zhì)的工作負(fù)載,如數(shù)據(jù)分析和查詢。但在一些需要頻繁修改和追加數(shù)據(jù)的場景下,Parquet可能并不是最佳選擇。

【不適合小規(guī)模數(shù)據(jù)】

我們在實際應(yīng)用中,也需要追求使用效益的性價比。對于小規(guī)模數(shù)據(jù)集,Parquet格式可能會顯得過于復(fù)雜,而且對存儲和處理的優(yōu)勢不如在大規(guī)模數(shù)據(jù)集中明顯。我們在做AI項目時,如果是在一些小型項目或快速原型開發(fā)中,選擇其他更簡單的格式可能更為合適。

【可讀性較差,學(xué)習(xí)成本高】

Parquet文件以二進(jìn)制格式存儲,因此可讀性較差,不如一些文本格式(如CSV)那樣直觀。這倒是和HDF5格式有了同樣的問題了?勺x性差也帶來了學(xué)習(xí)成本的提高,對于初次接觸Parquet的團(tuán)隊成員,可能需要額外的培訓(xùn),更多的時間來了解其工作原理、優(yōu)化技巧以及實操練習(xí)。

6.xlsx、xls等格式的Excel文件

最后,還是想說一下以xlsx、xls等格式為代表的Excel文件。對于xlsx或xls格式,相信大家都不陌生,我們常常在Excel中遇見這樣的格式。

想說一下Excel的原因也很簡單,因為它太常見了,常見到我們常常忽略了Excel本身并不屬于任何一種數(shù)據(jù)格式,它其實是一種軟件。它可以輔助我們錄入數(shù)據(jù)、處理數(shù)據(jù)、完成數(shù)據(jù)分析和數(shù)據(jù)可視化等。

同時,Excel文件可支持的格式太多了,如果都說就偏離了本文的重心。我就以最常用的xlsx、xls這兩個格式為例,來說一下我們在AI數(shù)據(jù)集的場景中,會如何運(yùn)用它。

我們將數(shù)據(jù)以xlsx格式存儲在Excel表格中,每個工作表可以包含一個或多個單元格,用于存儲數(shù)據(jù)、公式、文本等。每一行或者每個單元格可以包含一個數(shù)據(jù)點(diǎn),適用于結(jié)構(gòu)化數(shù)據(jù)。

以下是一個簡單的Excel表格中xlsx的示例,表示一個包含文本和標(biāo)簽的數(shù)據(jù)集:

在這個例子中,每一行代表一個數(shù)據(jù)點(diǎn)(一個文本例子),而每列則表示該數(shù)據(jù)點(diǎn)的一個特征(positive、negative、neutral)。每個單元格中的數(shù)據(jù)都按行和列組織,這是Excel表格的典型結(jié)構(gòu)。這種結(jié)構(gòu)化的表格形式非常適合表示和處理數(shù)據(jù)。

我們在AI數(shù)據(jù)集的應(yīng)用中,什么情況下會選擇用Excel文件存儲xlsx、xls這類格式的數(shù)據(jù)?

【當(dāng)數(shù)據(jù)小規(guī)模、結(jié)構(gòu)化時】

在處理小規(guī)模、結(jié)構(gòu)化的數(shù)據(jù)時,Excel的表格格式適合整齊排列的數(shù)據(jù),我們可以快速了解數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容,也能夠快速進(jìn)行基本的數(shù)據(jù)操作和分析,并通過Excel將數(shù)據(jù)存儲為xlsx、xls這類格式。

【當(dāng)數(shù)據(jù)有多種簡單類型時】

Excel支持多種簡單的數(shù)據(jù)類型,包括文本、數(shù)字、日期和時間等。如果我們需要將不同類型的數(shù)據(jù)存儲在同一個工作表中,同時還需要對數(shù)據(jù)進(jìn)行簡單的整合和分析,用Excel是很好的選擇。

【需要一些公式計算來處理數(shù)據(jù)時】

Excel支持各種復(fù)雜的數(shù)學(xué)和統(tǒng)計函數(shù),當(dāng)我們使用數(shù)據(jù)集時,如果需要對數(shù)據(jù)進(jìn)行處理和計算,可以在Excel中執(zhí)行操作,而無需編寫復(fù)雜的代碼。

雖然Excel非常強(qiáng)大,我們幾乎離不開它,但在AI數(shù)據(jù)集的實際應(yīng)用中,用Excel文件存儲xlsx、xls這類格式的數(shù)據(jù)會依舊存在一些劣勢。

【容量大小限制】

Excel的最大行數(shù)為1048576行,這意味著當(dāng)數(shù)據(jù)集的大小超過這個限制時,Excel將無法正常工作。

一般情況下,Excel文件的大小上限為100MB/200MB左右,這限制了可以存儲在單個Excel文件中的數(shù)據(jù)量。隨著數(shù)據(jù)集的增長,可能需要將數(shù)據(jù)分散到多個Excel文件中,這將導(dǎo)致數(shù)據(jù)管理和維護(hù)變得復(fù)雜和低效。

所以,對于大規(guī)模的數(shù)據(jù)集,特別是深度學(xué)習(xí)等需要大量數(shù)據(jù)的任務(wù),Excel可能無法滿足需求。

【不支持復(fù)雜數(shù)據(jù)類型】

復(fù)雜數(shù)據(jù)類型通常指的是那些無法通過簡單的數(shù)值或文本表示的數(shù)據(jù),例如圖像、音頻或視頻等。Excel在面對這類數(shù)據(jù)時,就會明顯暴露其局限性。

【不適合多模態(tài)數(shù)據(jù)】

多模態(tài)數(shù)據(jù)是指同時包含兩種或更多種形式的數(shù)據(jù)的數(shù)據(jù)。這類數(shù)據(jù)可能是一個產(chǎn)品描述,它包含文本描述(如產(chǎn)品的功能和規(guī)格),以及圖像信息(如產(chǎn)品的外觀和顏色)。

在這種情況下,我們需要同時考慮和處理文本和圖像信息,以便更好地理解和分析數(shù)據(jù)。這時,通過Excel就無法對數(shù)據(jù)進(jìn)行有效處理。

因此,當(dāng)數(shù)據(jù)集涉及多種類型的數(shù)據(jù)時,我們通常需要尋找更靈活的存儲和處理方式。例如,我們可以使用數(shù)據(jù)庫或者專門的數(shù)據(jù)處理軟件來存儲和處理多模態(tài)數(shù)據(jù)。

7. 不止這些

當(dāng)然,AI數(shù)據(jù)集中的格式遠(yuǎn)遠(yuǎn)不止以上列舉的這些,還有很多在專業(yè)領(lǐng)域派上用場的數(shù)據(jù)格式,比如TFRecord、Avro、Feather、DICOM等。

我們知道,在AI項目中,數(shù)據(jù)是推動模型訓(xùn)練和性能提升的核心。選擇合適的數(shù)據(jù)格式對于不同類型的AI項目至關(guān)重要。所以我們對圖像,文本,音頻,視頻,時間序列甚至是傳感器等等各類數(shù)據(jù),都需要找到匹配的數(shù)據(jù)格式。

在大規(guī)模數(shù)據(jù)集和實時應(yīng)用中,匹配的數(shù)據(jù)格式能夠提高數(shù)據(jù)處理的效率和速度。一些數(shù)據(jù)格式在存儲和讀取時更為高效,可以減少數(shù)據(jù)預(yù)處理的時間,加速模型的訓(xùn)練和推理過程,提高整體效果。

考慮到AI項目中的數(shù)據(jù)大小和存儲成本,以及不同的數(shù)據(jù)格式對存儲空間的需求不同。比如有些格式具有高度的壓縮性,適合大規(guī)模數(shù)據(jù)集的存儲,而有些則不需要。所以,我們在考慮存儲成本和資源限制時,選擇匹配的數(shù)據(jù)格式可以降低整體成本。

為了更好地訓(xùn)練監(jiān)督學(xué)習(xí)模型,選擇匹配的數(shù)據(jù)格式也有助于更好地處理數(shù)據(jù)標(biāo)注和標(biāo)簽。一些格式支持多種數(shù)據(jù)類型的同時保持標(biāo)簽信息,也可以讓數(shù)據(jù)集的標(biāo)簽管理更為方便。

總而言之,考慮到AI項目的特定需求、模型結(jié)構(gòu)、數(shù)據(jù)處理效率、存儲成本等多方面因素,我們提前選擇好合適的數(shù)據(jù)格式有助于提高AI模型性能、降低成本,并簡化整個工作流程。這樣做起來好處多多,我們何樂不為呢。

三、推薦幾個人工智能數(shù)據(jù)集

人工智能早已成為各行各業(yè)最受關(guān)注的“網(wǎng)紅”。好像凡事不和AI有關(guān),就仿佛被時代淘汰了。然而實際情況是,大多數(shù)AI項目由于種種原因無法實現(xiàn)成功部署。這其中一個重要因素就是數(shù)據(jù)質(zhì)量低或數(shù)據(jù)不足。

數(shù)據(jù)集對機(jī)器學(xué)習(xí)模型的性能日益重要,現(xiàn)在有許多站點(diǎn)都托管數(shù)據(jù)存儲庫,涵蓋主題廣泛,應(yīng)有盡有。無論機(jī)器學(xué)習(xí)項目是什么,都可以找到相關(guān)的數(shù)據(jù)集。

但是,我們在尋找合適的數(shù)據(jù)集時,需要先問自己兩個問題:

1.我想用AI項目達(dá)成什么目標(biāo)?2.我需要數(shù)據(jù)涵蓋哪些情景?然后,帶著答案去有目的地尋找。

如果想清楚了,就去網(wǎng)上看看有沒有你想要的公開數(shù)據(jù)集。以下就是推薦的幾個常見的公開數(shù)據(jù)集平臺

1. Kaggle

網(wǎng)址:https://www.kaggle.com/datasets

介紹:Kaggle 提供了一個龐大的數(shù)據(jù)集倉庫,包括各種領(lǐng)域的數(shù)據(jù),涵蓋了自然語言處理、計算機(jī)視覺、醫(yī)學(xué)、金融等多個領(lǐng)域。

2. UCI機(jī)器學(xué)習(xí)數(shù)據(jù)集庫

網(wǎng)址:https://archive.ics.uci.edu/

介紹:UCI機(jī)器學(xué)習(xí)數(shù)據(jù)庫被世界各地的學(xué)生、教育工作者和研究人員廣泛使用。它包含了多種類型的數(shù)據(jù)集,涵蓋了分類、回歸、聚類、關(guān)聯(lián)規(guī)則挖掘等不同任務(wù)的數(shù)據(jù)。這些數(shù)據(jù)集來自多個領(lǐng)域,包括醫(yī)學(xué)、金融、社會科學(xué)等。

3. Google Dataset Search

網(wǎng)址:https://datasetsearch.research.google.com/

介紹:“Google數(shù)據(jù)集搜索”是一個數(shù)據(jù)集搜索引擎。用戶只需搜索關(guān)鍵字,就能在網(wǎng)絡(luò)上發(fā)現(xiàn)托管在數(shù)千個存儲區(qū)中的數(shù)據(jù)集。目前已對近 2500 萬個數(shù)據(jù)集建立了索引,幾乎能找到你想找到的任何數(shù)據(jù)集。

4. AWS數(shù)據(jù)庫

網(wǎng)址:https://registry.opendata.aws/

介紹:AWS(亞馬遜)公共數(shù)據(jù)庫里面存儲了AWS收集的數(shù)據(jù)集,有來自各行業(yè)領(lǐng)先數(shù)據(jù)提供商的3000種現(xiàn)有數(shù)據(jù)產(chǎn)品。

5. 阿里云天池數(shù)據(jù)集

網(wǎng)址:https://tianchi.aliyun.com/dataset/

介紹:天池數(shù)據(jù)集是阿里集團(tuán)對外開放的科研數(shù)據(jù)平臺,覆蓋了電商、娛樂、物流、醫(yī)療健康、交通、工業(yè)、自然科學(xué)、能源等十多個行業(yè),涵蓋了數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、計算機(jī)視覺、自然語言處理、決策智能等經(jīng)典的人工智能技術(shù)領(lǐng)域。

四、新篇預(yù)告

以上,就是關(guān)于AI數(shù)據(jù)集的首篇內(nèi)容了,介紹了AI數(shù)據(jù)集是什么,這些數(shù)據(jù)集常用什么樣的格式來存儲和處理數(shù)據(jù),當(dāng)我們需要數(shù)據(jù)來做AI項目時,有哪些公開的數(shù)據(jù)集平臺可供參考。

AI的世界很大,在門外時會覺得神秘,剛?cè)腴T時又會覺得陌生,日漸相處之后又會發(fā)現(xiàn)如此有趣,AI數(shù)據(jù)集的內(nèi)容我們還沒說完,后面的篇章我們會圍繞“訓(xùn)練集,驗證集,測試集”的話題展開,繼續(xù)說說AI數(shù)據(jù)集。

本文由 @果釀 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于CC0協(xié)議。

贊助本站

人工智能實驗室
相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會 | 展會港