發表文章

目前顯示的是 4月, 2013的文章

[ML, Python] Gradient Descent Algorithm (revision 2)

圖片
因為最近有在看Coursera複習ML, 就順便結合我這邊的一些其他資料做個整理 Gradient Descent 一個在ML中相當常用來找minimum的演算法 在進入Gradient Descent之前, 要先談一下Linear regression with one variable Linear regression, 基本上高中數學課本就已經有教過了 給你一堆點, 要你找一條線去fit他, 可以用數學表示成 y = ax + b 那我們炫一點, 用ML常見的方式表示 x就是那些點 (input), 那 h θ (x) 就是那條可能的線

[Ubuntu 13.04] Ubuntu更新

前幾天就已經看到要更新的新聞 今天系統一開機就詢問是否更新, 好吧, 就來當個白老鼠試試看 基本上從12.10更新上去, 還算容易, 勾勾選選後面都自動化了 除了幾個小設定問你要不要保留, 或者沒用的lib要不要刪除 唯一有碰到的小問題是, 如果剛好有用到一些library在跑, 有可能會暫時失效 像是剛好正在用python, 結果因為正在更新python library, 所以有幾個lib當下是失效的 等到13.10更新好上去,  就又可以用了 重新開機後, 基本上目前感受差異還好, 有些圖示修改了, 中文的字體也改變了, 搜尋也稍微換了 在工具列上的程式如果有開多個數量, 可以在上面按右鍵看到其他的選擇, 快要變成win7了嗎... 不過到是把我的桌面work space數量改變了Orz, 不~~我的16個畫面就此消失了嗎QO.... 想說用12.10的方式去調整Compiz居然沒看到!!!! 最後google了一下 找到一篇文章有教學 http://askubuntu.com/questions/260510/how-do-i-turn-on-workspaces 首先要去開啟dconf-editor這隻程式 然後到org.compiz.profiles.unity.plugins.core這個位置 去修改hsize跟vsize, 才把workspace調回來 (歡呼) 看看這幾天還會有啥悲劇發生....Ubuntu每次更新我心臟都要承受不小壓力XD 目前悲劇還有Linux版本的Skype失效(直接就給他segmentation fault) Skype 解決:  http://community.skype.com/t5/Linux/ubuntu-13-04/m-p/1501979/highlight/true#M3841 查到解決是執行前要加一行 export LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 然後再執行skype就可以了

[Python] property - Python build-in function

property是python內建的function Official python property:  http://docs.python.org/2/library/functions.html#property 他真的...相當相當好用阿, 只是第一次看到的人可能會莫名其妙 去google也要花很多時間去了解, 或者沒看懂就不看了, 不要用就好 可是會用的話, class修改的code會有一定程度的大幅降低, 也提昇maintain的好處

[ML, Python] Adaboost part 2

進入到實作部份, 先稍微整理一下, 用Adaboost要準備三個材料 1. Structured Input Data (意思就是檔案要整理過比較方便) 2. Weak Learner (一個簡單的演算法) 3. Adaboost (演算法主體) 4. 鹽巴一小匙(XD) 其實Adaboost屬於一種meta-algorithm, 白話一點說, 就是他是附加在某一演算法上的演算法 其實那個weak learner, 才是去學習的演算法, Adaboost不過就是強化了他罷了 所以來討論一下傳說中的weak learner (其實每個演算法都可以當weak learner, 但, 還是不要太強) 實作會參考Machine Learning in Action的範例來使用, 不過會稍微修改 (對了這是一本好書, 想學ML實作的人應該都去買來看看)

[ML] Adaboost part 1

圖片
當年我第一個學的ML algorithm, 就是Adaboost (Adaptive boosting) Adaboost wiki:  http://en.wikipedia.org/wiki/AdaBoost 因為他在平均辨識偵測的表現上, 算是較好的, 參數不多效果好, 好learning, 不學嗎? 其實應該是說這比SVM好介紹...所以Adaboost先登場XD 不過, 通常Adaboost要登場前, 要先拿Bagging拿出來鞭

[Python] easy generator

