產(chǎn)品經(jīng)理也能動手實踐的AI(七)- 正規(guī)化&深入卷積神經(jīng)網(wǎng)絡(luò)

正文共:?3002字?8圖

預(yù)計閱讀時間:?8分鐘

好久沒更新了,Lesson5是個坎,也不是里面內(nèi)容有多難,可能是知識點比較雜亂,所以一直沒有產(chǎn)出,今天把Lesson6看完了,視頻1遍,練習(xí)一遍,文字一遍(Transcript),算是基本都理解了,所以上一課的內(nèi)容之后更新吧。

1.概覽

本節(jié)主要圍繞兩個例子:1.根據(jù)Rossmann商店運營數(shù)據(jù)預(yù)測未來銷量 2.用寵物識別的例子講解CNN原理

講解了正則化 Regularization 的 dropout 和卷積神經(jīng)網(wǎng)絡(luò) CNN

2.1核心概念

  1. 連續(xù)變量和非連續(xù)變量:很多看起來的連續(xù)變量作為類別效果更好,比如一周的第N天

  2. Dropout:一種Regularization方法,可以避免過度擬合,原理是類似于隨機抽一部分老師來監(jiān)考,防止內(nèi)外勾結(jié),通過P值來控制挑選的概率

  3. Batch Normalization:通過小批次的Normalization,加速訓(xùn)練,因為可以把問題簡化到每個批次上

  4. Transform:對圖片進(jìn)行亮度、飽和度、灰度、扭曲、翻轉(zhuǎn)等操作,從而提高訓(xùn)練效果,因為相當(dāng)于多了N倍的訓(xùn)練圖像

  5. 特征點熱力圖:讓ML變得可以解釋,通過熱力圖,顯示機器是根據(jù)圖像上的哪部分的特征點判斷屬于哪個類別,效果如下

2.2機器學(xué)習(xí)概念

  • Normalization:將數(shù)據(jù)轉(zhuǎn)換到[0,1]區(qū)間,如下圖公式,還有其他變種

  • Regularization:loss function的懲罰機制,防止overfit

  • ? Weight Decay:L2 regularization 的升級版

  • Model 內(nèi)部結(jié)構(gòu),一個基礎(chǔ)的block,2d就是二階向量

    • Conv2d

    • BatchNorm2d

    • ReLu

    • Conv2d

    • BatchNorm2d

  • Data argumentation:數(shù)據(jù)增強,通過transform把圖片各種變形,以達(dá)到更好的訓(xùn)練效果

  • Channel:用了多少個Kernel,就會產(chǎn)生多少channel,近似于feature,如圖生成了16個channel,

  • Stride:步伐,為了降低內(nèi)存占用,如果步伐為2,則每次和Kernel的運算會跳過一個,所以生成的tensor高寬會/2,channel會*2

  • Average pooling:相當(dāng)于求縱向的平均值,比如最后生成了11*11*512的tensor,那就求11*11平面上每個點的縱向512個值的均值,這樣得到的11*11的值就可以用于熱力圖的顯示

  • 2.3 FastAI命令

  • add_datepart:可以將日期轉(zhuǎn)化成每周的第N天,每月每年的第N天,是否是月初或月末等

  • label class (label_cls=FloatList):設(shè)置label值為float,因為int會被當(dāng)成分類任務(wù),本節(jié)課是要預(yù)測銷量

  • procs=[FillMissing, Categorify, Normalize]:數(shù)據(jù)訓(xùn)練前的一次性處理,process設(shè)置的簡寫

  • data.one_item(x):創(chuàng)建一個mini-batch的數(shù)據(jù)

  • data.cuda():放到GPU上

  • 2.4 Pandas命令

  • train_df.head().T:可以轉(zhuǎn)置表格數(shù)據(jù)

  • small_train_df.PromoInterval.cat.categories:查看類別

  • small_train_df['PromoInterval'].cat.codes[:5]:查看類別對應(yīng)的編號,-1就是不存在的意思

  • 2.5 PyTorch命令

  • hook:可以調(diào)取訓(xùn)練過程的任意環(huán)節(jié)

  • hook.store():存下來

  • t[None]:維度+1

  • 3.1實例詳細(xì)分析

    根據(jù)Rossmann商店數(shù)據(jù),還有競爭對手?jǐn)?shù)據(jù),預(yù)測銷量

    1. 數(shù)據(jù)有點老,所以專門有個data_clean的文件先把數(shù)據(jù)處理一遍,主要是把需要的數(shù)據(jù)提煉出來合成一張表

    2. 先小范圍測試下數(shù)據(jù)

      1. 主要是區(qū)分類別變量和連續(xù)變量,會把類別變量都映射成數(shù)字

      2. 空數(shù)據(jù)用類別方式標(biāo)注

      3. 數(shù)據(jù)歸一化Normalization

    3. 在準(zhǔn)備完整數(shù)據(jù)

    4. 然后用tabular_learner跑數(shù)據(jù)

    data = (TabularList.from_df(df, path=path, cat_names=cat_vars, cont_names=cont_vars, procs=procs,)                .split_by_idx(valid_idx)                .label_from_df(cols=dep_var, label_cls=FloatList, log=True)                .add_test(TabularList.from_df(test_df, path=path, cat_names=cat_vars, cont_names=cont_vars))                .databunch())

    learn = tabular_learner(data, layers=[1000,500], ps=[0.001,0.01], emb_drop=0.04,                        y_range=y_range, metrics=exp_rmspe)

    3.2實例詳細(xì)分析

    寵物圖片增強,找到cnn是通過哪部分的特征,識別了這張圖,熱力圖

    1. 創(chuàng)建databunch

    2. 變形transform

    3. cnn訓(xùn)練模型

    4. 卷積內(nèi)核

    5. 熱力圖

    6. grad-cam

    src = ImageList.from_folder(path).split_by_rand_pct(0.2,seed=2)def get_data(size, bs, padding_mode='reflection'):    return (src.label_from_re(r'([^/]+)_\d+.jpg$')           .transform(tfms, size=size, padding_mode=padding_mode)???????????.databunch(bs=bs).normalize(imagenet_stats))

    learn?=?cnn_learner(data,models.resnet34,metrics=error_rate,bn_final=True)

    def show_heatmap(hm):
    _,ax = plt.subplots() xb_im.show(ax) ax.imshow(hm, alpha=0.8, extent=(0,352,352,0), interpolation='bilinear', cmap='magma');show_heatmap(avg_acts)

    4.最后

    本課還講了platform.ai和AI的倫理,platform.ai是一個快速訓(xùn)練未打標(biāo)簽的數(shù)據(jù)的網(wǎng)站,AI倫理講的是很多性別偏見,以及過度滿足人性的推薦系統(tǒng),釀成的悲劇,號召從業(yè)者用技術(shù)將生活變得更好,而不是制造更多沖突。?

    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
    【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
    平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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