999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

從串糖葫蘆游戲到線性回歸

2019-06-25 01:50:46陳凱
中國信息技術教育 2019年11期
關鍵詞:游戲

陳凱

用梯度下降的方法來實現線性回歸,是一種很經典的機器學習算法。然而,在基礎教育階段,由于受學生自身數學水平和信息技術水平的限制,他們對這種算法的基本原理以及實現回歸過程的程序代碼的學習和理解,難度還是比較大的。筆者曾經瀏覽過不少線性回歸方面的資料,發現學習路徑頗為陡峭。本篇文章試著從一個小游戲入手,一邊玩一邊想,逐層鋪墊,緩慢進階,希望能讓學習者避免迷失在諸多概念名詞和繁雜程序代碼之中,真正體驗到線性回歸算法的精髓。

● 冰糖葫蘆手工串

先來看游戲的玩法。有幾個糖葫蘆散落在桌面上,要求不改變糖葫蘆的位置,用一根竹簽將它們串起來,游戲一開始,竹簽只是平放在桌面邊緣,并沒有串起任何一個糖葫蘆,如圖1所示。

所謂的桌面,實際上是一個坐標軸,X軸和Y軸的范圍都是0到10;所謂的糖葫蘆,是四個面積比較大的點。實現串糖葫蘆游戲的Python代碼非常簡單,如圖2所示。

坐標軸上的這四個點的markersize參數是40,所以看上去就相當大,可以想見,這個參數越大,糖葫蘆也越大,游戲也越簡單。糖葫蘆所在的坐標直接寫在了plot函數的參數里,為代碼簡單清晰起見,這里并沒有引入隨機數。

所謂的竹簽,是通過y=t1+t2*x這個一元一次方程產生的直線,其中t1是方程的常數,t2是一次項系數。如果輸入t1為0.9,輸入t2為0.6,那么竹簽就串到了兩個糖葫蘆,如上頁圖3所示。

試過幾次就可以發現,t1和t2兩個數字的作用大不相同:前者決定了竹簽的位置,“靠上還是靠下”與“靠左還是靠右”其實是一回事;后者決定了竹簽的傾斜度。如果想讓竹簽往上擺一些,則t1要增加;如果想讓竹簽擺得平一些,則t2要減少。不妨再試一下,輸入t1為3,輸入t2為0.2,竹簽成功地串起了三個糖葫蘆,如上頁圖4所示。

多次嘗試之后,就能體會到t1和t2兩個數字的變化與最終直線形態之間的微妙關系。

● 竹簽離得有多遠

剛才是用人腦來判斷竹簽的位置t1和傾角t2,那么,怎么讓機器判斷位置和傾角呢?方法就是“看了再試,試了再看”。

例如,一開始,竹簽是平躺著的,竹簽到每個點的縱向的距離(為簡單起見,這里暫不考慮橫向的距離)是可以計算出來的,如圖5所示,其中左圖顯然離開理想結果還很遙遠,右圖已經比較接近目標了。

為了能夠計算出竹簽到糖葫蘆的距離,以評估竹簽與理想目標之間的差距,可以將代碼稍微修改一下。由于糖葫蘆可能在竹簽上面,也可能在竹簽下面,在計算距離時,數值可能是正,也可能是負,所以縱向距離統一進行二次方的運算(其實取絕對值也是一樣的)。又因為總共有四個糖葫蘆,所以要除以4,得到一個縱向距離的平均數。修改后的程序代碼如圖6所示。

e = (e1+e2+e3+e4)/4/2這段代碼,就是將糖葫蘆中心點和竹簽的縱向距離的平均值賦值給變量e,其中唯一難理解的是,為什么除以4取得平均值后又要除以2,其實這是為了讓后續的求導公式更加便捷,若是學習者學習過隱藏在線性回歸算法之后的數學原理,那么就能更清楚地知道這里為何要除以2。實際上,因為變量e的值只是用于在運算過程中指示竹簽位置和傾角離開理想值的差距,所以是否除以2,其實是無所謂的。假如說任務是要讓竹簽盡可能靠近糖葫蘆的中心,那么就需要觀察e值是否能收斂于某個值,然而,本文任務只要求把糖葫蘆串起來即可,因此后續的程序代碼中并不需要用到e變量。

上述代碼中,t1和t2的初始值都是0,運行后,發現得到的e的值是9.15227,這個數字顯然太大了,計算結果和人眼的直觀感受是符合的,所以需要改變t1和t2的值使得竹簽距離糖葫蘆更近一些。

● 竹簽需要重新擺

為了讓竹簽有可能串起更多糖葫蘆,就要重新調整竹簽的位置和傾角,其實就是更改t1和t2的值。但計算機怎么知道應該如何調整呢?

