欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
感知機的暴力實(shí)現

下面是機器學(xué)習的《監督式學(xué)習》課程的一篇試讀文章,進(jìn)行了一下重新排版,然后展示在這里。由于格式的限制,缺少了一些習題、可運行的代碼、證明、注釋等,可能會(huì )導致解釋差強人意,所以介意的同學(xué)可以直接訪(fǎng)問(wèn)感知機的暴力實(shí)現,以獲得最佳的閱讀體驗。

1 尋找合適的
 和 
 
簡(jiǎn)單來(lái)說(shuō),感知機就是要找到一條直線(xiàn)(或者說(shuō)超平面),將兩類(lèi)點(diǎn)分開(kāi)(下圖中的
 為橫坐標,
 為縱坐標):

我們知道,直線(xiàn)(或者超平面)的方程為(下面的

 ):

本文就來(lái)介紹感知機如何通過(guò)一種看似暴力的方法來(lái)尋找合適的 

  
 
,從而找到將兩類(lèi)點(diǎn)分開(kāi)的直線(xiàn)(或者超平面)。


2 前置結論
首先我們要知道一些前置的結論,下面一一來(lái)介紹。

2.1 點(diǎn)積的正負與夾角的大小

根據點(diǎn)積的知識,可以知道點(diǎn)積的正負與夾角的大小如下:

2.2 法向量

對于n維空間中的超平面
 
而言,總是其法向量,即:

比如二維空間中,

 是一條直線(xiàn), 
 
就垂直于該直線(xiàn):

同樣的道理,在三維空間中

 是一個(gè)平面, 
 
是該平面的法向量:

2.3 超平面的兩側

n維空間中的向量
 
與超平面 
 
的關(guān)系為:
  •  :在超平面的法向量 
     
    所指的一側

  •  :在超平面上 

  • 在超平面的法向量 
     
    所指的另外一側

比如二維空間中的直線(xiàn)

 周?chē)腥齻€(gè)向量:

根據上述結論可得:

  • 在直線(xiàn)的法向量 
     
    所指的一側

  • 在直線(xiàn)上

  • 在直線(xiàn)的法向量 
     
    所指的另外一側

三維空間也是一樣的,假設平面

 周?chē)袃蓚€(gè)向量:

根據上述結論可得:

  •  :在平面的法向量 
     
    所指的一側

  •  :在平面的法向量 
     
    所指的另外一側

3 對錯的判斷
了這么多前置,下面開(kāi)始介紹感知機的暴力實(shí)現。第一個(gè)問(wèn)題是,要能判斷找到的超平面  
  
的對錯。

3.1 隨便找的直線(xiàn)

下面是用來(lái)作例子的數據集,其中

 為某點(diǎn)的坐標,對應的
 
表示該點(diǎn)的類(lèi)別:

然后隨便(對,就是隨便,要不怎么叫暴力實(shí)現)找一條直線(xiàn) 

 ,看看能不能將這些點(diǎn)分開(kāi)(作圖時(shí), y=+1 表示該點(diǎn)為 ·, y=-1 表示概率為 
 
):

3.2 是否分對

下面來(lái)判斷該直線(xiàn)的對錯。我們希望標簽 y=+1的特征向量在直線(xiàn)

 法向量
 
所指的一側,而 y=-1 的特征向量在法向量 
 
所指的另一側。據此,上圖中分對的點(diǎn)為
 
、
 、
 、
,根據上面“超平面的兩側”的介紹,可知它們是有共同特征的:

同理,分錯的點(diǎn) 

 、 
 
也是有共同特征的(分錯邊或者分到了邊界線(xiàn)上都算錯):

3.3 小結

綜上,判斷

 對錯的標準就是:

  • 分對:

  • 分錯:

如果所有的 

 都分對了,那么就說(shuō)明
 
是正確的超平面。

4 錯誤的糾正
面看到 
 
、 
 
分錯了,所以超平面
 
是錯誤的,需要糾正。本節用兩個(gè)二維空間中例子來(lái)說(shuō)明糾錯的思路,當然這些推論也是適用于n維空間。

