2018年7月2日 星期一

機器學習演算法—類神經網路(Artificial Neural Network)初探



隨著近期機器學習跟深度學習快速爆紅,有一個名詞-類神經網路,討論的程度也越來越火熱,但其實類神經網路(Artificial Neural Network),並不是一個新出的算法,早在上個世紀中時就已經被發展出來了,只是當時的硬體,尚不足以支撐太多層的神經網路,只能夠訓練學習一些簡單的邏輯函數,所以學術界對於類神經網路的熱情就漸漸消退了。

後來隨著硬體逐漸的發展,直到2012年波茲曼機的發明人Hinton發明了對比分歧法(Contrast Divergence),在分類、特徵抽取等方面頗有斬獲,還可以和多層感知器疊合,創造出了深度神經網路,而後來深度神經網路又加入了Convolutional(中文譯作卷積)運算,成為了卷積神經網路,在影像辨識上非常有效,接著開始推展到人工智慧的各個領域,也就跟上了這一波機器學習與深度學習的熱潮(之後再來開一篇講人工智慧的興衰到再次崛起)。

我知道上面說了一堆專有名詞大家已經頭昏眼花了,接下來簡單的說説類神經網路吧



上圖是一個神經,有樹突(負責輸入資料),有突觸(負責輸出資料),而類神經網路,就是用電腦來模仿生物神經網路的結構和功能的運算模型,建立大量相連的人工神經來模仿生物的神經網路,並且經過不斷學習的過程, 讓機器能夠像人類一樣擁有推導的能力。


類神經網路  from wiki
人工神經元是簡單的模擬生物神經元(如上圖),有隱藏單元(Hidden units)會與外部層進行通訊,而輸入和輸出單元(input and outpot units),只會與隱藏層進行通訊,每一個節點被稱作人工神經元,當他接收的信號量達到處門檻,他就會被觸發,然後發送出信號,藉由傳輸管道將信號發送至其他與之相連的單元,而連接點模擬生物神經的突觸,並具有發射信號強度權重的基本功能,權重用相乘方式計算,而權重本身由連結決定。
簡單介紹各層
輸入層(Input layer):透過許多神經元(Neuron)接受大量資訊。
輸出層(Output layer):資訊在神經元鏈接中傳輸、分析,形成預測結果。
隱藏層(Hidden layer):模擬複雜的非線性關係,好比人類的神經突觸連結越多,就會越聰明。但是過多的話會有過度學習的狀況,所以也不是越多越好。


類神經網路有以下幾個重點
1.每個神經元都與下一層所有神經元連接
2.屬於同一層的神經元之間沒有任何連接
3.有幾層以及每一層有幾個神經元由待解決的問題決定

接下來順帶簡單介紹一下機器學習的學習模式
監督式學習(Supervised learning):在訓練的過程中告訴機器答案、也就是「有標籤Label」的資料,比如給機器各看了 1000 張貓和豿的照片後、詢問機器新的一張照片中是貓還是豿。
非監督式學習(Unsupervised learning):訓練資料沒有標準答案、不需要事先輸入標籤,所以機器在學習的過程中並不知道其分類結果是否正確。訓練時僅須對機器提供輸入範例,機器會自動從這些範例中找出潛在的規則。
增強學習(Reinforcement learning):或稱作強化式學習,透過觀察環境而行動,並會隨時根據新進資料修正、以獲得最大成果,特徵是訓練必須要有正負回報(positive/negative reward)。
另外的半監督式學習(Semi supervised learning),可視為監督式學習與非監督式學習的混合版,資料中少部分有標記,大部分沒有標記。

以上希望可以幫助大家快速了解類神經網路以及機器學習的模式,如果有寫得不夠詳細的部分,也歡迎留言討論。





2018年7月1日 星期日

機器學習演算法—隨機森林(Random Forest)懶人包

會發這篇文章,主要是因爲前陣子針對研究案期中報告時,整個會場中只有我是寫程式出身的,感受到如果你有再好的技術,如果沒有辦法讓決策者理解,那如何能讓這個計畫推展下去呢?不能去埋怨長官們不懂,他們過去又沒有學過,怎麼可能會懂呢?當然,那種食古不化又不願意聽取專業意見的就另當別論了!

簡單介紹隨機森林(Random Forest)顧名思義,是用隨機的方式建立一個森林。

隨機森林的用途,主要是處理分類與回歸問題,並且在沒有提高運算量的情況下提高了精確度。
優點如下
1.有效的處理缺失值,並且填補缺失值,即使有大量數據缺失仍然可以維持高精確度
2.有效的處理少量資料。
3.對於數據挖掘、檢測離群點和數據可視化非常有用。

缺點
1.在某些雜訊較大的分類和回歸問題上會過擬合(overfitting)

簡單的說,隨機森林可以視為決策樹(Decision Tree)的延伸

什麼是決策樹呢?我們可以想想我們的人生,每做一個決策,就會出現不同的結果,種種不同的決策下,長成了現在的我們,這個分叉出去的人生,就像一棵樹倒過來一樣,用下面這個圖比較明瞭。

決策樹-取自維基百科
而隨機森林呢?可以想像是用隨機的方式建立一個森林,森林裡面有很多的決策樹,而每一棵決策樹之間是沒有關聯,最後再用這些樹去投票,來決定結果。


以下用幾張圖來讓大家簡單明瞭



一般很多的決策樹算法都一個重要的步驟 – 剪枝,但是隨機森林不會。(剪枝的意義是:防止決策樹生成過於龐大的子葉,避免實驗預測結果過擬合,在實際生產中效果很差)

隨機森林裡面的每棵樹的產生的過程中,都已經考慮了避免共線性,避免過擬合,剩下的每棵樹需要做的就是盡可能的在自己所對應的數據(特徵)集情況下盡可能的做到最好的預測結果。



用隨機森林對一個新的對象進行分類判別時,隨機森林中的每一棵樹都會給出自己的分類選擇,並由此進行「投票」,森林整體的輸出結果將會是票數最多的分類選項;而在回歸問題中,隨機森林的輸出將會是所有決策樹輸出的平均值。


以上,希望可以幫助大家快速了解隨機森林及用途,如果有寫得不夠詳細的部分,也歡迎留言討論,最後~希望可以讓長官深入淺出快速理解並支持(?


經濟日報數位訂閱懶人包

  去年寫過一篇介紹文,經濟日報推出了數位訂閱產品,如果你是價值投資者,或是對產業研究及經濟數據有興趣的朋友,包含深耕國內外財經深度內容、圖像式產業資料庫、早安經濟日報聽新聞等等。   目前有「彭博新聞獨家聯名、七大外媒授權合作、專家解析深度專欄」三大內容,豐富你的關鍵投...