首先來看竹簽的位置,竹簽究竟是往上放還是往下放?應該需要調整多少距離?想象一下,如果大部分糖葫蘆都在竹簽上方,那么就要往上挪,反之就是往下挪,離開越遠,挪的距離就越多,程序中涉及的公式如上頁圖7所示。

這個公式是用微積分的方法推演出來的,然而就算是直觀上也是可以理解的,當竹簽平躺著的時候,得到的d1的值是4.18,這表示竹簽要往上方移動4.18個單位,如果d1的數值是負數,則表示要將竹簽往下方移動。

傾角的調整要復雜一些,因為這和每個糖葫蘆的橫向位置有關,涉及的公式如上頁圖8所示。

這同樣是用微積分求導的方法推演出來的,如果不想深入了解相關數學推導過程,那只需要驗證公式的合理性就可以了。當竹簽平躺著的時候,得到的值是23.65975。如果是正數,表示要把竹簽傾角增大,如果是負數,則表示將傾角變小。不過即便是直觀看圖9,也是能感受到公式的意義的,因為離開坐標軸原點越遠,點的坐標值本身的權重也就越大。

然而,按公式計算后,d1和d2這兩個數值都太大了,實際操作時矯枉過正,于是還要對這兩個值再乘上步長系數0.05,此數可大可小,要根據實際運行情況來調整。系數太小,則需要很多次調整才能達成目標;系數太大,則會在理想結果周圍來回跳躍。

最后,將d1和d2的修正值疊加到原先的t1和t2值上,將循環次數增加到200次,每一次循環中,做的都是同樣的事:用當前的t1和t2計算出直線擺放姿態,然后將運行效果比對預期效果后得到調整值d1和d2,再用d1和d2修正t1和t2值,這種方法稱為迭代法。圖10、圖11是完整的代碼和運行結果。

這個例子本身形象直觀,而代碼也比較簡單,若去掉繪圖相關的代碼,核心代碼僅有十多行,其中隱藏了超出學生當前水平的知識點,尤其是數學微積分和線性代數有關的知識技能,但同時又留下了繼續深入學習的路徑指引,為學習者提供了真切的機器學習算法的實踐體驗。

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 99精品热视频这里只有精品7| 在线无码九区| 国产好痛疼轻点好爽的视频| 亚洲无码熟妇人妻AV在线| 亚洲无线视频| 免费不卡在线观看av| 她的性爱视频| 91久久夜色精品国产网站| av在线手机播放| 久久国语对白| 国产毛片久久国产| 老司机aⅴ在线精品导航| 香蕉伊思人视频| 亚洲日本中文字幕乱码中文| 美女毛片在线| 伊人中文网| 风韵丰满熟妇啪啪区老熟熟女| 精品成人一区二区| 毛片视频网| 午夜免费小视频| 国产亚洲精品无码专| 在线观看精品国产入口| 97久久免费视频| 欧美日韩v| 国产xxxxx免费视频| 中文字幕永久视频| 亚洲综合18p| 精品人妻AV区| 40岁成熟女人牲交片免费| 中文字幕无码中文字幕有码在线| 亚洲男人的天堂视频| 国产精品女熟高潮视频| 伊人久久精品无码麻豆精品| 精品无码专区亚洲| 一本久道久综合久久鬼色| 国产一二三区视频| 韩国自拍偷自拍亚洲精品| 国产精品一区不卡| 无码国内精品人妻少妇蜜桃视频| 久久大香香蕉国产免费网站| 国产三级国产精品国产普男人| 国产导航在线| 日韩毛片免费视频| 日韩福利在线观看| 免费一级毛片| 欧美国产综合视频| 日本一本在线视频| 国产精品所毛片视频| 18禁色诱爆乳网站| 亚洲成人福利网站| 国产精品黄色片| 香蕉色综合| 欧美在线黄| 国产91精品久久| 成人在线综合| 国模视频一区二区| 日韩av无码精品专区| 波多野结衣一区二区三区四区| 国产欧美又粗又猛又爽老| 老色鬼久久亚洲AV综合| 成人综合网址| 日本一区二区三区精品国产| 亚洲第一国产综合| 不卡无码h在线观看| 天天综合色天天综合网| 亚洲成aⅴ人在线观看| 色综合a怡红院怡红院首页| 亚洲第一av网站| 久久精品中文无码资源站| 中文字幕无线码一区| 欧美在线综合视频| 青草91视频免费观看| 一本大道东京热无码av| 高清精品美女在线播放| 波多野结衣中文字幕一区二区| 久久精品视频一| 亚洲a免费| 亚洲国产综合自在线另类| 亚洲精品麻豆| 亚洲开心婷婷中文字幕| 综合色亚洲| www.99精品视频在线播放|