2016年11月25日 星期五

MIT Techonology Review 摘要心得 11/23

今天所摘的兩篇稍微提到資料取樣偏差對模型的影響

1. 神經網絡學習辨識罪犯的臉孔 原文

這種Minority Report式的犯罪預測器並不是多新奇的點子,2011年 Cornell似乎發現了一般人可以由照片區分出罪犯與非罪犯,而上海交大也以此為基礎實驗了讓機器自己區辨一群男性的照片而看機器是否能有效區分罪犯的臉孔與否。結果是有89.5%的成功率,證明了被定罪者與一般人之間的臉孔特徵上有決定性的差異。
在沒有看到原文研究時很難多做批判,對於這類議題或許我是過於保守的人,不過隨手可以捻來些疑問:比方說照片的來源是中性證件照或是Mug shot,是開始從事犯罪行為後的照片還是開始犯行之前。
拉離機械學習的範圍來想:臉部特徵與定罪是否是透過犯罪而連結起來的? 假設這犯罪臉就是導致許多人犯下罪行,被指控,或是被社會孤立而犯罪。那即使機械可以精準預測,其實也只是複製人們對臉孔特徵的歧視也不一定。

2. 自動化的性別歧視 原文

處理自然語言的AI在學習語言的時侯將特定職業,如programmer,與男人這個性別連結得較為緊密。這個存在於多數人概念中的偏見(縱使在統計上男性programmer比女性programmer多)是否應該在訓練AI時經由手動調整平衡這個差異?人為操作是否會讓AI無法正確學習到語言的正常使用方式?

換句話說,如果一般人講話就是這麽具有偏見,一個講話中性的AI是否會讓人覺得不近人情呢。

真實世界的資料可能並不是我們所理想的樣貌,但使用機械學習可以有效地複製或模擬現存世界的現象,自動化並提供更能客觀觀測的行為方式。讓我想試試將性別中性的權重加進演算法中壓抑性別偏見的發言,看看訓練出來的AI能多接近人類。

又,這樣的AI有沒有可能協助下一代的人類擺脫具有性別偏見的說話方式呢?語言固然是活的,但與帶有偏見的語言使用者交流的機會是不可能(可能也不應該)被隔絕的,在可預期的未來中我不認為是可行的。不過也難說,或許幾年後教師都被AI給取代了也不一定。

2016年11月18日 星期五

MIT Techonology Review 摘要心得 11/18

因爲發現自己花挺多時間讀MIT Technology Review的,所以決定偶爾挑一些主題來聊

1)演算法是否會複製歧視?原文

雖然基於資料發展的演算法及機械學習模型在理論上是從一片白紙開始而可以避免各種歧視,但如果訓練時所使用的資料便帶有偏誤(bias)且未加以篩選,演算法則難以免於複製歧見。而人為的篩選訓練資料即使在方法上可接受也不盡然能免除歧視資料隱藏在篩選後的資料中。

然而,以使用活著的資料來不斷更新的演算法會遇到一些更難以解決的麻煩-文中提到有類似非裔美籍名字的Uber 乘客在叫車時有較高機率被司機取消。即使名字也被匿名化,有些隱性的因子可能會不知不覺連結到更廣的層面-假設有一A區域,是某次文化或某弱勢團體的社群集散地,而在此乘車的乘客多為受歧視的族群而普遍因為偏見背負著較差的評價,縱然自動規劃路線時不將姓名等可辨識族群的因子納入,只要演算法以優先載到最多優質乘客為主,就會造成此區域的乘客不分評分優劣都比較難叫到車。

接下去是否會演變成演算法加深歧視,歧視加強演算法的迴圈就不再討論下去。但是以開發者的角度,確實需要思考資料本身的偏誤,以及演算法設計是否默默地吸收了隱藏的因子。而其間的風險(失去商機,被告歧視等等)也是在衡量模型時可以考量的論點。

2)帶動製造業發展帶動不了就業機會。原文

偷渡一點政治文:川普當選了美國總統,就算他跟希拉蕊比起來少了政客的虛偽而真的在乎選民,對於弱勢和少數族群所表現出的態度仍然不令我苟同。做為一個總統他還未表現出足夠的泱泱大度。如果這是一個佈好的局,他的民調與好感度可能會開低走高,但這樣他的虛偽也不下眾多政客了。

製造業移出美國後美國本土汽車產業一蹶不振,現在更是被日系德系車廠給搶走大片市場。在這些年間,自動化生產減少許多基礎勞動力的工作機會,而這差距大約是機械時薪8美元跟人類時薪$25美元的差距。人類還需要更多休息時間,更多誤差。回到人工時代,大量生產的產品平均水準會下降,而單位時間產量也會降低,產品單價還會因而上升。這些失去工作的人們再過幾年後痛恨的會是機械嗎?

機械自動化帶來的衝擊與進口的粗放農業品對台灣小規模精緻農產品的衝擊挺像的。我以前曾經發表過覺得台灣農業應該走精緻化的看法,雖然不清楚現在台灣農產活得怎麼樣,但是有許多年輕人開始重新包裝台灣的農產品,感覺還蠻有戲的。(工商一下:貓兒干花生 我還沒吃過可是好好奇啊)

