文章摘要
這篇文章在介紹一家平台公司 Xeneta ,專門在幫需要貨櫃運輸的客戶提供價錢比較便宜的海運情報,如果一家公司一年有超過 500 個以上的貨櫃需要運送,Xeneta 所提供的服務可以幫你省下不少運送成本,但是問題來了,業務發展代表要如何去找潛在的客戶? 或是說業務要先去聯絡那些公司,讓他們知道有這樣的服務? 也許我們的直覺不外乎
- 提升 SEO 關鍵字搜尋,讓客戶自己找上門
- 線上廣告
- 媒體廣告
告訴我,我會忘記; 教導我,我只是記得;讓我深入其中,我便學會。 ~ Benjamin Franklin
這篇文章在介紹一家平台公司 Xeneta ,專門在幫需要貨櫃運輸的客戶提供價錢比較便宜的海運情報,如果一家公司一年有超過 500 個以上的貨櫃需要運送,Xeneta 所提供的服務可以幫你省下不少運送成本,但是問題來了,業務發展代表要如何去找潛在的客戶? 或是說業務要先去聯絡那些公司,讓他們知道有這樣的服務? 也許我們的直覺不外乎
來自Soft & Share 資料分析與機械學習版主ricky的分享, 對於ricky的分享有任何問題, 歡迎加入slack聊天室討論
對於多數人來說,我們處理的資料通常不會做前提假設就直接放入機器學習模型,而這也使得我們在訓練模型的時候會很可惜地浪費許多迭代時間,甚至無意造成過度擬合。今天和大家分享的事情是,如果你事先能先掌握你的輸入資料的一些機率統計性質,這樣的話可以幫助你來做類神經網路初始化權重並達到更快更好的迭代收斂效果。 Continue reading “Soft & Share 站友好文分享 : 初始化權重所需要的機率統計概念”
本文同步發表於Soft & Share 資料分析與機械學習 Slack channel, 有興趣歡迎加入討論
會想要分享這篇是最近一方面在社群中和大家討論有提到,此外就是這一兩年也有一些學術文章在探討分層深度增強學習,更重要的是我覺得對於普羅大眾而言,增強學習其實會比一般傳統機器學習模型更能幫助大家在商業應用或專業技術中能更塑造優勢,因為增強學習可以把你專業的Know-How整理進來,融入業務架構。
今天在此先帶來的還是觀念,未來想說可以把一些開源的封包應用來做個 Demo Code 或 Toy Package 給大家把玩,到時候會再斟酌是放在 softnshare 的 datamachlearn 還是 python 的 repo 中
增強學習 (Reinforcement Learning, RL) 是一種機器學習的訓練架構,增強學習假定你的訓練輸出可以作為一個「決策參考」並透過決策結果來產生新的輸入資料,透過這樣反覆不斷地「決策-判斷」來訓練模型學會在特定的輸入資料下能始終做出最佳的決定。
最簡單的理解就是「機器人走路」機器人透過感知到地面周圍,進行判斷到底這個地面能不能走,然後最後決定是否要往前進。這裡可以發現,模型聰明之處是在於從非常原始的地面資料,最後能抽象做出走路與否和走向哪裡的決策。
但這會有個缺點,如果你的訓練目標稍微複雜一些,例如「機器人走路,還會閃避地面障礙物,然後先找尋地面鑰匙撿起來」 哇!這怎麼可能單純感知到地面資料,就能做出的簡單決策呢?在這樣的前提下,我們希望機器人能合格達成「多目標任務」就好,不用過度優化單一目標(舉例來說,機器人為了最佳化避開障礙物路線,結果永遠撿不到地面鑰匙),這時候就可以採用 【分層增強學習 (Hierarchical Reinforcement Learning, HRL)】
透過下圖,你可以簡單理解出有沒有分層的差異:
透過把增強學習的決策過程,拆解成分解動作,每個分解動作的決策都搭配一組增強學習,成為一個複合式的增強學習模型,某種程度可以解決掉我們所需要完成的「多目標任務」。
但是!分層增強學習也被人詬病,由於你人為的給定了分層的框架,所以分層增強學習並沒有達到足夠智慧化的創新,他並不是自己學習到分層的框架,所以後來就有人發展出分層框架也透過機器學習來訓練出來,但這樣樣本和訓練過程的時間就又更長了。
但是個人觀點是認為,任何方法的重點都是在解決問題,如果你的業務發展本來就有一些值得和模型鑲嵌在一起的知識框架或專業知識,分層增強學習搞不好還會成為你們公司機器學習相關產品服務對特定客群客戶的重大賣點呢!
RICKY,目前任職於瑞典摩爾資產管理,擔任小小 Quant (P-measure), 主要擅長混合新聞短訊與時間序列資料的複合式機器學習模型開發, 近一年來主要深耕於流形學習(manifold learning)盼能在中文世界遇到熟的知音
Soft & Share目前有經營 FB團購社群 並會透過slack召開網路讀書會, 有興趣歡迎來加入, Soft & Share也是廣受開發者喜愛的開發工具JetBrains合作夥伴, 歡迎透過Facebook搜尋 “JetBrains Taiwan” 即可找到JetBrains開發工具的社群, 歡迎加入社群討論.
Soft & Share 的讀書會願景- 我們希望每本書會是一個連結, 最後這個連結會形成一個網路, 這個網路甚至會誕生新的創意, 這個新的創意會對社會有幫助, 讓人的生活變得更美好.
目前招募中的網路讀書會請參考這個頁面
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
來自Soft & Share 資料分析與機械學習版主ricky的分享, 對於ricky的分享有任何問題, 歡迎加入slack聊天室討論
今天來和大家分享一個主題,是關於機器學習領域中,我們怎麼來處理「過擬合」(Overfit),事實上我個人較長使用的方法仍然是在機器學習模型中置入模糊邏輯,在公司(財經)中開發的lib中我也是寫了比較多套模糊邏輯,主要原因是計量經濟學有一些現成結合模糊邏輯的理論,關於模糊邏輯的應用與實務上的一些理論應用的觀念,下次再多分享。今天要來介紹給大家的是所謂的參與機制(Attention)。
一般來說,機器學習模型主要是透過各種理論方法,得到一組模型的權重與參數,由於希望盡可能地將資料屬性挖掘出來,因此模型的權重參數通常會很多,這樣才能給予足夠高的自由度來呈現出輸出結果,有種螞蟻雄兵的感覺。
但是個別權重的意義不大,一定要把所有權重置入模型才有用,我有沒有辦法只使用「部分」的模型權重呢?聰明的你一定想到,我就把部分以外的其他權重都令成0,這樣不就得了嗎?但是你要挑那些權重變成0呢?此外有些權重如果變成零,搞不好還會有反效果(例如原本權重是負的,變成0反而變大了!)
好吧!既然我們不能使用「部分」的權重,那我們使用「部分」的輸入資料總行了吧?但是問題還是一樣,我怎麼知道我們選的部分資料是正確的呢?舉例來說,如果我要輸入一張照片,但我事先切割成了兩張照片,但是好死不死就剛好把你的頭剖成兩半,放到能辨識整顆頭的機器學習模型中不是也是白忙一場嗎?
【參與機制】就是這樣來的,既然你我都不知道該如何取捨權重和輸入資料,我們就事先在模型訓練的過程中,我們不但要訓練出一組模型權重參數,還要訓練出一套參與機制,這套參與機制(也叫做留意機制、注意力機制)讓我們的機器學習模型不但能【學習】還能把【注意力】放到正確的地方。
因此當我輸入一張照片資料,經過輸入機制中的【參與輸入】計算能幫我們把注意力放到正確的地方(例如照片資料中的人臉部分)經過一個能辨識開心/難過的模型之後,他就能輸出到底是開心還是難過。反之亦然,我們也可以對模型計算的結果投入不同的關注,透過【參與輸出】來呈現出更為重要的輸出結果。
你感覺到了嗎?參與機制最關鍵的地方,就是讓你的機器學習模型的輸入/輸出資料的維度可以彈性變化!例如你把照片剪裁成小一點,他也是一樣能透過把注意力放在照片中的人臉,得到正確的結果!
我的工作主要在時間序列資料,有時候我們要選擇到底用過去多少時間的資料來搭建時間序列,然而透過參與機制的加入,我就不用再為選擇多長時間的資料來煩惱,因為我的模型就能自動對「應該的時間長度」投以「應該的關注眼神」當我的輸入資料有急遽變化(例如金融商品價格飆升與驟降)他就能更關注短期變化,並透過模型中對短期變化的反應來輸出我想要了解的結果。反之,若資料呈現一種穩定的緩步趨勢變化,參與機制就會多考量一些我的資料中較久以前的資料,透過參與輸入帶進模型計算,最後輸出結果~!
我一直很好奇把術語拔掉看起來很拗Orz…希望仍對大家有幫助!
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
來自Soft & Share 資料分析與機械學習版主ricky的分享
Continue reading “機器學習好似黑箱,如何理解與解釋模型?”
你必須登入才能發表留言。