iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 30
0
AI & Data

Python零基礎到Kaggle 系列 第 30

Python零基礎到kaggle-Day29

今日目標

概述機器學習兩大支線
機器視覺(Computer Vision,CV)
自然語言處理(Natural Language Processing,NLP)

看完文章您將學到什麼

CV,NLP 是什麼,與可以做什麼跟需要知道的領域名詞與新發展方向

內文

還記得Day3提過整個學習流程有主軸跟支線嗎?
主軸的部份我們將探討到深度學習,而今天要來看看這兩個跟深度學習相關性極大的支線

CV

目的: 讓機器可以像人一樣識別事物

可以做什麼

假設目標物有人跟狗
Object Detection 目標檢測:框出人跟狗位置
Semantic Segmentation 語意分割:用色塊突出人跟狗區域性
Instance Segmentation 實例分割:結合上述兩種優勢,知道人跟狗,也知道位置跟區域
Image Classification 圖像標註:單純文字標出圖像中有人跟狗
Pose Estimation 姿態估計:知道圖中動物做什麼姿勢
Neural Style 風格遷移:準備樣式與風格兩張圖,將風格添加到樣式,像野獸派蒙娜麗莎

領域名詞(這邊提到目標檢測與語意分割)

圖像增廣(Image Augmentation)

如何產生不同又相似模型提高模型泛化能力:
1.圖像隨機翻轉
2.池化或剪裁降低卷積圖像位置敏感度
3.變換圖像,亮度,色調,對比度,飽和度
4.綜合以上方法

數據集不夠時用遷移學習微調技巧(Fine Funing)

1.源數據集訓練一個源模型
2.創新神經網路,複製源模型輸出層前一切,稱為目標模型
3.目標模型加一個目標類別個數輸出層,隨機初始他的參數
4.訓練
微調可以用較小學習率,從頭訓練需較大學習率

目標檢測與邊界框(Bounding-Box)

採樣輸入圖像的不同區域每個像素為中心生成多個錨框(Anchor Box)
衡量錨框和真實邊界框之間的相似度Jaccard index推知目標正確位置

目標檢測

  • R-CNN: 對圖像選取若干提議區域,然後用卷積神經網路對每個提議區域做前向計算抽取特徵,再用這些特徵預測提議區域的類別和邊界框
  • Fast R-CNN: 對 R-CNN 的一個主要改進在於只對整個圖像做捲積神經網路的前向計算。它引入了興趣區域池化層,從而令興趣區域能夠抽取出形狀相同的特徵
  • Faster R-CNN: 將 Fast R-CNN 中的選擇性搜索替換成區域提議網路,從而減少提議區域的生成數量,並保證目標檢測的精度
  • Mask R-CNN: 在 Faster R-CNN 基礎上引入一個全捲積網路,從而藉助目標的像素級位置進一步提升目標檢測的精度

語意分割

語意分割/圖像分割(Semantic Segmentation/Image Segmentation):像素間關聯性
實例分割/檢測分割(Instance Segmentation/Simultaneous Detection and Segmentation):如果圖像有兩隻狗,還要知道像素屬於哪一隻

新發展方向

  • YOLOV3
  • RefineDet
  • M2Det

近期發展似乎沒有比NLP蓬勃

NLP

目的: 讓機器可以像人一樣對談

可以做什麼

Word Embedding 詞向量與詞嵌入:詞向量將每個詞表示成一個長向量,詞嵌入把詞映射為實數域向量
Machine Translation 機器翻譯:將一段文本從一種語言自動翻譯到另一種語言
Language Model 語言模型: 統計上指句子中字詞的機率分佈
Sentence Embedding 句向量:將句子對應到一個向量
Sentiment Analysis 文本情感分析:探討句子情緒狀態,積極消極或快樂悲傷

領域名詞(這邊提到詞向量與機器翻譯)

跳字(skip-gram)

跳字模型假設基於某個詞來生成它在文本序列周圍的詞 The man loves his son,給定中心詞love看跟其他詞的條件機率P(the,man,his,son|loves)

連續詞袋(Continuous Bag of Words)

連續詞袋模型假設基於某中心詞在文本序列前後的背景詞來生成該中心詞P(loves|the,man,his,son)

近似訓練(Approx-Training)

跳字與詞袋梯度計算訓練大,需使用近似訓練

二次採樣(Subsampling)

減低高頻詞is,a...影響

詞向量

子詞嵌入(FastText)

Dogs,Dog都是指狗

全局向量詞嵌入(Global Vectors,GloVe)

處理生僻字

近義詞與類比詞求關係(Similarity-Analogy)

近義: 男->女
類比: 老闆,員工->上司,下屬

機器翻譯

編碼-解碼器(Seq2Seq)

訓練輸入輸出均為不定長序列的編碼器—解碼器
編碼器: 分析輸入序列,將輸入序列消化、吸收成一個向量,這個向量會囊括原序列的重要訊息
解碼器: 依向量生成輸出序列

束搜索(Beam-Search)

使用編碼器—解碼器來預測不定長度的序列

注意力機制(Attention)

生成輸出序列中的每一個詞時解碼器可能只需利用輸入序列某一部分的信息
編碼器: 所有時間步的隱藏狀態做加權平均來得到背景變量
解碼器: 固定時間調整這些權重(注意力權重)

新發展方向

  • ELMo(Embedding from Language model):將非線性層轉為LSTM,可以從無標記文本獲取上下文語意,解決一詞多義問題,也用來預測句子之後出現的詞,缺點是語言模型是單向的(句子只能從左到右單向掃描),只使用三層BiLSTM,對深度學習來說不夠深
  • BERT(Bidirectional Encoder Representions from Transformer,Google)基於雙向Transformer,使用BooksCorpus,English Wikipedia兩個數據集預訓練,用來做字詞填空或上下詞預測,並有一定程度語意理解能力
  • GPT-2(Generative Pre-Training,OpenAI):改用Transformer,層數比前兩個更深,可以平行計算,做摘要,自問自答
  • Transformer-XL(Google):改進版Transformer
  • XLNet(基於Transformer-XL,Google):卡內基梅隆跟谷歌大腦提出,一種泛化自回歸預訓練系統
  • RoBERTa(Robustly Optimized BERT pretraining Approach,Google): 改進版BERT,號稱超越XLNet

實際操作

CV

https://zh.gluon.ai/chapter_computer-vision/index.html

NLP

https://zh.gluon.ai/chapter_natural-language-processing/index.html

反思回顧

這邊依照篇幅很難一次說全,但我盡量寫的淺顯易懂了,建議有時間把上述操作兩個章節補完,這本書實在很值得看
另外他還有兩個進階課程,想深入研究這兩個領域可以參考
gluon-cv
gluon-nlp

參考資料

https://ift.tt/2GjD0rL
https://ift.tt/2JOPCrO
http://bit.ly/2WqonvV
https://mp.weixin.qq.com/s/kE_DJulvZ5x5wzMCjNVaXQ
https://mp.weixin.qq.com/s/gYFvLwEDb4MI2A-i0xsaLA
https://mp.weixin.qq.com/s/bmd3RCBvYYWOJYAaxriuXw
https://www.zhihu.com/question/51704852
https://mp.weixin.qq.com/s/tVCzzrItnw5xyvrt3XwJUg


上一篇
Python零基礎到kaggle-Day28
下一篇
Python零基礎到kaggle-Day30
系列文
Python零基礎到Kaggle 31

尚未有邦友留言

立即登入留言