MacauAIChallenge2019_Lessons_1

"Intrduction of machine/deep learning"

Posted by hon20002000 on July 1, 2019

前言

’’’
作者: hon20002000
最後更新: 2019/9/20
‘’’

本教程是為了讓同學們快速體驗機器學習/深度學習而設計的.
學習本教程須先了解python基本語法, 例如list, dict, numpy切片等等. .

教程用法:

閱讀本blog上的基礎語法
完成每篇文章的作業
遇到問題或其他改善建議可在下面留言


正文

我們本教程的目標是訓練一個能辨認120種交通標誌的程序
我們將會使用深度學習的工具來完成它:

主要步驟為:
(1)收集資料(拍照收集圖片, 平均每種圖片約200-500張)
(2)把圖片分類並標記名稱(每種標誌建立file, 根據名稱存放相應的圖片)

(3)編寫程序讀取圖片的資料, 並和標籤建立一一對應關係

(4)編寫深度學習系統
(5)利用圖片資料和對應的標籤訓練學習系統
(6)學習系統會對每張圖片給出答案, 和預設的標籤相比較, 得出系統的準確率
(7)改善學習系統以獲得更高的準確率

練習

(1)什麼是監督式學習(Supervised learning)?
(2)什麼是神經網絡(neural network)?
(3)什麼是深度學習(deep learning)?
(4)mnist數據集是什麼, 用什麼方法完成分類?
(5)cifar10數數據集是什麼, 用什麼方法完成分類?


解答

(1)監督式學習(Supervised learning):
簡括而言監督式學習是指首先準備一批已標記有正確答案的資料, 這些資料可以是文本, 也可以是圖像
通過訓練model來學習這些資料, 由於剛開始訓練好的model判斷這些資料會不準確
所以對比正確答案後會得到一些錯誤資訊的回饋, 從而再次訓練系統
重覆這些過程即是系統的學習, 這是最廣泛使用的AI學習法.

(2)神經網絡(neural network):
神經網絡是將資料和一堆參數作乘法及加法後得出一些數值
如果是計算類型的AI算法則可得出計數值結果
如果是分類類型的AI算法則得出各種類別的機率判斷
下圖是簡單神經網絡的學習過程:
首先計算出初步的結果, 稱為前向傳播
然後將計算結果和正確答案比較, 根據誤差值修正參數, 稱為反向傳播
這是一次學習的過程
將修正後的參數重新計算一次, 然後再次向前傳播及反向傳播
不斷反覆數十次至數萬次後得到的model便可準確預測結果

(3)深度學習(deep learning):
深度學習可看作是多層的神經網絡, 因為過去電腦效能不足, 不能運算多層網絡
現在個人電腦計算10層左右的神經網絡系統也不會太慢
而使用超級電腦則可以計算多於100層的系統

(4)mnist數據集:
這是過去一個十分有名的數據集, 含有60,000張人手寫的0~9的28*28像素的黑白數字圖片
這個數據集非常簡單, 很容易達到99%的準確率

(5)cifar10數據集:
相當於彩色版的mnist數據集, 也是含有60,000張10種類型的32*32像素的彩色圖片
這個數據集比較困難, 原因是像素太低了, 剛開始能達到80%左右的準確率已算不錯