Linux setup share folder
今天要教大家的是Linux share folder的用法,若您擁有多台電腦,且多台電腦需要互相傳資料的時候,按照小編以往的作法即是拿著一顆萬用USB這邊插插那邊拔拔、來回奔波、長途跋涉阿,傳了很多次後實在覺得很麻煩,因此決定使用共享資料的功能,今天要使用的是Ubuntu系統的samba功能。Ubuntu實在很貼心,什麼指定都不用下就只要視窗點一點即可,參考下列說明趕緊開啟您的共享資料夾吧。
首先,隨便創建一個資料夾並點擊右鍵,之後點擊屬性窗格
點擊Local Network Share,之後再點擊Share this folder,系統即會跳出視窗要求安裝服務
點擊Install安裝Samba套件
安裝完成後系統會要求重新啟動session,之後就重新按一次剛剛流程
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
繼上次小編發現可以跑AlphaGo 程序後,小編又更進一步的發現覆盤利器-Goreviewpartner。小編學圍棋也有一陣子時間了,在圍棋的世界中小編體會到八字名言 - 沒有最好,只有更好 ,通常您能贏別人都只是因為對方看到了你的缺點,而你自己卻渾然不曉得,這時對方就會佔上風,因此,想要棋力更上一層樓只能找出下棋中有缺失的地方進一步的去改進。今天要介紹的這款軟體即具有此功能,以往讓高段老師覆盤並講解一盤棋可能就要幾百塊,如今,使用此軟體一毛錢都不必花費即可享受高段老師的覆盤工作,且或許還比您的老師還強!!,若看不懂的話還可以隨時換低段的老師幫您覆盤,這麼好用的軟體怎能不使用呢~~對圍棋有興趣的朋友趕快跟小編來學學吧。
今天要介紹的這款軟體是外國人寫出來的,稱作Goreviewpartner,是款開源軟體,github上的網址如下:檔案開源位置
作者甚至很用心的把程式碼都打包成exe檔,方便windows的用戶下載使用,底下是檔案下載位置:檔案下載位置
到了網站後可以看到有許多版本,小編選擇第一個不需要GPU的軟體下載,當然,若您的電腦有配備不錯的顯卡的話可以選擇其他GPU的版本來測試
下載後執行的畫面如下:
Darwin的AI天地 發表在 痞客邦 留言 (1) 人氣( )
Feature Pyramid Network for Object Detection
1.abstract:
本篇論文是當時coco競賽中最好的結果,所利用的只是加上一個top-down的架構並且和前面的feature map做個結合的動作即可取到相當不錯的結果(下圖d)。
2.main idea
底下這張圖闡述了本篇論文最核心的思想。
圖(a)
金字塔架構的特徵萃取方式是從傳統演算法SIFT/Harr/HoG就已經大量使用方法(如圖a),主要就是利用各種不同特徵層來提高影像辨識效率,但從前的方法都是手工選取的,而如今主流DL方法是能把這些特徵層經由大量的資料來自動學習。
圖(b)
剛開始的演算法如同faster-rcnn等只取最高層的特徵
圖©
SSD 是最先運用金字塔架構來提升預測準確度的其中一種模型,但是SSD是從中間以及後面自行增加幾層新的特徵層來做預測並沒有充分利用底層高分辨率(high resolution)的特徵層來辨識,這些特徵層對小物體的辨識至關重要
圖(d)
因此,本篇論文就提出了新加入top-down的網路架構,利用反卷積的方式製造出與前一層feature map形狀一樣的特徵層,然後再把左右兩邊的特徵層合在一起,這麼做的好處是可以既利用高層的語意特徵又結合低層高分辨率的特徵,從而提高準確率
3.experiments
How important is top-down enrichment?
由下表的(d)可以看出少了top-down的模型在大物體偵測的實驗有良好表現,但小物體就較欠佳了
How important are lateral connections?
論文中表示top-down的網路架構雖然有高語意訊息與高分辨率訊息存在,但由於經由太多層卷積層以至於精確的特徵座標位置移失了,因此需要結合bottom-up的feature map才能提高準確度。表格中的©和(e)相比即可發現有加lateral網路比沒加的多了10個百分點
How important are pyramid representations?
在金字塔的最後一層P2擁有高分辨率以及高語意訊息等特性,因此作者嘗試將所有的anchor都放置在金字塔的最後一層。經由實驗(f)發現效果並沒有比較好,因此顯示出金字塔特徵層的重要性
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
Ubuntu 16.04 nvidia-1070ti cuda9.0
Install nvidia-driver
首先要安裝顯卡的驅動程式,數字版本可以根據自己的需求更改,一般來說會依照安裝的cuda版本做相應的變動,基本上和官網給的顯卡版本不會差距太多,如下圖所示的,cuda9.0安裝的驅動版本是384,因此比384高一點即可。小編安裝的時候最新版本是415,但做了相關測試沒發現任何問題,因此小編之後就安裝最新版本的了,若有發生問題再往前試試安裝其他不同版本即可。
法一:命令安裝
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install -f nvidia-367
法二:圖式化安裝
點擊system-setting中的 additional drivers並選擇相對應的版本,之後按下apply changes即可
驗證 nvidia-driver
驗證的方法非常簡單,只要在terminal裡面打上nvidia-smi,若有出現以下畫面即表示安裝成功
安裝cuda9.0
到官網下載相對應的cuda安裝包
之後一個一個的執行command安裝即可,底下為安裝畫面:
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
Object detection的由來
最近Andrew Ng開了一堂深度學習的課,非常適合初學者學習,裡面有一系列課程,分別為
1.Neural Networks and Deep Learning
2.Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
3.Structuring Machine Learning Projects
4.Convolutional Neural Networks
5.Sequence Models
小編上了其中一堂,裡面非常詳細的講解object detection的由來以及YOLO的運作原理,上完這堂課令我茅塞頓開,許多以前懵懵懂懂的概念經過這堂課的洗禮後就清楚許多了,且coursera的教學方式本身我就非常的喜歡,上課時不只教學而已,課堂後也都會有小考試測試您對這章節所講述的概念有無理解,且還會有程式實作的作業,寫完作業後馬上就可以上傳伺服器來打分數,非常有效率。底下附上課程的連結:
https://www.coursera.org/learn/convolutional-neural-networks?specialization=deep-learning
小編這堂課上的是第四堂,主要講解的是深度學習中的主流網路-卷積神經網路,底下將整理一些小編在這堂課學習到的內容
1.classification:
下圖是一個CNN非常典型的例子,輸入一张圖片後來分辨圖片的種類,這是小編剛接觸深度學習時最初知道的概念,以為網路的功用即是做物件分類罷了。但慢慢學習之後才知道網路無所不能,只要丟入適當的input與output,網路甚至能告訴你物件在圖片中的位置並把它框出來,這類網路在學術界中稱為object detection model。
2.sliding window detection
早先最開始的概念是訓練各種不同大小的網路,然後在圖片上以滑動窗格的方式來尋找物體,如下圖所示,紅色的框框代表三個input size不同的CNN網路,藉由不同大小的框框分別在圖上滑動來預測物體,只要網路的信心大於一定值則可推斷框框所停的位置有極大的機率出現物體,因此我們就可以得知物體的位置並把框框畫出來。
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
Deep Q-learning (DQN) 原理說明
Mnih, Volodymyr, et al. “Playing atari with deep reinforcement learning.” arXiv preprint arXiv:1312.5602 (2013).
這個演算法就是當今鼎鼎有名的公司DeepMind所發明出來的,而DeepMind就是靠著這套演算法得到Google公司的青睞,因而在2014年就花高價把這間公司買下來,多年後證明Google當初的決定是對的,DeepMind不負眾望的挑戰從前人工智慧難以望其項背的棋類項目-圍棋,並成功打敗目前人類最頂尖棋手-柯潔,從最初版本的AlphaGo,一直到AlphaGO-Master,最後是不靠人類棋譜資料的AlphaGO-Zero,無處不顯示人工智慧的強大,而打造這一切的基礎便是當初的演算法DQN。
DQN 是由兩個龐大體系所組成的,第一個是強化式學習,另一個就是深度學習。強化學習是存在許久的理論,早在幾十年前研究學者就已經對它進行了許多研究,有興趣的朋友可以找找 Sutton 強化學習的聖經 - An introduction to reinforcement learning,又或者是可以到小編所寫日誌上觀看學習,亦或是到網路上也都存在許多珍貴的學習資源。
Reinforcement Learning - Q learning 推導
另一個龐大體系則為深度學習,是近期非常蓬勃發展的研究項目,DeepMind的厲害之處在於它成功的結合這兩大系統,並利用Atari遊戲當做實驗環境來進行學習並得到非常好的成效,在某些遊戲中,學習的機器人得分甚至比人類專家的得分還要高,因而人們才開始體現到這兩大演算法結合所能發揮的效用。
底下是DeepMind用DQN學習打磚塊遊戲的精彩影片 :
https://www.youtube.com/watch?v=V1eYniJ0Rnk
Darwin的AI天地 發表在 痞客邦 留言 (1) 人氣( )
以前小編常常為了跑網路上的範例程式分別交互用兩台電腦運行,一台跑python3的版本,一台跑python2.7的版本,甚至在以前還沒有兩台電腦的時候只能乖乖地一再重灌再重灌,真的是非常沒有效率。但小編自從發現了Anaconda+vscode這個組合之後就再也沒用過其他的compiler了,因為真的是非常方便好用。從此不用再為了環境的問題傷透腦筋了,所謂工欲善其事必先利其器,想學好python一定要有一套好的工具才行阿。
關於Anaconda的介紹,小編在之前的文章中已經提過了,因此在這裡只針對vscode做介紹,還沒看過的朋友們可以點擊以下連結觀看
Anaconda 介紹與安裝
1.創造環境
裝完Anaconda後可以隨意創造多個獨立的python環境,只要執行以下指令即可,env_name填入想要的環境名稱以方便做辨識,然後再接上想要的python版本
create environment
conda create -n env_name python=3.5
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
本篇是記錄學習李宏毅老師講解第二個章節[1]的學習筆記,在筆記之間多少也融合了之前Andrew Ng所講的內容[2],通過融合比較兩位大師的講解後,我對bias以及variance的概念又更理解了,著實有令人醍醐灌頂之意味
Bias and Variance
一開始老師以簡單的例子並搭配圖形介紹bias與variance的概念,如下圖,假設這是一個射飛鏢的遊戲,總共給你20次機會射靶,很厲害的人會全部都命中靶心,也就是如左上角這張圖一樣,在機器學習中稱為low bias and low variance,這也是使用機器學習的最終目的-訓練模形使得模型變成low bias and low variance。而右上角那張圖代表選手的偏差還有點大,雖然每次都在中心點附近,但還是存在一定的誤差範圍,這個時候在機器學習中即稱為high variance。再看看左下角那張圖,選手的偏差已經和高手平分秋色了,但選手的中心點卻不是瞄準靶心而是瞄準靶心稍稍上緣的位置,這個時候在機器學習中稱為high bias。
稍微有點variance 以及bias的概念後,老師繼續用個簡單例子加強說明,假設模型的目的是要找出X_cp到y之間的映射關係,左邊假設模型是個簡單的對應函式,經由gradient descent之後可以找到相對映的參數W、b,把很多組data做同樣的運算就可以得到如左圖的圖片出來,可以發現線條大部分都集中在中間的部分,相對於右邊用複雜的模形預測出的線條有規律許多,因此左邊的模形稱為small variance模型,右邊的模形稱為large variance模型。
bias也是做同樣的實驗,但老師不知道介於圖形中心點的那一條線的圖形因此就假設藍色的線為中心線,綠色的線為所有橘色的線取平均,因此由圖形可以發現到左圖兩條線的偏差比較大對應的圖形是large bias,右邊的圖形兩條線偏差相對小,因此對應的圖形是small bias。
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
Adagrad gradient descent implement
今天小編要教大家實作網路的梯度下降法,並用圖式化的方法一步一步的看出演算法的學習過程,非常適合初學者建立梯度下降法的概念,全文會公式與程式碼並行並搭配圖片讓概念更加具體化,本教學是看到台大李弘毅老師的課程因而寫的,老師在影片中說得很棒,很適合初學者學習,推薦大家去看老師的影片,底下附上影片連結,本篇只是以文字的方法描述老師影片所講解的內容而已。
VIDEO
開始之前先解釋一下程式碼的概念,首先會有10組創造出的data,接著將透過演算法找尋適合的weight、bias,使得用這組w、b預測出來的 y 值會最接近提供的數據,並讓Error加總最小。創造Error function有多種形式,這裡採取最簡單的square error做講解。
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )
k-means
kmeans 是一個聚類演算法,當給一堆資料做 K 個分類時,kmeans 演算法能根據群中心點與資料點的距離一步一步的疊代算出最適合的分群聚落,主要目的就是最小化下面的error。其中公式i代表所設定的K群中的其中一群,公式j代表所有點中的某一點,因此用白話文解釋為算出群落中的中心點與那個族群的所有點的距離加總,第二個加總符號表示每一群都做距離加總然後把它全部加起來。
Total error:
算法原理:
接下來講解步驟原理,步驟只有三個,剛開始先亂數決定每個群的中心點,再來將每個資料點根據選定出的群中心點做匹配的動作,之後根據新選定的群更新成新的中心點,一直重複上面兩個步驟直到收斂,底下是圖解說明,圖片來自圖的下方部落格連結。
https://dotblogs.com.tw/dragon229/2013/02/04/89919
應用:
下面將利用sklearn提供的kmeans工具對Iris Data進行分類的動作
Darwin的AI天地 發表在 痞客邦 留言 (0) 人氣( )