2016年11月14日 星期一

Udacity Machine Learning Nanodegree(優達學院 機械學習微學位)

前幾天將Udacicty的Nanodegree最後的project交出並通過了。在這裡記錄一些感想供有緣看到的人們參考。

Udacity的課程是以專案為單位輔以理論課程,會不斷依學員回饋而更新,因此上過之後回頭常會看到些自己挖出資訊理解的內容被列入課程中,可說一面欣慰一面無語。

Udacity 提供的專案皆屬於機械學習中經典的入門題目,但是reviewer在回應時往往會提出一些新穎的工具以供學員自我學習。我會建議將每則Review的重點記錄下來,因爲專案通過不代表沒有改進的機會,而不斷學習在將來實作上也是非常必要的。

在學習過程中,論壇上的同學可以提供針對課程內容的疑問提出協助,比如對特定題目的解釋與理解。

做專案時最有幫助的是StackOverflow,甚至是知乎等中文論壇,會有一些介於學術與實作之間的回應。諸如什麼情況下使用Breadth-first search與Depth-first search這種等級,到XGBoost的使用經驗討論,各種不同技術層面的討論都有,StackOverflow使用者也相當熱衷於提供相關討論內容以及參考資料,雖然不是學術討論也是種對於效力的輔助。

Slack channel上,往往會看到特定數名同學熱衷地討論,而大部分人可能多選擇潛水。但這裡可以看到工作機會以及其他學員搜集到的內容及業界資訊,做為進修的方向也相當有幫助。

以一個剛完成學程的畢業生角度,我會建議先拿個幾門Udacity免費的課程,瞭解它上課的方式,確定適合自己之後再決定是否要報名。報名前當然要瞭解結業的條件與課綱,有什麼問題要問的立刻先問。通常會有一週的試用期,我就是用一週將第一個專案完成,瞭解自己不足之處後,先暫停課程補足進度後才開始正式課程。中途也可以暫停學程,雖然會無法進入課堂繼續上課,但是在邊工作邊上課的學員可能多少會需要一些時間彈性去完成工作上的十五。 但,不暫停而將收費做為叮囑自己進度的方式也是不錯的方法。

開始課程後,不需要一一將所有影片給看完,如果遇到有信心的內容可以少花些時間。但我建議至少將quiz 與 mini project給練習一下,稍微複習一下自己認為熟悉的內容。直接進入project也是可行的,事實上完成專案需要相當全面的知識,但是並不算太難,前半的專案照表操課要通過不成難題。我自己練習的部分多著重在寫碼的技術面,久了多少會後悔自己以前花太少時間學寫碼。Reviewer的回應需要好好讀,多半可以指出自己沒意識到的缺點。

真正最有趣也最耗時的是最後的Capstone Project。需要自己訂下題目,做出符合標準的分析,並要提出足夠深度的討論。訂題目這部分我得到的建議之一是:不必要做出革命性的題目,但要有自己獨特的見解。如果缺乏足夠的技術作出想要的成果就要自己去學,要還是真的不行,在討論中要能指出將來可以精進的方向。

原本Capstone Project的範圍更加彈性,但在我上課途中Udacity考量reviewer的專業領域不能涵蓋過於遼闊的應用範圍,因此建議學員將內容定在幾個特定領域,同時增加了選修的專案- Capstone Proposal,供學員先與reviewer討論可行的方向。這不斷改進的教學方式讓我頗為滿意,但因爲我當時已經開始最後的專案了,也與我無關了-這點倒是有些矛盾的感受。

我所做的專題是以美國高等教育機構該年投資與花費模式去預測表現(以完成學位,學程,得到獎項的人次爲例)https://github.com/jamway/MLND_CP_Education_Spending_Pattern
所做出來的model還有98%的準確度真的是令我有些意外。但這專案尚有後著-改以各機構前幾年內的花費金額為預測變項,並將如UC系列及UT系列等分開討論。

而已畢業的現在,有許多kaggle上的賽事讓我也想參一腳看看高手的技術,同時也有許多可做為練習項目的專案,可以做為精進的基石。
https://www.analyticsvidhya.com/blog/2016/10/17-ultimate-data-science-projects-to-boost-your-knowledge-and-skills/

2016年9月23日 星期五

第一步:決定計畫的方向

開始一邊工作一邊上課後時間安排緊湊了許多,人生中也遇到些大事,不過我還是希望能至少紀錄些研讀資料科學遇到的問題與心得。


設定計畫的架構
在業界,商場,工場或其他職場,一份報告的嚴謹度可以比學術等級更高或更低。(廢話)比方說,石墨烯的製成,在業界需要足以成為製品的產量跟品質,在學界重視的則可依研究目標而定。業界對於分析的結果檢視有時則可能不如學界謹慎,雖然這並不是好事,但確實可以大幅提升對於市場的反應速度。但是兩者都遵照一定的步驟來確保結果是可信,可以衡量的,以避免資源的浪費。同理,自己的計畫也應該有一個好的研究架構,去構築自己的產品,檢視其表現與價值。至於在那之上是否有商業價值我要看目標如何設定。

