張維元 | ALPHA Camp
資料科學家的養成路徑
活動主辦單位:Taiwan Data Science Meetup 台灣資料科學社群
講者介紹
維元擅長網站開發與資料科學的雙棲工程師,熟悉的語言是 Python 跟 JavaScript。同時也是程式社群 JSDC 核心成員及 資料科學家的 12 心法課 發起人,擁有多次國內大型技術會議講者經驗,持續在不同的平台發表對 #資料科學、 #網頁開發 或 #軟體職涯 相關的分享。
📍報名課程: https://pse.is/3bu4qh
📍粉絲專頁: https://pse.is/3cazqk
大綱
- 資料科學發展脈絡
- 資料科學技能養成
- 資料科學專案流程以及團隊分工
- 資料科學挑戰與瓶頸
資料科學的發展脈絡
『什麼是資料科學』
資料科學就是從資料中提取有價值的部分,簡單來說,資料科學就是從資料中找關係的一種方法,但從資料找關係並不是很新的學問,但為什麼資料科學會突然爆紅呢?主要是因為過去兩次產業界的發展:工業3.0 (數位化、電腦的出現) 以及工業4.0 (智慧化、網路的出現)。過去這十年來,從雲端、物聯網到機器學習、人工智慧,這是一個從硬體到軟體、軟體到應用的發展過程。
『資料科學的學派』
資料科學分成兩個流派,第一個是統計學、第二個是資料探勘,統計分析是利用現有資料的樣本來去解釋現有資料的母體,而資料探勘著重在找出資料背後隱含的關聯、關係,除了統計學與資料探勘以外,我們也常來機器學習來和兩者做比較,機器學習則是強調如何利用現有資料來預測未來資料。這三種都是從資料找關係,只是他們想找出關係不一樣。
統計是在電腦還沒發明前,在數學底下的一門學科,機器學習從電腦出現以後,在人工智慧這個領域底下的方法,資料探勘則是從電腦科學領域的資料庫發展出來的。資料科學並不是一個新的方法,它有趣的地方在於它可以實現很多不同的可能性。
『資料科學 + X = ∞』
資料科學本身是一種方法,X指得是某個領域,唯有把資料科學套用在某個領域才能創造無限大的價值。其實統計學也是如此,大家慢慢將統計應用到不同領域,像是文字探勘、心理統計、計量經濟、流行病學、社會調查等等,講者認為資料科學也是如此,資料科學會被慢慢應用到各個領域,最後成為人人都需要的一個解決問題的方法。
資料科學家的技能養成
『資料科學是一種跨領域的能力』
資料科學是一種跨領域的方法論,其包含電腦科學、數學、統計學等等,簡單來說如果只有一種專業,你很難成為一個很好的資料科學家。如果有某一個領域的專業,再加上資料科學的方法,把這兩件事情結合後,才能發揮最大的效力。
以下是不同的圖表,從不同角度去解說資料科學所需要的技能,不同的圖都說明了資料科學是一種跨領域的能力。這看起來很困難,因為你需要學習很多技能,但這也是一個契機,因為要學習都東西很多,所以你有很多不同的角度可以切入到資料科學,並不是只有理工背景的人當道,不同背景的人都有機會成為資料科學中的一份子。
『台灣資料科學產業』
根據講者在台灣觀察產業的經驗,從2014火紅的Big Data,到2016 ALPHA GO開始帶動了後來這兩年Deep Learning、AI的出現,圖下方為各產業投入資料科學應用,從2016兩年,出現比較多資訊、電機的教授做有關分析、模型、電腦視學的題目,到了2018年開始有統計、商管、公部門的投入,最典型的例子就是有很多銀行開始建立關於資料科學的部門,2019後就有醫療、工程,還有新創公司開始強調AI,到了2020,發現有一些可能看似跟資料科學比較沒有相關的產業,也開始導入資料科學的方法。這讓我們知道資料科學已經開始像統計一樣被應用在各行各業。
『資料科學技能』
資料科學是一種跨領域、綜合性的能力,簡單可以分成三種技能,包含程式 (技術力)、理論 (分析力)、應用 (應用力、商業力),把這三種技能對應到技術上的科目:
- 程式 (技術力):資料工程、大數據
- 理論 (分析力):機器學習、深度學習
- 應用 (應用力、商業力):視覺化、人工智慧
會感覺如果像成為資料科學家,這些技能都要點滿,非常遙遠、困難,但這也反映了沒有人可以在一畢業就把這些技能都點完,講者建議如果是剛到資料科學領域的人,可以先選擇一個自己比較喜歡的技能去出發。
專案的工作流程以及團隊分工
『如何打造資料團隊』
一位資料科學家需要技術、分析、實務應用、跨領域溝通的能力,所以在組成資料科學團隊時,並不是單由資料科學家所組成,而是由一、兩位資料科學家加上不同的資料科學工作者去滿足這些能力的需求,這些職缺可以分成以下三大類型:
- 分析應用:資料分析師、商業分析師
- 程式實作:資料工程師、資料架構師
- 數學理論:統計學家、資料科學家
分析師主要是利用現有的軟體、程式去幫助我們快速理解現有的資料,對於分析的複雜度 (寫程式、用進階模型) 相對較低,工程師利用程式的方法自動化得去產出資料、結果,科學家則是深入得去挖掘資料分析中看到的表面現象、去挖掘沒有注意到的事情、去挖掘一些資訊可以用來預測未來的模型。
許多公司會將分析跟工程拆成兩個團隊,分析團隊有統計、數學人去研究模型,然後再把模型包成模組交給工程團隊去使用,但如果中間遇到問題的話,該怎麼解決?常見的問題像是模型上線以後表現不好,模型表現不好有不同原因,可能會是流量或是訓練集資料出問題等等。
這種壁壘分明的方法會讓解決問題時存在模糊空間,講者認為這兩個團隊可以更靠近。第一種解法是在分析團隊加入工程職缺,分析團隊產出的東西就不是模組而是一個API,把系統也拉回到分析團隊裡。第二種解法是創造一個職缺 『機器學習工程師』,這個人會同時有模型跟工程的技術,更巧妙的把中間的洞把它補起來。
模型部署到上線可能也會有問題,像是模型要如何持續運營、迭代,要如何自動化部屬模型,這時候就會有『MLOps機器學習維運工程師』的角色出現。
講者認為資料科學相關的職涯發展是非線性的 (如下圖),資料分析師可以發展成資料工程師或者是商業分析師,資料工程師也可以走架構師、或者是ML工程師的職缺等等。黑色框框的部分是一些進入不同職缺會有的優勢,可能本來就會寫程式的人往資料工程師就會比較容易、本來會數學、統計的人往資料科學家發展會比較容易等等,只要找出自己適合的路,人人都可以成為資料科學家。
『資料專案工作流程』
資料科學就是一個從資料到決策的過程,它在做的事情就是從資料中找出關係,資料專案的流程可以分為取得資料、資料前處理、模型訓練、模型評估、決策應用,這個流程並不是從左到右就結束,而是一個迭代、持續優化的過程。過去資料科學的討論可能只考慮到產出模型為止,但實際上有模型之後還會有下一步,像是如何上線模型、產出報、運用模型在大數據等等。
資料科學的挑戰與瓶頸
講者探討了以下三個挑戰與瓶頸:
1. 資料科學家學習者、入門者是否有隨著AI發展一起進化?
- 資料科學跟AI是個正在發展中的產業,可能每三個月就會有新模型,身為一個入門者有沒有辦法跟上這些新知識會是值得思考的問題。
2. 機器學習模型的瓶頸及人工智慧寒冬來臨?
- 人工智慧並不是一個新的題目,過去發展了幾次都面臨失敗,這次人工智慧的發展會不會有可能也遇到瓶頸?
3. 近期大規模裁員,為什麼很多公司先裁做Data的?
- 去年2、3月疫情爆發時,很多公司有裁員、停止招募,發現Data都是第一波被裁員的,最大的原因是目前Data在探索、研究的性質還是大於實際產出、落地的應用,前幾年AI討論得很熱絡,公司都會願意花資金去投入研究這個領域,當經濟緊縮的時候,這些做AI、Data可能就會受到影響,這時候應該怎麼辦?這個問題也是我們可以去思考的。
資料科學有許多優點,也有挑戰跟困境,但這些挑戰帶來了更多機會跟可能性,只要你有心、選擇適合自己的路線,每個人都有機會成為資料科學家。
Q&A
Q1 網頁開發跟資料科學雙棲給你最大的優勢是什麼?因為機器學習模型是要部署的,還要考慮到性能,你認為會網頁開發哪部分給你不同的優勢?
- 後端的人不了解資料科學、模型在做什麼,統計的人不了解模型部署,兩邊人都很難解決模型上線的問題。要去訓練模型的方法有哪些需要什麼資料、資料欄位代表意義是什麼。然後再透過後端的方法去優化部署。雙棲的優勢是了解後端的架構是什麼、模型並不可怕,整體優化做得會更好。
Q2 很少在台灣看到所謂機器學習工程師,請問這最後實現到產品上的的工作在台灣被分到哪一塊?
- 可以看公司的職缺,如果關於資料科學缺開得越多、越齊的話,代表該公司對於資料科學比較看重、分工也會較細。如果相關職缺較少,該公司可能會請像「機器學習工程師」的職缺去同時兼顧科學家跟工程師的職責,相對來說就會需要一條龍打全場(不過優點就是進步很快)。
Q3 如果目前都沒有學過程式語言,要如何自學相關資料科學的內容,並成為資料科學家?
- 如果想成為資料科學家,最重要是要對資料有熱情,要怎麼判斷自己喜不喜歡資料,你可以透過一些方法去快速玩、分析資料,當你發現你用一些軟體分析資料達不到你預期的效果時,你就可以開始去培養你程式、資料工程的技能。程式語言不是一個一開始就必要的條件,如果還不會程式語言的話,講者建議你先抓住你喜歡資料分析的過程,直到你發現你現有的工具難以滿足你分析需求的時候,再去學習程式語言。
Q4 請問相關工作經驗對於資料分析師求職者重要或必要嗎?
- 講者認為「相關工作經驗」對於求職並沒有這麼重要,而是「相關經驗」非常重要。例如5年前AI剛興起的時候,當時都沒有任何人有AI的「相關工作經驗」,那挑選人的方法就有「相關經驗」。講者建議可以透過實作小專案或者Kaggle比賽去獲得「相關經驗」,你可以沒有「相關工作經驗」,但一定要有一個「相關經驗」能夠證明你對資料分析有一定的掌握度。
Q5 目前擔任分析師,工作上沒有建模相關的經驗,想問如果想轉換成為資料科學家,在轉職前該如何準備?(例如作品集準備,面試技巧 等等) 。
- 講者說明最速成的方式當然可以在Google上搜尋「資料科學面試技巧」,網路會有非常多相關的文章告訴你要如何準備面試,但不推薦此做法。就像前一題提到的,要著重在培養自己的相關經驗,要肯花、投入時間去培養出相關經驗。
Q6 如果對於模型沒有興趣,但對於資料處理及資料分析和視覺化很有興趣,也可以成為資料科學家嗎?或是有更好的職位呢?
- 對於分析、視覺化有興趣,下一步是你要如何把資料更有系統化地分享出去,更喜歡的可能是表達,模型有時候可能較於抽象、難於表達,講者建議可以往應用、商業分析的方向去走,利用資料科學的方法去解決商業問題。
Q7 資料科學家好像不只需要技術還需要一定的領域知識,要怎麼找到喜歡的領域知識以及如果是自學,如何增加領域知識呢?
- 資料科學是一種方法,這個方法需要應用在某一個領域,可以看自己在還沒有學習資料科學前所在的領域是什麼,那個領域或許是最好的出發點。
Q8 對於資料科學領域,資料科學家、資料工程師、資料分析師等等職缺的未來升遷路徑,其中有些人轉成PM,也許有人繼續當資料科學家,想請問在未來的職涯路徑的可能性有哪些
- 最典型職涯是分析師 -> 工程師 -> 科學家,另外分析師也可以往商業分析師、顧問,工程師的話可以往架構師、Dev Ops、雲端。資料科學就是透過資料的角度去解決問題,是一項技能,如果你是PM,你學習資料科學完後,也會增加你解決問題的能力,不一定要把資料科學當成職業,而是可以應用資料科學到你的領域。
Q9 想問現在AutoML越來越多的情況下,對於未來想成為資料科學家的人有什麼機會或危機嗎,是否會取代部份資料科學家的需求
- 取代科學家的需求其實還好,目前資料科學最大的障礙不是技能而是學歷,大部分資料科學家的職缺都是博士。但從分析師、工程師的角度可能就有被取代的危機,因為會有越來越多自動分析、資料處理的工具。未來有一天建模型可能就像你用PowerPoint、Words、Excel一樣簡單,但工具、機器不可取代的是要怎麼知道這個資料有用、要怎麼知道這些資料可以分析出什麼結果、要怎麼套用在哪個領域,要學習、培養出對於資料的敏感度跟觀察力。
Q10 想聽講者成為資料科學家路上遇到的困難或是經驗分享
- 這題可以分層兩個層面,學習過程跟工作應用階段。第一個是學習的層面,技術更迭太快需要學習的東西很廣泛,感覺永遠都學不完。第二個問題是實際上工作導入的情況,因為資料科學還是比較抽象的,產出不一定很明確,也不定可以讓不同單位的人接受。
Q11 如何在DS領域 走得長遠? 如何在 hard and soft skill 之間取得平衡?
- 我覺得是保持好奇心,養成動手做的習慣,把資料導向的思考實踐在「解決問題」的過程上。
Q12 在kaggle使用別人的案例,是可以放入自己的作品集的嗎? 這樣是不是算模仿或抄襲呢
- 這個部分可能要看原有資料集的授權,但盡量不要在作品集當中揭露原始資料集的部分,建議可以寫成「利用 OOO 電商資料,預設效果達到 XXX 的轉換率」之類的方式。這部分重點應該是你解題的過程跟產出的結果,而不是原始資料。
Q13 請問統計研究所對於成為資科家有加乘效果嗎,本身是財金系想跨考,修過r, python跟數據相關的課程
- 當然會有幫助,資料科學家最大的難度在於學經歷的要求和數學抽象化的思考,這部分反而是很多工程師難以攻克的。
Q14 請問像是elastic search,我本身有應用在工作上的搜尋需求,但不知道如何應用資料科學方法滿足於更進一步的搜尋需求,請問像這種gap,會有什麼建議嗎,本身自己現在是一名後端工程師。
- 對於後端工程師而言,elastic search 就是一種工具,我們並不會深入研究其內部的運作原理,通常就是當成一個套件來用。不過對於資料工程師來說,可能需要理解背後的邏輯,以及可以怎麼調整資料達到最好的搜尋效率。像這種 gap ,可以去找一些資料工程師或是資料架構的課程,裡面就會講到各種不同的工具。
Q15 想當資料分析師,唸資科所應該可以吧🤔
- Sure ,想當資料分析師可以念資工所、統計所、經濟所、生科所 …,只要有心人人都可以成為資料科學團隊中的一員:)
筆手:Jason Wang
校稿:張維元, Nina Chen
👉 歡迎加入台灣資料科學社群,有豐富的新知分享以及最新活動資訊喔!
https://www.facebook.com/groups/datasciencemeetup