python的generator一直都相當好用 這邊參考了官網跟Expert Python Programming 官網:  http://docs.python.org/2/tutorial/classes.html#generators 首先進入generator之前, 要先了解一下iterator 使用iterator很簡單, 只要下iter即可 i = iter('apple') 之後可以用i.next()來呼叫每個元素, 就會一個一個印出a,p,p,l,e

[Linux] Linux下查詢硬體記憶體資訊 Memory Information

有時候常常再win可以做的事情, Linux也想做 像是查記憶體插了幾根, 最多可以支援到多大的記憶體之類的 dmidecode指令相當方便, 當然需要sudoer的權利才能用 相當詳細的教學說明:  http://www.weithenn.org/cgi-bin/wiki.pl?Dmidecode-%E6%9F%A5%E8%A9%A2%E7%A1%AC%E9%AB%94%E8%B3%87%E8%A8%8A 這邊只稍微提及記憶體查詢, 其實他還可以查詢CPU, Motherboard...etc

[Machine Learning] 雜談兼瞎扯

還是比較喜歡寫自己的專長, 雖然碩士主攻Machine Learning, 但是還是覺的自己差得遠了 雖然當年(2010)唸碩士時有榮幸伴隨著指導教授的強大能力上了人生的第一篇ICML paper 不過, 人怎麼可以這麼快就滿足了呢???, 更何況當年還被NIPS打槍過XD, 不報仇不行阿(!!) 轉回來, 其實我還滿想要推廣ML的, 但是中英文的文件溝太大, 希望我自己寫(掰)的下去(掩面) 滿多資料跟內容可能都會是參考我當年指導教授(帥氣的HT-Lin)的著作 Book:  http://www.amazon.com/Learning-From-Data-Yaser-Abu-Mostafa/dp/1600490069 Offical Website:  http://work.caltech.edu/telecourse.html 上面是偷打廣告, 其實還會參考其他家我有買(?)的ML書籍, 例如: Introduction to Machine Learning (Ethem Alpaydin) 或者是看到某個演算法想要用中文去描述或者是如何實作也會紀錄(如果我有看懂...Orz) 我比較想要以中文為主來解釋眾多可怕的數學跟專有名詞....(自虐?) 再來是個人有時候的感想 我覺得很多人到後來都只會用tool, 像是用Weka用爽爽, 或者是只會用林老師寫的libsvm跑跑程式然後結果好棒好成功.... 但是演算法說不定都沒了解...只是會用tool, 這不行阿~!! 尤其如果看到較有水準的Conf paper, 需要實作, tool太複雜不會改, 那不就很可惜? (當然厚著臉皮去跟作者要code也不是不行, 但也要人家理你) 不過也不是真的實作就可以做出來....NIPS的一堆理論就深到爆炸, 想實作還要先看懂Orz...(但是真的好幾篇都很讚) 所以如果有閒有時間或者我如果看得懂...會順便翻譯一些不錯我也滿喜歡的ML-related Conference Paper 其實參照我自己工作的行業跟以前唸書的內容, 我應該也可以順便寫寫資安才對.....嗯...改天來翻譯幾本原文的Hack教學應該不錯(?!)

[Python] Basic Logging

這世界看起來好像很安全, 其實很危險, 像是北韓看起來很想要打仗, 但是打過去了要是南韓系統沒有log那怎麼救? (被飛彈炸到還有的救? 還有南韓好像跟我無關...雖然reddit天天都是他們的新聞) 寫程式會有bug, 會有例外狀況, 既然有這種可能會有的突發狀況意外狀況, 有防火牆也防不了的火災......那還是要乖乖的用log紀錄當下系統資訊起來比較保險 python有一個log module相當好使用, 叫做logging python logging:  http://docs.python.org/2/library/logging.html 中文目前描述較詳細的網站:  http://www.icoding.co/2012/08/logging-html 英文教學還是歐萊禮比較完整:  http://www.onlamp.com/pub/a/python/2005/06/02/logging.html 用print沒什麼不好, 就是管理麻煩了點(懶...), 還是用log比較方便, 一開始設定痛一次, 就好了XD