設定目標-闡述方法及衡量標準-研究並取得資料-(處理資料-衡量成果)-討論與改進。

其中括弧的部分也許需要重複多次...一個要點是在每個步驟是否有明確地闡述目標,討論可行的執行方式,並提出選擇現行做法的理由。步驟結束後往往可以藉由檢視最初的敘述來確認是否有正確執行並達到目標。沒有達到目標也不需要刪掉報告重來,試誤也可以成為一個經驗。

接下來每個步驟都可以遇到許多問題,我選擇做的計畫目的除了做出成品外也冀望能做為自己得到不同經驗的契機:除了分析美國高等教育機構的花費與表現,我也同時在思考kaggle上TalkingData的競賽,現在公司可能使用得到的履歷閱讀機器人雖然因爲隱私性問題可能無法成行,所以我正在構思一個打桌遊的AI。當我看到許多人使用deep learning與神經網絡在判讀圖像時,我詢問Udacity論壇關於自己的畢業報告題目是否過淺,論壇導師也告訴我:不一定非要本世紀最具突破性的想法才可以。話雖如此,我還是有思考嘗試做一個圖像辨識AI並使用RasberryPi的攝影機去做一個辨識我自己臉孔的機器人。

作為一個半路出家,對於工具掌握還不深不淺的人,我認為設定一個自己覺得追得到但是還摸不到的目標是維持動力的一個方式。對於這門技藝逐漸掌握的時候,同樣的計畫架構可以通用到更寬廣的架構吧。


2016年5月24日 星期二

Data Science的用途與方向

Data Science現下最受矚目的應用莫過於Machine Learning,而AlphaGo前一陣子的比賽更是這門學科一個極佳的宣傳。雖然術業有專攻,但至少在machine learning的應用上大多不是單一學門的成就,不少研究都是由特化過的專門知識經過跨領域合作不斷重複補足修正才達到了如今的成過。唸過人類的學習理論後再來看機械學習,有些可以沿用的概念也有些容易被混淆的部分,下面就以我自己學習心理學時留下的基礎來描述機械學習的方向。

人類學習的重點是在資訊的存取,現在機械學習的應用則著重在客觀資料的決策行為上。機械在資訊儲存,提取,以及處理的機能上已經超過人類的能力了,而機械學習則是利用其性能:運算出基於客觀資料下做出的理性判斷,分析海量資料中可能存在的關聯因素,找出最佳化行動的模式。下面我試著舉三個例子做參考。

假設我們要找出創業成功的方程式,在設定好成功的定義後(比方說損益比)可以藉由既存資料找出關鍵的因素,而當一間新創公司的資料進來後,我們可以把相關參數丟進訓練好的電腦中,讓它計算出這間公司是否會符合我們成功的定義。

或是當手中有一大堆資料,可以透過一些運算找出具有關鍵性卻被忽略的部分。這個過程或許會需要更多專業知識來輔佐,並需要足夠的簡報技巧以創造出市場價值。我現在可以想到的是如The Big Short(大賣空)裡預測到次級房貸將崩盤並乘勢製造出新商品一般。(所以也是有可能遇到資料作假或是暗地操盤導致成果不如預期)

最貼近一般生活的莫過於我們用google map設定目的地時,它會依照現在路況及各路段時速計算出最快路線供駕駛參考。

機械學習大約分成 supervised learning, unsupervised learning, reinforced learning三種,上面我試著各舉了一個例子,爾後再詳述各學習方式的細節。

所以人腦應該會有更多時間和資源來做更高階的策略規劃...吧


2016年5月13日 星期五

契機

我從小算是一個懶惰的孩子,而一個月前在有力的心靈支持下決定開始自學Data Science了。只帶著一些粗淺的認識就打算把人生一部分投下去的原因是不想讓自己停留在固定的領域裡。 這邊主要想留下一個沒基礎的人慢慢累積經驗的紀錄,以便將來自我審視或有幸做為他人借鏡。

Data Science是一門跨領域學科,跟我大學主修的心理學一樣是與許多業界有所重疊的知識/技術。然而Data Science在2016年的現在可說是股價高漲,除了許多人掛在嘴上的Big Data,心理學界曾經帶領過的AI發展,在人類圍棋棋士與人工智能對戰敗北的里程碑下又多了幾分令人目眩的吸引力。

以我現有的基礎知識來解釋,Data Science是藉由處理與分析資料來理解甚至建構模型以預測事件的技術,老實說也存在有一段時日了。然而在資訊量爆漲的情況下,人們發現在那一山蒐集來的資訊裡可能藏了價值連城的寶物或藏寶圖,於是有人開始重視如何挖掘,整理,組合成我們需要的成品,更甚者,讓大量的資料告訴我們想也沒想過的關聯性。

統計數學能力,coding能力,專業知識大概是走這行必須注意的幾個方向。而我,則是樣樣皆鬆...