4.1 拉近

比如下面是標簽  y=+1 的 

,它被錯分到了直線(xiàn)
 的法向量
 
所指另一側,或者說(shuō)本來(lái)
 
 
的夾角
 
應該是銳角的,現在卻是鈍角:

那就想辦法將法向量拉近一些。根據向量加法的平行四邊形法則,可以看到

 就是和
 
夾角更小的向量:

所以用

 為法向量,直線(xiàn)方程被糾正為
,此時(shí)就可以正確分類(lèi)
 

4.2 推遠

而下面是標簽 y=-1 

 被錯分了,我們希望將法向量推遠一點(diǎn),同樣根據向量加法的平行四邊形法則,可以看到
 
就是和
 
夾角更大的向量:

所以用

 為法向量,直線(xiàn)方程被糾正為
 
,此時(shí)就可以正確分類(lèi)
 


4.3 小結

總結下,當標簽為

 的
 
被錯分時(shí),也就有

此時(shí),只需要令 

 ,就可以得到修正后的 
 

下面給一個(gè)例子來(lái)進(jìn)一步說(shuō)明該結論。

4.4 錯誤糾正的例子

  如下圖所示:

標簽為 y=-1 的向量

分錯了嗎?如果分錯又如何糾正?

  通過(guò)看圖,或者進(jìn)行計算(該直線(xiàn)的法向量為

),都可以發(fā)現分錯了:

應該將法向量 

 推遠一點(diǎn),修正后為:

修正后的直線(xiàn)為 

 ,從夾角來(lái)看,修正后的法向量 
 
更遠了:


5 找到?jīng)Q策邊界
好了,現在具備需要的知識了,讓我們來(lái)為 
 
、 
 
糾錯。按順序來(lái)吧。

5.1 

的糾錯

只需要

就可以得到新的超平面:

糾錯后,

 對了。

5.2 持續糾錯

可是,原本沒(méi)有錯的

 卻錯了,令
 
進(jìn)行糾錯;然后
 
又錯了,繼續:

5.3 找到?jīng)Q策邊界

還有錯,還得繼續:

最后,法向量為

 的直線(xiàn)
 
將所有的點(diǎn)正確分開(kāi),這就是感知機的暴力實(shí)現所要尋找的決策邊界。


6 算法規范化
才介紹的算法一開(kāi)始隨機找了個(gè)超平面,實(shí)在太暴力了,下面來(lái)規范一下:

        (1)令權重向量 

 
 
都為0:

所以初始函數為:

        (2)順序遍歷數據集,從中得到 

。

        (3)如果分錯了,即

則進(jìn)行更正(因為剛開(kāi)始 

 ,不更正的話(huà),超平面的截距就一直是0,導致的后果是有可能不能將數據分開(kāi)):

        (4)轉至(2),直到找到合適的 

  
 
,使得
 
對于所有的  
 
都滿(mǎn)足:

此時(shí)可以說(shuō),該超平面 

 將數據分為了兩類(lèi)。該規范做法的正確性在下一節課中會(huì )進(jìn)行證明。

6.1 實(shí)現

語(yǔ)言描述的算法可能有歧義,下面是按照上面步驟實(shí)現的代碼,可以幫助同學(xué)們精確理解感知機的暴力實(shí)現:

