跟我一起學人工智能(二)
文 | 小步
上一篇文章里簡單說了下機器學習、深度學習的幾個概念,如果你已經(jīng)看完了上篇文章,還是建議你去搜索下這幾個名詞的權(quán)威解釋,更能加深你的理解狞悲,也使你對這些概念的認識更加嚴謹和規(guī)范~
話不多說,這篇重點說下機器學習重要的兩大模型:線性回歸和邏輯回歸模型妇斤。
學習之前你需要學會如下知識:
函數(shù)(一次函數(shù)摇锋、二次函數(shù)、反比例函數(shù)站超、三角函數(shù)等)荸恕,導數(shù),偏導數(shù)死相,矩陣知識融求。
如果對上述不懂,可以去萬能的b站學習下高數(shù)算撮,線代生宛,離散,也不用全部都學肮柜,用啥學啥就好了~
這篇文章因為涉及很多數(shù)學方面知識陷舅,好多細節(jié)也沒有表述清楚,再加之自己也沒有理解透徹审洞,如果想要學習的話莱睁,還是建議去b站看下ng的視頻,從2-1開始看~
傳送門:https://www.bilibili.com/video/av9912938/#page=6
如有此篇文章有不妥之處预明,還麻煩告知我下缩赛,大家共同進步耙箍!微信公眾號:多一點思考
線性回歸模型
通過一個房子的面積撰糠,房間數(shù)量等等,估算出這個房價是多少辩昆。
通過人均GDP阅酪,國民總收入等預測未來人口自然增長率。
研究用戶的滿意度與產(chǎn)品的顏色汁针,重量术辐,大小等之間的關(guān)系,改善產(chǎn)品施无。
…………
以上每個案例都其實可以用線性回歸模型來解決辉词,它們的特點:
需要先給模型輸入大量的數(shù)據(jù)以及每條數(shù)據(jù)對應的標簽值,如房子的面積猾骡,房間數(shù)量等的矩陣X(房子的面積瑞躺,房間數(shù)量等屬性稱作特征量敷搪,矩陣X稱作訓練集)以及對應的房子價格的矩陣Y(矩陣Y稱作預測集)
矩陣X內(nèi)每個元素的上標表示第幾條數(shù)據(jù),下標表示第幾個特征量幢哨,如X上標2赡勘,下標3,表示訓練集的第2條的第3個特征量捞镰。
矩陣Y對應訓練集的每行的結(jié)果值闸与。
有點迷糊?拿預測房價舉例子岸售,矩陣X的每行僅有兩個特征量践樱,房子面積和房間數(shù)量,矩陣Y每一行對應矩陣X的每一行特征量的房價冰评。
線性回歸就是通過矩陣X映胁,Y和算法得到數(shù)據(jù)的一般規(guī)律進行預測~
下面先說下回歸算法不得不提的三個概念:(這三個函數(shù)我找了好久權(quán)威概念,還是沒找到~只好根據(jù)自己的理解說下)
假設(shè)函數(shù):這個函數(shù)可以是一元一次函數(shù)甲雅,二元一次函數(shù)等等解孙,可以理解為用來擬合數(shù)據(jù)的函數(shù)。
代價函數(shù):用假設(shè)函數(shù)擬合數(shù)據(jù)時產(chǎn)生的代價抛人。
優(yōu)化目標:確認最優(yōu)解的函數(shù)弛姜。
我們先拿只有一個特征量的訓練集來說下線性回歸模型算法,數(shù)據(jù)表如下:
對應的散點圖如下:
從散點圖上來看妖枚,我們可以用 h (Θ) ?= Θ0+ Θ1 X 來作假設(shè)函數(shù)(當然也可以用二次函數(shù)廷臼,后面會提到,先這么認為)
代價函數(shù):
優(yōu)化目標:
我們要做的就是求得使J(Θ0绝页,Θ1)最熊獭(即代價最小,最能擬合數(shù)據(jù))的Θ0续誉,Θ1莱没,這就又引出一個概念,梯度下降算法:
關(guān)于梯度下降的一個直觀解釋:我們在大山(J(Θ0酷鸦,Θ1)函數(shù))的某個位置饰躲,打算走到山底,于是決定走一步算一步臼隔,每走一步嘹裂,就計算該位置的梯度(梯度是函數(shù)在該點下降最快的方向),沿著梯度的方向摔握,也就是下山最快的方向走一步寄狼,這樣一步一步走下去就可以快速得到達山腳下,當然還可能走到一個山谷的最低點氨淌。
這里需要注意的一點是泊愧,如果學習速率太小狡逢,則需要進行多次迭代才能到達最低點,學習速率過大拼卵,就有可能越過最低點奢浑。我們可以通過指定多個學習速率值,來選擇最合適的那個腋腮。
在算法中雀彼,通過做自動收斂測試來檢測是否得到了最低點的值,即?J(Θ)< β 則可認為已經(jīng)收斂即寡。
通過上面這幾個式子徊哑,我們就可以得出最能擬合數(shù)據(jù)的Θ0,Θ1的值聪富,最重要的是倔毙,算法是可以用python代碼寫出來的~
上面的例子其實僅僅是對于一個特征量的情況下所說的讳侨,那如果多個特征量怎么辦呢?
我們改下假設(shè)函數(shù):
對于每條數(shù)據(jù)添加一個恒為1的X0(對于整體不影響),這樣我們就可以將假設(shè)函數(shù)寫成兩個矩陣相乘的形式葡缰。X1镀首,X2……Xn分別表示特征量1,2……n的值习绢。
代價函數(shù)以及梯度下降算法:
這里梯度下降算法中將求導后的結(jié)果寫了出來蝎土。
上面是多個特征量的情況,如果我要讓一個二次/三次的函數(shù)來做假設(shè)函數(shù)怎么辦阵面?
對于這種情況的處理轻局,可以直接將特征量的值N方帶入,比如:
到這里線性回歸模型已經(jīng)差不多了样刷。
為了提升梯度下降算法的性能仑扑,我們其實提前還需要對訓練集進行優(yōu)化,有個專業(yè)名詞叫特征縮放置鼻。
用(該特征量的值 - 該特征量集合的均值)/(該特征量集合中最大值 - 該特征量集合中最小值)來優(yōu)化訓練集镇饮,從而使梯度下降算法效率更高。
邏輯回歸模型
預測一個用戶是否點擊特定的商品
判斷用戶的性別
判斷用戶是否購買給定的類別商品
判斷一個腫瘤是惡性的還是良性的
…………
以上其實是邏輯回歸中簡單的二分類問題~下面是實現(xiàn)的具體算法沃疮。(以二分類舉例盒让,預測集只有0,1兩個取值)
線性回歸的結(jié)果輸出是一個連續(xù)值梅肤,而值的范圍是無法被限定的司蔬,那我們有沒有辦法將結(jié)果映射成(0,1)之間的概率值呢?于是我們找到了一個神奇的sigmoid函數(shù)姨蝴,詳見下面的假設(shè)函數(shù)h(X)俊啼。
新定義的代價函數(shù)J(Θ),如果y=1左医,h(x)越接近于1授帕,J(Θ)越小即代價越小同木,反之,h(x)越接近于0跛十,J(Θ)越大即代價越大彤路。如果y=0,芥映,h(x)越接近于1洲尊,J(Θ)越大即代價越大,反之奈偏,h(x)越接近于0坞嘀,J(Θ)越小即代價越小。(可以結(jié)合函數(shù)圖像來具體分析)
梯度下降算法不變惊来。
多分類問題以后再歸納總結(jié)~
從前只是覺得數(shù)學只有考上上才能派上用場丽涩,沒想到學好數(shù)學還能干這么多事情~后悔當初沒好好學數(shù)學呀。
下篇文章不出意外的話裁蚁,會出一篇python基本語法的文章矢渊,敬請期待~