PYTHON 機器學習基石 LS-PLA

Perceptron Learning Algorithm (PLA) 根據林軒田教授的機器學習基石課程,實作一下這個基礎的機器學習演算法 討論這個問題,用到的學習大架構(Supervised learning),它也是所謂的YES/NO問題。 Perceptron⇔ linear (Binary) Classifiers 我們有一組訓練資料D,裡面包含著數據Xn和對應的Yn(在這裡就是1,-1);Hypothesis set H代表這全部的解(無限多條線),經過演算法A,從H找到一個可能的g和我們的目標函數f相近。 這個演算法的主要兩大步驟;找到錯誤的點,向量修正它,詳細課程可以看教授的仔細講解!!naive cycle是常用的作法 這方法只適用於 linear separable PLA 除了上面這些以外,當資料中有雜訊也無法使用這個方式,目前在線性問題上較好的解是用**Pocket PLA** Linear separable PLA 首先整理一下資料 把[‘x0\ty0\tz0\nx1\ty1\tz1\nx2\ty2\tz2\n….’] 變成arrar([[(x0, y0), z0],[(x1, y1), z1],[(x2, y2), z2]…..])的格式 如同前幾張圖片(x1,y1),(x2,y2)的資料方式 NAIVE PLA ,畫線則是用 ax + by = 0 最終結果 Pocket PLA Pocket PLA 是一個貪婪演算法,把好的握在手上繼續往下算,每次都會比較看有沒有比手上的好,停止方式則是讓它跑到一定數量,或是多久沒有變更好等等的;這裡就不寫了。 My GitHub

2017-04-18 · 1 min · 51 words · KbWen

Python reminder

變數 不用宣告變數的型態 可以直接用 x ,y = y, x 對調 同時宣告多個變數的方法 上下兩類方法會得到兩種結果(前者數字,後者字串);注意變數數量和迭代的數量要相同 String 表示 Escape \ Python中 “\“代表著脫離字串,常見如下 要讓"脫離字串"回到字串型式,前面要再加”\";例如倒數第二個 用 Raw string 也是相同意思,(r’****') 字串可以迭代 字串也有像基本list的取值、讀值方式;代表可以使用非物件專屬的函式,例如 : len() 範例,可以注意find指令的回傳值 ‘’.format() %s 這兩種輸出方式會得到類似的結果 目前看到再tuple下,%會有問題,我想我會多習慣用’’.format()格式

2017-04-14 · 1 min · 31 words · KbWen

Tensorflow 使用GPUs

Tensorflow 支援使用 CPU 和 GPU 做運算 "/cpu:0": The CPU of your machine. "/gpu:0": The GPU of your machine, if you have one. "/gpu:1": The second GPU of your machine, etc. 用 with tf.device() 來分配這個語句下使用的設備 log.device_placement = True 紀錄我們使用device的情況 allow_soft_placement = True 避免指定的device不存在,讓他能自行分配到存在且可運行的地方 我沒有多顆CPU,其他的語法先不試

2017-04-14 · 1 min · 43 words · KbWen

Tensorflow 練習1 : Polynomial Regression

使用 Tensorflow 分析 Regression 的基礎練習 Nerual network 分析二維四次多項式 先定義輸入輸出格式,None表示我們不限制它的Row 在 Tensorflow 中 要定義它是常數、變數,或是從外部輸入,必須要分別指定成 tf.constant() tf.Variable() tf.placeholder(),他才會是那個形式; 而想使用Tensorflow 的任何內容,必須要用sess.run()去啟動它,不然會是Tensor的格式。 其中sess = tf.Session() 定義一個Y = W*x +b 的線性方程,在隱藏層中利用activation function 去改變它。 評估模型好壞常用有square error和cross_entropy,這裡利用square error計算loss。 選擇基本的梯度下降並最小化loss;optimizer是個小於1的值。 設定要訓練的數值和函數(記得要有一定的雜訊) W shape = (in_dim, hidden_units) = (10,1) predictions shape = (200,1)*(1,10)*(10,1) = (200,1) 訓練1000次每50次看結果:視覺化和數據化 placeholder 給資料會是一個字典的形式 Session.run(*****,feed_dict={a:a_data,b:b_data,…..}) 最後結果 My GitHub

2017-04-13 · 1 min · 53 words · KbWen

第一篇網誌文章

這是你的首篇文章。按一下「編輯」連結以修改或刪除文章,或開始撰寫新文章。你可以利用這篇文章告訴讀者建立此網誌的原因以及接下來的計畫。

2017-04-12 · 1 min · word · KbWen