2016年6月3日 星期五

機器學習、類神經網路、tensorflow

機器學習   

    在現實生活中我們 [假定] 我們關心的事情有一個數學公式,
    當然他可能沒有數學公式又或許是這個公式非常複雜,
    那機器學習就沒有辦法學到東西
    當然我們不可能知道 這個[神之公式]
    我們只能知道一堆資料"輸入"與"輸出"
    例如 這個世界還沒有歐姆定律,
    我們想要知道流過這個電阻上的 電流
    然後我就開始蒐集數據,
    加入電壓量測到電流並記錄下來,
    加入電壓 就是X  測到電流 就是Y
    然後把這些X與Y丟給機器學習學習這些數據,假設機器學習是可以學到這個公式的
    有一天 來了一個電壓 是以前都沒有看過的   
    這時候已經訓練過的機器學習程式,可以預測他[應該]會得到多少電流
   
    電流可能不只與 電壓有關係
    可能跟當時後的溫度,還有當時後的溼度也有關係,
    所以 我就開始 紀錄  電壓 、 溫度 、 濕度 、  電流 、 我當天的心情指數、與環境中的噪音分貝
    然後依樣把這些數據都丟給機器學習
    所以我的輸入 就有  電壓 溫度 濕度 心情 還有 分貝
    如果以統計學來說 這是一個 六個維度的回歸
    複雜度已經有點高

機器學習在這麼高維度的收斂當中 是否數據有用?

    數學家們提出一個見解他們這樣說
    如果這裡有一個罐子 裡面有一堆紅豆綠豆
    那你怎麼估算 這整個罐子的紅豆綠豆比例呢
    統計學來說 就是抓一把 然後開始算
    這樣叫做抽樣
    那抽樣 有可能運氣很差 抽出來都是綠豆
    那我們會說 喔 這瓶沒有紅豆
    很顯然這抽樣出了問題
    數學家們 算出一個公式 這個公式可以告訴你 這樣壞運氣的機率是多少
    結果他們說 如果 你手上的那一把數量[夠大]
    那 你的機率 就會越趨近 整缸的比例
    我們抓起的那一把可以看成就是我們蒐集來的那些數據
    那如果我們蒐集來的數據越多,我們就能越靠近這整體的樣貌(神之公式)
    所以叫做 [ 大 數 據]
    為什麼機器學習 跟大數據 要扯再一起

神經網路跟機器學習又有什麼關係?

    機器學習的論文與方法 多如毛
    但是近年來有一種方法壓倒性的勝利
    就是類神經網路在深度學習的時候 ,可以壓到性的勝利 其他演算法
   

什麼是深度學習?

    深度學習就是類神經網路中間有很多隱藏層
    我們目前的論文都遇到一些困難,就是當層數越多越難訓練
    幾乎無法收斂 神經網路也因為這樣 沉寂了 二十多年
   
    當時候他們提出 卷積神經網路(CNN) 來減少與收斂深層網路
    這些方法於198X年就已經提出了
    但是提完之後 他們就冷了
    因為當時後的科技 無法處理那麼大的運算
    節錄
    Hinton終於一鳴驚人,在《科學》上發表文章,CNN再度覺醒,並取得長足發展。
    2012年,ImageNet大賽上CNN奪冠,2014年,谷歌研發出20層的VGG模型。
    同年,DeepFace、DeepID模型橫空出世,直接將LFW資料庫上的人臉識別、人臉認證的正確率刷到99.75%,幾乎超越人類。
    2015年深度學習領域的三巨頭LeCun、Bengio 、Hinton聯手在Nature上發表綜述對DeepLearning進行科普。
    2016年3月阿爾法狗打敗李世石
    原文連結:https://read01.com/Pg8Rg7.html

    加上 GPU的運算加速CPU運算超過一千倍, 使得這些深度學習變的可行 (GPU速度成長約一年一倍成長)

   

收斂這些神經靠三方法

    1. CNN 卷積神經網路 可以有效地降低神經數量 達到深層數量的效果
    中心原理是說

        a.我們人類觀察一個圖片 是由小細節開始 不是一次看全部
        b.那我們看任何細節使用的都是相同部分的神經
        c.我們看小細節與大全局 也都使用相同部分的神經
        舉例
        假設一張圖為100 * 100
        那我們只使用10 * 10 然後掃描這張圖 90 * 90次
        就像是卷軸移動並累加結果
        所以叫做 捲積
    2. 大量的數據
    3. 高速GPU

所以類神經依賴三個方面


    1.技巧
    2.資料量
    3.運算速度


廠商發展趨勢

    硬體

    http://technews.tw/2016/05/02/artificial-intelligence-now-fits-inside-a-usb-stick/
    一台神級電腦不是每個學校都可以買的起
    廠商發現人工智慧越來越發達 商機無限 出這個
    這個完全為了神經網路 優化的CPU 叫做TPU
    三千元台幣 就可以有神級運算

    軟體


    Google 推出tensorflow 讓運算技巧得以簡單入門
    他是一個 框架 定義  網路架構然後餵資料 就可以自動轉化成 GPU運算 CPU運算 或是 TPU運算
    讓 類神經可以變成是高中的入門課程
    硬體 軟體的趨勢 讓整體的機器學習 幾乎導向類神經網路




種歸來說

   
    他還是一個  輸入資料 與  輸出資料 之間的關係
    並且預測未知的輸入資料 得到 可能的輸出資料   
    這就是整體 運算的核心
    並且自動調整與剃除假設
    例如上方的六維輸入,會自動的把噪音與心情兩維度幾乎對於結果不影響
    是一個很自動的 "回歸"函數
以上