import numpy as npimport matplotlib.pyplot as pltfrom sklearn.linear_model import Perceptronfrom matplotlib.colors import ListedColormap
# 初始化 w 和 b,np.array 相當于定義向量w, b = np.array([0, 0]), 0
# 定義 d(x) 函數def d(x): return np.dot(w,x)+b # np.dot 是向量的點(diǎn)積
# 歷史信用卡發(fā)行數據# 這里的數據集不能隨便修改,否則下面的暴力實(shí)現可能停不下來(lái)X = np.array([[5,2], [3,2], [2,7], [1,4], [6,1], [4,5]])y = np.array([-1, -1, 1, 1, -1, 1])
# 感知機的暴力實(shí)現is_modified = True # 記錄是否有分錯的點(diǎn)while is_modified: # 循環(huán),直到?jīng)]有分錯的點(diǎn) is_modified = False
# 順序遍及數據集 X for xi, yi in zip(X, y): # 如果有分錯的 if yi*d(xi) <= 0: # 更新法向量 w 和 b w, b = w + yi*xi, b + yi is_modified = True break
# 下面是繪制的代碼,主要展示暴力實(shí)現的結果,看不懂也沒(méi)有關(guān)系def make_meshgrid(x, y, h=.02): '''Create a mesh of points to plot in
Parameters ---------- x: data to base x-axis meshgrid on y: data to base y-axis meshgrid on h: stepsize for meshgrid, optional
Returns ------- xx, yy : ndarray ''' x_min, x_max = x.min() - 1, x.max() + 1 y_min, y_max = y.min() - 1, y.max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) return xx, yy
def plot_contours(ax, clf, xx, yy, **params): '''Plot the decision boundaries for a classifier.
Parameters ---------- ax: matplotlib axes object clf: a classifier xx: meshgrid ndarray yy: meshgrid ndarray params: dictionary of params to pass to contourf, optional ''' Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) out = ax.contourf(xx, yy, Z, **params) return out
# 訓練 skrlearn 中的感知機,這里是為了借用該感知機的接口,便于繪制決策區域clf = Perceptron().fit(X, y)# 根據上面暴力實(shí)現得到的 w 和 b 來(lái)修改感知機clf.coef_[0][0], clf.coef_[0][1], clf.intercept_[0] = w[0], w[1], b
# 設置字體大小plt.rcParams.update({'font.size': 14})# 設置畫(huà)布和坐標系fig, ax = plt.subplots(figsize = (6, 3), nrows=1, ncols=1)fig.subplots_adjust(left=0.25, right=0.75, top=0.999, bottom=0.001)ax.set_xticks(()),ax.set_yticks(())
cm = ListedColormap(('blue', 'red'))markers = ('x', 'o')
# 決定繪制區域的大小X0, X1 = X[:, 0], X[:, 1]xx, yy = make_meshgrid(X0, X1)ax.set_xlim(xx.min(), xx.max())ax.set_ylim(yy.min(), yy.max())
# 繪制決策區域plot_contours(ax, clf, xx, yy, cmap=cm, alpha=0.4)
# 繪制決策直線(xiàn)lx = np.linspace(xx.min(), xx.max())ly = - w[0] / w[1] * lx - b / w[1]ax.plot(lx, ly, 'k-')
# 根據類(lèi)別不同,繪制不同形狀的點(diǎn)vmin, vmax = min(y), max(y)for cl, m in zip(np.unique(y), markers): ax.scatter(x=X0[y==cl], y=X1[y==cl], c=y[y==cl], alpha=1, vmin = vmin, vmax = vmax, cmap=cm, edgecolors='k', marker = m)
plt.show()

我們通過(guò)通俗易懂、圖形化的方式,對機器學(xué)習中的《監督式學(xué)習》進(jìn)行了精講,目前還在連載中,可以享受早鳥(niǎo)價(jià)格,可以點(diǎn)擊下面的鏈接購買(mǎi):

?? 也可以點(diǎn)個(gè)買(mǎi)機器學(xué)習的前置課程,《線(xiàn)性代數》、《單變量微積分》、《多變量微積分》、《概率論與數理統計》

 學(xué)

學(xué)學(xué)

學(xué)學(xué)


ID matongxue314

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
使用支持向量機SVM進(jìn)行分類(lèi)
ML之SVM:基于sklearn的svm算法實(shí)現對支持向量的數據進(jìn)行標注
「周末AI課堂」非參模型初步(代碼篇)機器學(xué)習你會(huì )遇到的“坑”
直線(xiàn)、曲線(xiàn)、平面、曲面的相交問(wèn)題
Matlab中插值函數匯總和使用說(shuō)明
KNN算法的python實(shí)現--基于scikit_learn
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久