最近出了一款開源 AI 應用,讓你以後照相的姿勢不對、穿的衣服太長太短、照相時忘了笑都沒關係。 這個開源利用 GAN AI 技術稍微挪點就把照片神奇地轉變了。
Continue reading “利用 GAN AI 技術讓你拖動幾點 – 不笑的臉也能變笑臉了”要採用 OpenAI GPT 還是開源 LLM 開發應用 ?
ChatGPT 令人驚艷的表現引發 LLM ( large language model ) 的應用開發和應用熱潮。 除了OpenAI 和 Google 提供的選項,我們還有什麼呢 ?
Continue reading “要採用 OpenAI GPT 還是開源 LLM 開發應用 ?”Amazon Code Whisperer 對決 Github Copilot
這是 Web 全端開發技術講師 Wes Bos 在十幾分鐘內親身來體驗哪個機器人寫的 TypeScript 比較好? 他將免費的 Amazon Code Whisperer 與他付費的 Github Copilot 進行了比較。
Continue reading “Amazon Code Whisperer 對決 Github Copilot”[閱讀筆記] 公司如何導入 AI ( 人工智慧 )
Landing AI CEO、Coursera 共同創辦人吳恩達( Andrew Ng )提供了 AI Transformation Playbook 供市值美金5億以上的公司參考。以他輔導 Google 、矽谷和世界知名公司導入 AI 的經驗,提供如何將 AI 融入公司既有的業務、創造價值的劇本。 Continue reading “[閱讀筆記] 公司如何導入 AI ( 人工智慧 )”
[閱讀筆記] 執行機器學習所學到的教訓 : 五家公司分享曾犯的錯誤
文章網址
Machine learning lessons: 5 companies share their mistakes
筆記摘要
機器學習可能會產生很糟糕的結果,讓你很後悔太過匆忙地去熱情擁抱
Continue reading “[閱讀筆記] 執行機器學習所學到的教訓 : 五家公司分享曾犯的錯誤”[閱讀筆記]-用機器學習提升銷售量
文章摘要
這篇文章在介紹一家平台公司 Xeneta ,專門在幫需要貨櫃運輸的客戶提供價錢比較便宜的海運情報,如果一家公司一年有超過 500 個以上的貨櫃需要運送,Xeneta 所提供的服務可以幫你省下不少運送成本,但是問題來了,業務發展代表要如何去找潛在的客戶? 或是說業務要先去聯絡那些公司,讓他們知道有這樣的服務? 也許我們的直覺不外乎
- 提升 SEO 關鍵字搜尋,讓客戶自己找上門
- 線上廣告
- 媒體廣告
Soft & Share 站友好文分享 : 初始化權重所需要的機率統計概念
來自Soft & Share 資料分析與機械學習版主ricky的分享, 對於ricky的分享有任何問題, 歡迎加入slack聊天室討論
前言
對於多數人來說,我們處理的資料通常不會做前提假設就直接放入機器學習模型,而這也使得我們在訓練模型的時候會很可惜地浪費許多迭代時間,甚至無意造成過度擬合。今天和大家分享的事情是,如果你事先能先掌握你的輸入資料的一些機率統計性質,這樣的話可以幫助你來做類神經網路初始化權重並達到更快更好的迭代收斂效果。 Continue reading “Soft & Share 站友好文分享 : 初始化權重所需要的機率統計概念”
Soft & Share 站友好文分享 : 很繞路之新手 data scientist/engineer
有點瘋狂的 SA 與 Programming 啟蒙
相信許多玩電腦的人都走過幫人組電腦的時光,那大概是從我國二開始(這樣故事好像起得有點早)。高中因為對電腦與網路的濃濃熱誠接手了 BBS 的管理,也開始了 System Administrator 與 Programming 之路(就說學生時代也有故事可講)。FreeBSD、各種 Linux distros 都玩遍,幾乎各種 services 都架設管理過,也嘗試開始改 BBS 的 C Program。沒有上過程式課,看了一晚的 C++ Primer 就去參加程式競賽,勉強寫了幾題,最後敗在看不懂 compiler error messages 在說什麼。O’Reilly 或其他電腦的書一本一本的看,舉凡 Bash、Perl、Apache、ProFTPD、Postfix、Bind、LDAP、Thinking in Java、C++ Primer、C programming language (K&R) 等等。接下來 intern 與外面的 case 大多都是 SA 相關。也經常泡在網路上回答 linux 相關問題,最瘋狂的時期,全電腦的套件都是自己 compile 且想辦法最佳化。玩遍 window manager、desktop env,甚至在純 console 沒有 X-win 下生活過幾個月。當時天真的目標就是想當個 Debian maintainer,或是弄個自己的 distro。
從 IC design 轉向 embedded system
到了大學,莽莽撞撞地進了電機系。但不可否認 programming 相關的課程才是我的菜,凡是相關的課程都覺得特別有興趣。經常翻 glibc 的 code,看看高手都怎麼寫的。例如要學 qsort 比較好的寫法當然翻出 glibc 來看。因為都使用 GNU/Linux 平台,當然也以 GNU development tools(如 makefile, gdb) 為主要的開發環境。 Visual C++ 是完全生手。沒事寫 CGI 做網頁,也寫些小玩具玩。由於學校的課程也不算輕,在高度壓力之下,我停止了瘋狂的 unix-like 平台專研。除此之外,在大四前都還是專心學習 IC design,修課都以 IC design 為重心。直到大四跑去輔資工系,才深深覺得走錯科系了,修課都覺得相當輕鬆且有趣。仗著對 Unix-Like SA 的多年經驗,覺得玩 embedded 搞 base system 與 kernel 非常上手,也就玩了一陣子。寫寫 C 也寫寫 Asm。整個大學歷程 Asm 也算簡單玩過三套。
NLP 與大資料處理
因為朋友的因素,幫忙 NLP 實驗室弄 Hadoop cluster 以及管理。接著也就誤打誤撞的進了那個實驗室做研究助理。跟著開始學 NLP 的一切,寫 Python、修課、看論文、發 paper。當然還有實驗室的許許多多雜事和 server 的管理。(當時實驗室約有 14 台 server,其中 8 台是 cluster,兩台 windows server)。由於 NLP 的資料通常也相當大,原始資料動不動幾十 GB,計算結果可能上 TB。正好跟上了所謂的「大數據」時代,開始玩了很多大資料處理的 framework 與 tool、platform。我們實驗室的研究成果也經常做成網站,所以也接觸了更多 web backend、frontend 的東西,舉凡 MongoDB、MySQL、DynamoDB、HBase、Redis 等 database 或是 Django、Flask 等 framework,什麼紅什麼好玩就用什麼。做研究之餘也要讓成果能漂亮有效的 demo。相較於業界要固守原本的 code base,在學界隨時想玩新花樣都能玩。之後覺得繼續待著有無訪,就推甄進研究所繼續留在那個實驗室,一樣的工作繼續做。只是修課有學分,畢業有證書,渾渾噩噩的日子繼續過。一間實驗室學習,總是專心在某個題目或方向的琢磨。不廣,甚至很狹隘。不太會管其他領域常用的方法,甚至同樣是 NLP 的技術也不見得會廣泛涉略。發 paper 找到 gap 比學習一個真的很有效很棒的作法來得重要。實驗室的作業模式通常也都比較各顧各的,缺乏能共同成長的同儕,一代換一代,不容易有經驗累積。研究之路並不開心,很難有團體共同目標。儘管自由,但不相關的學校雜事很多。軟體開發技術也比較守舊,新 tool、新 libray、當紅的 framework 大概都只有自己在玩。待久了,能學習的越來越少,要付出的卻越來越多。當然也就迫不及待想離開了。
(回應上一篇分享。我在實驗室推過 git 但失敗了,在學校常常收到信寫「麻煩給我 XXX project 的最新版 code」,然後我就把 public github repo link 再寄一次過去 Orz。對方就 download zip。Orz Orz。真的入手的第一套 VCS 是 svn,然後是 hg。)
廣泛涉略學習 Data Scientist 技能
原本以為做 NLP,在 machine learning、datamining、information retrieval、big data 已經算玩不少了。研究所修課也都著重在相關領域。畢業後自然走向 Data Scientist 的路。但就在差不多時候,去上了 Andrew Ng 的 Machine Learning。就跟這篇 LEARNING MACHINE LEARNING – SOME PERSONAL EXPERIENCE(Arthur) 文章的作者一樣,儘管 Andrew Ng 的課不算是很深的課程,但卻讓我推翻了自己,驚覺我以前根本不熟 ML 啊。過去太縮限自己在 NLP 的常用方法,而忽視了太多可能。許多 Algorithm 也只是用而不知其所以然。
圖片來源 http://nirvacana.com/thoughts/becoming-a-data-scientist/
這是一張很可怕的圖,列了 Data scientist 所需要的技能。也跟所在公司狀況有關,一人 Data Scientist + Data Engineer。知識的廣度比絕對的深度來得實在,永遠不知道下一個 task 需要怎樣的技能。在 Andrew Ng 的 ML 課之後。也持續的找 online course 或是書籍學習,諸如 online learning、deep learning、statistics。Backend、ETL 與 visualization 的東西也持續在涉略。在必要的聚會與休閒之外,所有下班時間都在進修。但相較於在學時,就業後的學習更有方向也更專心(畢竟時間少)。這時候想到似乎翟大講的,工作需要的技能進修也要算薪水,這時候真的很希望是這樣啊。
未來與總結
接下來的計劃?恐怕是換到一個能夠成長更快的環境。就跟實驗室一樣,能學習的東西比不上付出時…。但對於工作的選擇,我也很希望我手上的產品是我有興趣且認可的。算是標準 3C 控心態?
整體來說是一個很繞路的學習經歷。玩過很多東西,也不斷轉換跑道。有時候興趣太廣泛並不是件好事。因為好奇想學走了歪路,也因為好奇想學找到了新的興趣,因為對許多事都很好奇,永遠不知道下一步在哪。現在擅長的技能也不代表就是未來想走的路。提早起步也要同條路一直走才能真的走得快,只能說看了很多單走一條路看不到的風景,只是風景也只能留在心裡。
再走一次就會走對路嗎?很難說。眼界需要環境培養,更早參加社群、多認識人、找真的有興趣有挑戰的 intern、case 做做,或許能及早培養眼界,找到自己真的想走的路,瞭解自己不足之處。與其怪環境沒給你機會,不如怪自己沒趁早往外走。
關於本文作者
d2207197 Soft & Share Slack站友
如果您想與本文作者互動與討論, 歡迎到 https://github.com/softnshare/careergrowth/issues/5
為什麼會有這篇文章?
目前我們在Soft & Share slack的 forum-careergrowth 辦一個很有意義的活動, 大家一起來分享自己的學習成長, 職場, 脫離舒適圈等經驗, 如果您看了我們的分享, 您覺得您的故事也可以對大家有所啟發, 歡迎來加入我們的分享行列
最近招募中的網路讀書會
Soft & Share 的讀書會願景- 我們希望每本書會是一個連結, 最後這個連結會形成一個網路, 這個網路甚至會誕生新的創意, 這個新的創意會對社會有幫助, 讓人的生活變得更美好.
目前招募中的網路讀書會請參考這個頁面
相關課程與書籍
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
Soft & Share 站友好文分享 : 圖解分層增強學習觀念
本文同步發表於Soft & Share 資料分析與機械學習 Slack channel, 有興趣歡迎加入討論
前言
會想要分享這篇是最近一方面在社群中和大家討論有提到,此外就是這一兩年也有一些學術文章在探討分層深度增強學習,更重要的是我覺得對於普羅大眾而言,增強學習其實會比一般傳統機器學習模型更能幫助大家在商業應用或專業技術中能更塑造優勢,因為增強學習可以把你專業的Know-How整理進來,融入業務架構。
今天在此先帶來的還是觀念,未來想說可以把一些開源的封包應用來做個 Demo Code 或 Toy Package 給大家把玩,到時候會再斟酌是放在 softnshare 的 datamachlearn 還是 python 的 repo 中
分層增強學習
增強學習 (Reinforcement Learning, RL) 是一種機器學習的訓練架構,增強學習假定你的訓練輸出可以作為一個「決策參考」並透過決策結果來產生新的輸入資料,透過這樣反覆不斷地「決策-判斷」來訓練模型學會在特定的輸入資料下能始終做出最佳的決定。
最簡單的理解就是「機器人走路」機器人透過感知到地面周圍,進行判斷到底這個地面能不能走,然後最後決定是否要往前進。這裡可以發現,模型聰明之處是在於從非常原始的地面資料,最後能抽象做出走路與否和走向哪裡的決策。
但這會有個缺點,如果你的訓練目標稍微複雜一些,例如「機器人走路,還會閃避地面障礙物,然後先找尋地面鑰匙撿起來」 哇!這怎麼可能單純感知到地面資料,就能做出的簡單決策呢?在這樣的前提下,我們希望機器人能合格達成「多目標任務」就好,不用過度優化單一目標(舉例來說,機器人為了最佳化避開障礙物路線,結果永遠撿不到地面鑰匙),這時候就可以採用 【分層增強學習 (Hierarchical Reinforcement Learning, HRL)】
透過下圖,你可以簡單理解出有沒有分層的差異:
透過把增強學習的決策過程,拆解成分解動作,每個分解動作的決策都搭配一組增強學習,成為一個複合式的增強學習模型,某種程度可以解決掉我們所需要完成的「多目標任務」。
但是!分層增強學習也被人詬病,由於你人為的給定了分層的框架,所以分層增強學習並沒有達到足夠智慧化的創新,他並不是自己學習到分層的框架,所以後來就有人發展出分層框架也透過機器學習來訓練出來,但這樣樣本和訓練過程的時間就又更長了。
但是個人觀點是認為,任何方法的重點都是在解決問題,如果你的業務發展本來就有一些值得和模型鑲嵌在一起的知識框架或專業知識,分層增強學習搞不好還會成為你們公司機器學習相關產品服務對特定客群客戶的重大賣點呢!
About Me
RICKY,目前任職於瑞典摩爾資產管理,擔任小小 Quant (P-measure), 主要擅長混合新聞短訊與時間序列資料的複合式機器學習模型開發, 近一年來主要深耕於流形學習(manifold learning)盼能在中文世界遇到熟的知音
關於Soft & Share
Soft & Share目前有經營 FB團購社群 並會透過slack召開網路讀書會, 有興趣歡迎來加入, Soft & Share也是廣受開發者喜愛的開發工具JetBrains合作夥伴, 歡迎透過Facebook搜尋 “JetBrains Taiwan” 即可找到JetBrains開發工具的社群, 歡迎加入社群討論.
最近招募中的網路讀書會
Soft & Share 的讀書會願景- 我們希望每本書會是一個連結, 最後這個連結會形成一個網路, 這個網路甚至會誕生新的創意, 這個新的創意會對社會有幫助, 讓人的生活變得更美好.
目前招募中的網路讀書會請參考這個頁面
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
一種對機器學習模型過擬合的改良-參與機制(Attention)的觀念簡介
來自Soft & Share 資料分析與機械學習版主ricky的分享, 對於ricky的分享有任何問題, 歡迎加入slack聊天室討論
今天來和大家分享一個主題,是關於機器學習領域中,我們怎麼來處理「過擬合」(Overfit),事實上我個人較長使用的方法仍然是在機器學習模型中置入模糊邏輯,在公司(財經)中開發的lib中我也是寫了比較多套模糊邏輯,主要原因是計量經濟學有一些現成結合模糊邏輯的理論,關於模糊邏輯的應用與實務上的一些理論應用的觀念,下次再多分享。今天要來介紹給大家的是所謂的參與機制(Attention)。
一般來說,機器學習模型主要是透過各種理論方法,得到一組模型的權重與參數,由於希望盡可能地將資料屬性挖掘出來,因此模型的權重參數通常會很多,這樣才能給予足夠高的自由度來呈現出輸出結果,有種螞蟻雄兵的感覺。
但是個別權重的意義不大,一定要把所有權重置入模型才有用,我有沒有辦法只使用「部分」的模型權重呢?聰明的你一定想到,我就把部分以外的其他權重都令成0,這樣不就得了嗎?但是你要挑那些權重變成0呢?此外有些權重如果變成零,搞不好還會有反效果(例如原本權重是負的,變成0反而變大了!)
好吧!既然我們不能使用「部分」的權重,那我們使用「部分」的輸入資料總行了吧?但是問題還是一樣,我怎麼知道我們選的部分資料是正確的呢?舉例來說,如果我要輸入一張照片,但我事先切割成了兩張照片,但是好死不死就剛好把你的頭剖成兩半,放到能辨識整顆頭的機器學習模型中不是也是白忙一場嗎?
【參與機制】就是這樣來的,既然你我都不知道該如何取捨權重和輸入資料,我們就事先在模型訓練的過程中,我們不但要訓練出一組模型權重參數,還要訓練出一套參與機制,這套參與機制(也叫做留意機制、注意力機制)讓我們的機器學習模型不但能【學習】還能把【注意力】放到正確的地方。
因此當我輸入一張照片資料,經過輸入機制中的【參與輸入】計算能幫我們把注意力放到正確的地方(例如照片資料中的人臉部分)經過一個能辨識開心/難過的模型之後,他就能輸出到底是開心還是難過。反之亦然,我們也可以對模型計算的結果投入不同的關注,透過【參與輸出】來呈現出更為重要的輸出結果。
你感覺到了嗎?參與機制最關鍵的地方,就是讓你的機器學習模型的輸入/輸出資料的維度可以彈性變化!例如你把照片剪裁成小一點,他也是一樣能透過把注意力放在照片中的人臉,得到正確的結果!
我的工作主要在時間序列資料,有時候我們要選擇到底用過去多少時間的資料來搭建時間序列,然而透過參與機制的加入,我就不用再為選擇多長時間的資料來煩惱,因為我的模型就能自動對「應該的時間長度」投以「應該的關注眼神」當我的輸入資料有急遽變化(例如金融商品價格飆升與驟降)他就能更關注短期變化,並透過模型中對短期變化的反應來輸出我想要了解的結果。反之,若資料呈現一種穩定的緩步趨勢變化,參與機制就會多考量一些我的資料中較久以前的資料,透過參與輸入帶進模型計算,最後輸出結果~!
我一直很好奇把術語拔掉看起來很拗Orz…希望仍對大家有幫助!
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
你必須登入才能發表留言。