第二章

本系列只用于自己做筆記用.

來源 : 實(shí)用機(jī)器學(xué)習(xí) 李沐
https://www.bilibili.com/video/BV1Xh411p7M9

2.2 數(shù)據(jù)清理

Data Errors

現(xiàn)實(shí)中, 當(dāng)我們進(jìn)行模型訓(xùn)練時(shí), 如果我們使用的不是標(biāo)準(zhǔn)數(shù)據(jù)集, 我們就會(huì)難以評(píng)判模型的優(yōu)劣. 特別是當(dāng)用于訓(xùn)練的數(shù)據(jù)并不干凈的時(shí)候, 模型可能會(huì)難以收斂, 或者會(huì)損失精度.

一個(gè)好的模型通常能容納錯(cuò)誤的數(shù)據(jù), 但是會(huì)造成一定程度的精度下降.

而當(dāng)這個(gè)模型被部署在online并且接受新的數(shù)據(jù)時(shí), 將可能引發(fā)新的錯(cuò)誤. (如使用self supervised learning時(shí), 標(biāo)記的label不干凈, 但是又會(huì)重新放入到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練)

Types of data errors

  • Outliers : 數(shù)據(jù)分布不在正常的分布中.

  • Rule violations : 違背規(guī)則. 如某個(gè)必要的要素缺失.

  • Pattern violations : 違背設(shè)定的格式/語法. 如價(jià)格設(shè)置了美元, 但是給出的是rmb.

How to detect

  • Outliers : 類別修改, boxplot

  • Rule : functional dependencies , Denial constraints

  • Pattern : syntactic, semantic

數(shù)據(jù)變換

raw data 到我們需要的數(shù)據(jù)大體上是不一樣的, 這時(shí)候需要進(jìn)行數(shù)據(jù)變形.
我們通常把數(shù)據(jù)標(biāo)注后, 特征工程前的過程, 叫做數(shù)據(jù)變形.

Normalization

  • Min-Max normalization. 線性的劃分到[a,b]中.
    x'_i = \frac{x_i - min_X}{max_X - min_X} (b-a)+a

  • Z-score normalization. 0 mean 1 standard deviation.
    x'_i = \frac{x_i - mean(X)}{std(X)}

  • Decimal scaling. minimized to [-1, 1].
    x'_i = x_i / 10^j \quad smallest \ j, \ s.t. \ max(|X'|)<1

  • Log scaling. 相比于數(shù)值, 更注重比例.
    x'_i = log(x_i)

Image Transformations

圖片占用空間較大, 而且儲(chǔ)存成本較高.
一般我們會(huì)使用下采樣和剪切的方法. 而且機(jī)器學(xué)習(xí)對(duì)于低分辨率圖像也有較好的適應(yīng)性.
需要注意的是, 如果使用jpeg, 質(zhì)量為中等質(zhì)量(80%~90%), 大概會(huì)有1%的精度下降.
也可以使用whitening讓輸入冗余性更小, 且模型會(huì)收斂的更快.

Video Transformation

視頻預(yù)處理跟圖像大致相同, 都是用于平衡儲(chǔ)存空間、圖像質(zhì)量和讀取速度的.
通常使用的是10s內(nèi)的短視頻/片段(e.g. 包含一個(gè)動(dòng)作)
復(fù)雜的視頻也無法被神經(jīng)網(wǎng)絡(luò)所理解.
難點(diǎn) : 不同的視頻會(huì)有不同的壓縮算法, 需要在儲(chǔ)存和采樣解碼速度之間做妥協(xié). 為了加速, 有時(shí)會(huì)使用GPU解碼.

Text Transformation

詞根化、語法化.

am, is, are -> be
car, cars, car's, cars' -> car

詞源化tokenization.
把text分割成一個(gè)個(gè)詞.

text.split(" ")

Summary

數(shù)據(jù)轉(zhuǎn)換是把數(shù)據(jù)轉(zhuǎn)換成模型更適合的狀態(tài).
需要平衡質(zhì)量、儲(chǔ)存、讀取速度之間的關(guān)系.
表: normalization
圖: 剪裁、下采樣、 whitening
視頻: clipping, sample frames
文本: 詞根化、語法化, 來進(jìn)行簡(jiǎn)化輸入, 詞源化得到輸入到機(jī)器學(xué)習(xí)的小單元(unit).

2.4 特征工程

機(jī)器學(xué)習(xí)偏愛固定好的, 具有特定長(zhǎng)度的輸入/輸出.
傳統(tǒng)機(jī)器學(xué)習(xí)如SVM比較依賴特定的特征輸入, 以前的數(shù)據(jù)工程師也專注于提取不同的數(shù)據(jù)特征用于訓(xùn)練網(wǎng)絡(luò).
深度學(xué)習(xí)的過程也大致相同, 但是特征提取并不是人工進(jìn)行選擇, 而是自動(dòng)的選擇, 代價(jià)是更花費(fèi)數(shù)據(jù)和計(jì)算.

Tabular

  • int / float : 直接使用或者區(qū)間量化
  • categorical data : one-hot encoding. 不常見 / 不重要的放在同一類Unknown, 以維持列數(shù)在有限上.
  • Date-time : feature list. e.g. [year, month, day, day_of_year, week_of_year, day_of_week] 劃分的時(shí)候最好能體現(xiàn)特定的特征.
  • Feature combination : 兩種特征之間的外乘(Cartesian product)

Text

  • bag of words : 把token用one-hot表示出來, 然后對(duì)于一句話就把所有one-hot加起來. (會(huì)丟失順序信息, 還可能內(nèi)容過大)
  • Word embedding (Word2Vect): 把詞表示成一個(gè)向量, 向量之間有語義信息 (語義相近體現(xiàn)為向量之間的內(nèi)積較小). 這個(gè)向量是通過網(wǎng)絡(luò)預(yù)測(cè)上下文的詞訓(xùn)練出來的.
  • Pre-trained language models (e.g. BERT, GPT-3) : transformer模型, 相較于word2vect更大. 能抽取比較好的語義信息.

Image / Video

  • 傳統(tǒng)特征 : 手動(dòng)提取, 如sift
  • 預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò) : 分類器前的feature map, 如resnet, vgg等.

summary

特征提取很重要, 目前通常有手動(dòng)提取和深度學(xué)習(xí)兩種方法, 后面的方法更受人喜愛, 但是會(huì)更expensive.

2.5 總結(jié)

Challenge

  • 數(shù)據(jù)大小和質(zhì)量之間的權(quán)衡.
  • 數(shù)據(jù)質(zhì)量 :
    • 多樣性 : 不同的方面
    • 無偏移的 : 沒有偏移到特定的一方.
    • 公平性 : 沒有區(qū)別對(duì)待人和事.
  • 大型數(shù)據(jù)管理 : 存儲(chǔ), 處理, 版本控制, 安全
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容