機器學習之小白入門
前言
從2019年開始,趨於整個行業的形式,一直在學習AI機器學習方面的知識,這期間買了很多書,也聽了很多課。一開始學習的感覺很神奇,再到迷茫,幾乎棄坑,最後到認清事實,中間花了一些時間來讀書、看書和思考,我在這裡分享1下自己粗淺的學習心得,是為了讓更多的朋友從"白話故事"的角度理解機器學習,僅此而已。
此貼的目的,是讓不懂機器學習的小白使用者入個門而已。
論壇裡面有很多帖子是關於35歲之後怎麼辦的話題,我今年也過了35了,AI人工智慧是整個網際網路的大趨勢,是擋不住的,要硬著頭皮學下去才是生存之道。
如果內容表述過程中出現了理解上的偏差和錯誤,還請各位指正。
我學習機器學習的目的
其實一開始學習的目的非常簡單,希望能學到網際網路業內神奇的"黑科技"知識,在測試工作中所運用和實踐,既學了知識,又能提高團隊的工作效率,還能在組織內show一下技術肌肉,實在是一舉三得。
隨著逐漸深入學習和接觸下來,越學習越感覺害怕,對於數學不是很擅長的我,也越來越吃力,最後到了近乎放棄的狀態。
停了一段時間後,自己還是重新調整了目標方向,把自己的目標定小一些,可不可以這樣:"如果不懂機器學習的人問你這是什麼,給別人解釋明白",看似初級的目標,就成了我的學習目的。
弄清楚幾個基本概念
最近幾年特別熱門的概念:人工智慧、機器學習、深度學習,到底他們啥區別。
人工智慧:
目的是為了讓機器有“智力”,為人所用。不是一個技術方法,只是一個廣泛的概念。
機器學習:
讓機器有“智力”這件事,怎麼落地呢?那就讓機器自己去學習與思考。人先定義好一些演算法、輸入資料(樣本)、人標記出來的特徵資料,並用這些資訊進行分析,得出結果後自己做出一些行為。
深度學習:
讓機器有“智力”後,深層次的挖掘資料中的關係。
在三國時代中,武將如雲,誰能稱得上是真正的"良將"?
一萬個讀者中,就有一萬個哈姆雷特,A說,我覺得是:呂布。B說,我覺得是:趙雲。C說,我覺得是:關羽......,總之很難得出一個正確的答案,那麼我們就以這個問題,藉助機器學習的知識來實踐一下,到底誰是三國時代中最厲害的武將,如果你是三國時代的一方郡主,招攬什麼樣的武將幫你打天下?
張飛很不服氣
張飛說,剛剛的讀者都沒有提到我,是因為我長得醜嗎?我不服。
那麼,我們來客觀分析1下,武將得具備哪兒些條件,參考了遊戲《三國志》中的主要資料:
- 指揮統率
領兵打仗的能力,下屬聽不聽你的。團隊管理能力,能不能讓1個P5的小兵在你的隊伍中發揮P6的水平?
- 智謀
就是智謀高低,是否聰明狡猾
- 武力
就是武功高低,是否身手了得
- 魅力
應該是顏值、人格等等這些資訊,是不是名士
如果用這些維度去衡量一個武將的話,指揮統率能力、智謀、武力、魅力就是特徵。拿張飛舉例,張飛是一個武將,那麼他就是一個資料樣本;他的武力如果是92,這個值就是特徵值;張飛{指揮統率:77,智謀:80,武力:92,魅力:10}這一組資料就是一個武將的特徵向量。
換句話說,如果我們得到了三國時期一批武將的資料樣本,通過機器學習,這些資料樣本可以叫做訓練集,我們通過訓練就可以得出了誰是三國時期最厲害的武將了。
如:張飛{指揮統率:77,智謀:80,武力:92,魅力:10}
呂布{指揮統率:87,智謀:88,武力:99,魅力:85}等等......
資料是機器學習的先決條件
挑選良將英才
如果你是三國時期割據一方的領主,那你肯定希望網路那個時期的所有英才,輔佐你成就大業。
有的同學會問了,以張飛為例,下面這組資料中,如何讓機器學習的演算法去理解,"良將英才"跟這些特徵之間有什麼關係呢?
張飛{指揮統率:77,智謀:80,武力:92,魅力:10}
那麼,我們可以把張飛的特徵值,我們假設他的值為x,把x放入1個三維空間裡,空間裡會有1個點來代表“張飛”,這就是特徵向量。一個向量就是一個武將的各種特徵資料集合。
如果張飛的特徵值x是輸入資料,那麼這個武將是否是良將英才的結果就是輸出了。我們需要在輸入和輸出之間建立一個計算武將"英才能力"程度的演算法模型。
我們本來並不知道這個演算法模型的樣子,程式碼怎麼寫,不過我們可以通過收集N多個武將的資料來得到演算法,這個過程叫做迴歸。
現在我們來多輸入幾位武將,然後把幾位武將的點都模擬在座標軸中:
然後我們嘗試用一條直線把各個資料點連起來,為了擬合這些資料點,直線要進行移動和旋轉。
慢慢調整這條直線方程( y = f(x) )裡的引數,這就是在做微調。儘量消除偏差,讓直線與各個資料點精確吻合。
武將特徵的權重
前面我們對武將的每一個特徵進行了說明,分別是:指揮統率能力、智謀、武力、魅力,但是"良將"對於這4個特徵屬性的佔比權重肯定各不相同,請看下面:
指揮統率能力 × W + 智謀 × W + 武力 × W + 魅力 × W = 良將值
權重(Weight)通常是0到1的一個小數。究竟哪兒個特徵是重要的呢?其實我也不知道,我們需要不斷的"除錯引數",需要輸入大量大量的武將資料,讓自己的演算法模型進行匹配。
那麼問題來了,怎樣才能讓匹配結果的達到精準呢?
這時,要確定1個武將的"誤差函式":列出理想的輸出與實際輸出,分別做減法後,得到偏差,再把所有的偏差進行平方和的計算。
為了計算的更精準,我們通常把資料按照資料結構特徵進行分類,這稱作:聚類法。比如:可以讓同一類具有相似的武將值進行分類,也可以將具有相近重要性的武將分為一類。
為什麼要做分類呢?因為只看原始資料,我們是看不出什麼的,但是通過初步分類再看資料,會得到更多有用資料。
機器學習的目的就是對世界萬物建立模型,以達到認識世界和改造世界的目的。而這個過程需要不斷訓練資料樣本、不斷加入新資料樣本、交叉組合反覆訓練,最終利用演算法模型來對世界萬物進行相對準確的預測。
先說到這裡,後面的內容有空的時候慢慢更新吧。
相關文章
- Web 前端開發之小白入門Web前端
- 機器學習入門之sklearn介紹機器學習
- HTML之小白的入門Day1HTML
- 機器學習入門機器學習
- 前端小白的入門前端
- 機器學習1—入門機器學習
- MNIST機器學習入門機器學習
- 輕鬆入門機器學習之概念總結(一)機器學習
- 機器學習入門_從機器學習談起機器學習
- 小白入門 - PHP簡介PHP
- Git基本用法,小白入門Git
- JUnit4小白入門
- 小白的正則入門
- 機器學習PAI快速入門機器學習AI
- 機器學習01-入門機器學習
- 機器學習入門規劃機器學習
- 機器學習入門準備機器學習
- 自學機器學習入門指南機器學習
- 【小白必看】Python入門知識之常用關鍵字!Python
- 寫給小白的pySpark入門Spark
- UI 設計小白入門論UI
- 第 8 場 小白入門賽
- 機器學習從入門到放棄之KNN演算法機器學習KNN演算法
- 機器學習入門|聚類(二)機器學習聚類
- 機器學習該怎麼入門?機器學習
- 聊聊經典機器學習入門機器學習
- Maven入門【小白千萬別點進】Maven
- Python小白必看!新手入門指南Python
- Python教程之小白入門篇Python
- Electron小白入門自學筆記(一)筆記
- 小白入門學習打日誌
- MySQL小白入門04 - 集合運算MySql
- 寫給mybatis小白的入門指南MyBatis
- 機器學習入門實戰疑問機器學習
- 機器學習入門知識體系機器學習
- 機器學習:新手入門概覽(一)機器學習
- 機器學習入門基礎大綱機器學習
- 小白如何入門Mybatis?這裡有答案MyBatis