全文共1466字,預計閱讀時長2分鐘
熟練掌握C語言卻總是在轉型機器學習算法的道路上屢屢跌倒?懂得AI模型的邏輯卻在每次偽代碼修改後都被報錯?
你的絆腳石或許不僅僅是對於Python語法的陌生,還有對於數據集的處理摸不著頭腦。
這時候,就需要我們回歸基本概念——從向量、矩陣開始,讀懂機器學習語言。
不同在何處?
在一般性C語言編程中,對於數據的處理主要利用指針。
熟悉它的同學們都知道,所謂內存,其實可以被視作一棟有許多房間的旅館,數據按照特定順序存在於這些房間之中。而指針,就是房間的門牌號。每一個指令的下達,就是依據編號敲開對應的門,而不用每一次處理之前,都得對房內的具體數據有所了解。
但機器學習的邏輯卻與這完全不同。如果說前者是演繹法,那麼機器學習則是歸納法,對於機器學習模型最重要的,就是理解單位數據本身。
就圖像識別而言,模型為了正確識別狗,需要掌握的是每一張含有狗的圖片數據中有何特徵點,這些特徵點與貓、與人、與桌椅板凳的特點有何不同,從而讓圖中的狗成為計算機眼中的狗
在這樣的運算中,計算機是邏輯的主宰者。計算機在圖片的特徵參數提取中,學會了頭圓、有深色鼻頭、尖耳朵、可伸縮爪子的物體是貓,而吐舌頭、塌耳朵、長臉的是狗。至於模型如何判斷塌耳朵和尖耳朵,我們很難給出確切的答案。
我們最有控制權和控制可能性的,是通過獎勵信號訓練模型,讓計算機在自己的推理邏輯下,給出我們想要的答案。
這就意味著,在機器學習中,我們需要一個更加靈活的東西,讓機器可以為不同數據之間的聯繫賦予權重,而不僅僅只有指向。這就是運用向量的意義所在。
向量與矩陣
在機器學習算法中,有這樣幾個要素值得關注。
首先是數據集,它將作為輸入信號(inputs),根據訓練階段的需求,被劃分為模型的訓練集、驗證集、測試集。
其次就是向量。雖然在不同語境下,向量的意義各不相同,但並不妨礙我們將其歸納為含有數量級與方向的量。這樣一來,向量便能搭載著數據的邏輯關係及權重,從而讓數據集被輸入編碼器,形成數組,隨之進入神經網絡模型運算。
而這個龐大的數組,通常以矩陣的方式出現。
所謂矩陣(Matrix),當然不是《黑客帝國》裡的那個邪惡智能體Matrix了,不過它的確有這方面的潛質。矩陣是一個按照長方陣列排列的複數或實數集合,它在計算模型中可以指代許多東西。
比如這個3 x 3的矩陣,其中的1可能指代的是物體顏色為紅色,其中的5可能說的就是物體的位置。
而將矩陣放置在神經網絡算法中,通常指代的是向量與數據集的組合。
為什麼要利用矩陣呢?首先,大家都知道,單個向量本身就是一個1 x n的矩陣。其次,在Python中,Numpy系統可以直接進行矩陣之間運算。這樣一來,便可以避免使用不斷將單位數據代回公式的for循環,從而提升運算效率。
如何讀懂?
理解了向量與矩陣的重要性,只是邁出了讀懂機器學習的第一步,要繼續走下去,必然需要夯實基礎
在許多機器學習入門教程中,許多作者都提供了他們所認可的線性代數課程。
一位網名叫@SEFDstuff的小哥就在他的YouTube頻道裡提供了幾個關於向量和矩陣的公開課鏈
向量 (explained with Linear Algebra):
https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces
向量 (explained with PreCal):
https://www.khanacademy.org/math/precalculus/vectors-precalc
矩陣:
https://www.khanacademy.org/math/precalculus/precalc-matrices
不用翻牆,手指動一動,邁出你讀懂機器學習的第一步吧!
讀芯君開扒
讀懂機器學習,需要建立自己的詞典
入門機器學習並非難事,更不需要從零開始。
掌握Python固然重要,但Python不過也只是機器學習這本海量詞典中的一個部分,而剩下的絕大多數內容,還有待發掘。
而發掘的過程,就是學習他人研究和代碼過程。利用諸如TensorFlow,PyTorch這樣的機器學習框架,開啟學習的第一步將是一個很好的選擇。
要知道,只有當你真正開始著手寫作神經網絡模型,你才能真正地發現問題,並獲得尋找解決方案的動力。你的機器學習詞典,才不會永遠都停留在膚淺的層面。
留言 點讚 發個朋友圈
我們一起探討AI落地的最後一公裡
作者:羊習習
參考文獻連結:
https://www.leiphone.com/news/201804/wmYdmBLjATQZoH7c.html?viewType=weixin
如需轉載,請後臺留言,遵守轉載規範