iT邦幫忙

2021 iThome 鐵人賽

DAY 19
1
AI & Data

學資料科學的小孩不會變壞- 從入門到實戰全攻略系列 第 19

DAY19 淺談深度學習

我們在前面算是完整的介紹了使用機器學習的方法來做資料分析,在剩下最後11天的時間,我想把自己在暑假所接觸的深度學習、電腦視覺,以及參加的議題競賽拿來作介紹,順便彙整一下自己的學習歷程,由於時間的關係,可能也沒辦法介紹的很全面,但還是盡量會附上實作的程式碼來作範例。


一、深度學習(Deep Learning)

深度學習可以看成機器學習的一種方式,也是目前AI領域的主流,相信最讓大家耳熟能詳的就是當今世界棋王Alphago,它就是基於深度學習的產物,其實深度學習說穿了就是在模仿人類,人類的腦神經可以做非常複雜的運算及思考,但我們無法快速或是大量地使用它,而機器卻可以,因此,我們讓機器模仿人類,再搭配機器本身強大的計算能力,就可以達到更高的境界,那機器具體怎麼模仿人類呢,請看下圖:

神經元的運作

https://ithelp.ithome.com.tw/upload/images/20210914/20140427MhnKfn9kgD.png
那麼深度學習跟機器學習又差在哪呢?請看下圖:
https://ithelp.ithome.com.tw/upload/images/20210914/20140427gIlBB0Ya8X.png
由上圖可知,深度學習並沒有特徵萃取(Feature extraction)的步驟,它的所有運算權重、網路,都是由機器自己學出來的,我們要做的就是建立訓練的規則,以及丟給機器大量的資料,這就是深度學習的初步概念。


二、機器視覺(Machine Vision)

機器視覺是深度學習應用的領域之一,也是我暑假接觸的,所以會往這部分做介紹,機器視覺顧名思義,就是用攝影機和電腦代替人眼,去做到一些人類因為限制無法做到的工作,例如:大量產品瑕疵檢測,精密的儀器檢測...等,較常見的應用領域為圖片分類(Image Classification)、物件偵測(Object Detection)、語意分割(Instance Segamentation)...,不知道他們的差別?我們用一張圖在下面說明!
https://ithelp.ithome.com.tw/upload/images/20210914/20140427HtoKW7Ixy0.jpg
這是一隻可愛的哈士奇照片,上述的應用會怎麼進行呢?

圖片分類:機器會預測這張圖片是一張哈士奇的照片

物件偵測:機器除了預測出哈士奇,還需要知道這隻哈士奇在圖片中的位置是在正中間(Localization)

語意分割:機器要能明確的把照片中元素(哈士奇、椅子、草皮)的邊緣分割出來,知道哪個元素是什麼東西。


三、捲積運算(Convolution)

相信很多入門的同學都會多次聽到Convolution這個詞,它的作用在於訓練機器觀看圖像的能力,一張圖片對於電腦來說是很多的數字,這些數字就是像素(pixel),假設圖片的大小是10241024,那麼這張圖片就會有10241024個像素,電腦就是透過這些由像素組成的矩陣來做運算學習。
https://ithelp.ithome.com.tw/upload/images/20210914/201404270L6yPv0QBn.jpg
圖片來源:NVIDIA Jetson Nano 由淺入深實作訓練營

機器在學習時會透過Filter提取一些圖片的特徵,Filter是一個nn的矩陣,它會遍佈整張圖片去提取特徵,這個過程就是Convolution,而所提取的特徵圖就稱為Feature Map,或是Convolved Feature,具體請看下圖。
https://ithelp.ithome.com.tw/upload/images/20210914/201404279ftF4afcKj.jpg

四、池化(Pooling)

經過Convolution後我們會得到很多Feature map,為了再更精簡計算,以及萃取到更有用的特徵,神經網路會再經過池化(Pooling),這個過程是將Feature map精簡,方法有MaxPooling(取一部分Feature map中值最大者)、AveragePooling(取一部分feature map中值的平均),具體請看下圖。
https://ithelp.ithome.com.tw/upload/images/20210914/20140427iNaAyrrex7.png
圖片來源:NVIDIA Jetson Nano 由淺入深實作訓練營


五、全連接層(Fully Connected Layer)

再經過捲積、池化等計算後,最後神經網路會將Feature map攤開成一維的形式,並對特徵加上權重並總結出機率,最後輸出結果,這是整個神經網路最後的過程,具體見下圖。
https://ithelp.ithome.com.tw/upload/images/20210914/201404277XpbVkVMM3.png
圖片來源:https://www.oreilly.com/library/view/tensorflow-for-deep/9781491980446/ch04.html


六、神經網路架構

如同上述所介紹的,一個基本的神經網路就會包括Input層、Convolution Layer、Pooling Layer、Fully Conected Layer,見下圖。
https://ithelp.ithome.com.tw/upload/images/20210914/20140427NodSB0TU5d.png

圖片來源:NVIDIA Jetson Nano 由淺入深實作訓練營

依照這個訓練流程往下訓練後輸出,這個步驟就稱為前向傳播(Foward Propagation),當然神經網路第一次訓練可能結果不會很理想,因此再輸出後會將結果傳回去,根據結果來修改網路中的權重,告訴網路哪裡學得不好要調整,這個步驟稱之為反向傳播(Backward Propagation)。這樣的網路就是典型的CNN網路(Convolution Connected Network)。


七、結論

今天我們正式從機器學習畢業,進到深度學習的領域,其實一開始在接觸深度學習的時候真的會很迷茫,什麼神經網路、捲積、激活函數一大堆的專有名詞在機器學習都不曾出現過,但其實深度學習本身就是靠機器自己在學習的,我們只要了解其運作方式以及概念,剩下的就交給機器吧哈哈,其實深度學習可以應用的領域非常多,只是後期我可能會以圖片這塊來寫,除了神經網路的訓練外也會提到圖片處理的一些方法及套件,今天就先這樣囉,謝謝大家!


上一篇
DAY18 機器學習專案實作-員工離職預測(下)
下一篇
DAY20 圖片處理套件-OpenCV
系列文
學資料科學的小孩不會變壞- 從入門到實戰全攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言