第二天一早。
江寒起牀後,來到窗前一看,入目都是晶瑩的純白。
昨晚竟然下了一場不小的雪,大地、房屋、樹木全都銀裝素裹。
三個女孩子正在院子裡堆雪人,雖然都穿着厚厚的冬衣,但不用怎麼細看,就能區分出誰是誰。
高挑婀娜的是夏雨菲,嬌小玲瓏的是蘇婉瑩,格外瘦削的那個,自然就是小魚兒了。
三個女生玩得十分歡快,嬉笑吵鬧間,給冷清的雪景增添了一抹春色。
江寒迅速穿戴整齊,出門,路過方源門外時,隨手敲了敲門。
不多時,方源打開了房門:“老闆早。”
“早啊。”
江寒看了眼方源,這小子穿着得十分整齊,想來早就起來工作了。
“什麼事?”方源問。
江寒爽朗一笑:“出去一起玩玩雪?”
方源搖了搖頭,興趣缺缺地拒絕了。
什麼堆雪人、打雪仗,在他看來,遠不如在家自己敲鍵盤好玩。
江寒只好揮了揮手:“那我自己去了。”
隨後獨自下樓,來到院子裡。
看到他出現,三個女生紛紛出聲招呼。
“呦,大家早!”江寒笑得燦爛。
隨後彎下腰去,捧起一團雪,攥成了一個不太實誠的小雪球,“咻”的一下,扔到了夏雨菲胸口上。
雪球“噗”的爆成一團冷霧,其中一部分,鑽到了她的領子裡,搞得她一陣顫慄。
夏雨菲呆了一呆,大叫了一聲:“臭流氓!”
隨後舀起一大捧雪,悍然反擊。
蘇婉瑩和小魚兒對望了一眼,紛紛加入戰團。
江寒雙拳難敵六手,不一會兒已經全身是雪。
四個人正玩得樂呵,大門外忽然響起汽車鳴笛聲。
江寒和蘇婉瑩等一起回頭望去,卻見靳雪雯推開車門,跳了下來。
小丫頭今天穿着火紅的羽絨服,看起來胖乎乎的,十分好笑。
她下車之後,先從後備箱裡拿出東西,然後蹦蹦跳跳地進了院子。
“雨菲姐姐、婉瑩姐姐,小魚兒,大家早!還有江寒哥哥……”
小丫頭一進門,就笑嘻嘻地挨個打招呼。
“來來來,一起玩!”蘇婉瑩發出邀請。
“好啊!”靳雪雯躍躍欲試。
江寒走過去,將她手中拎着的東西接了過來。
這是一大堆嶄新的戰車機器人,與“戰神一號”一個系列。
江寒先將這些東西,都送回了自己的房間,隨後再次出來,和大家一起玩雪。
半個多小時後,大家都玩累了,於是回屋洗漱一番,然後一起去餐廳吃早餐。
靳雪雯來蘇家之前已經吃過了,於是沒動筷子,只喝了半杯牛奶,陪大家說笑。
吃完飯,江寒將衆人帶到自己房間,大家圍坐在一起,開了一個小會。
主要是安排一下參加CARC的事宜。
按照比賽的程序,現在就該將隊伍確定下來,然後儘快呈報上去。
一個隊伍最多五名隊員,目前確定參加的一共四人:江寒、靳雪雯、方源、小魚兒。
還剩下一個名額,江寒讓靳雪雯決定。
靳雪雯本打算邀請蘇婉瑩,但蘇婉瑩大搖其頭:“我什麼也不懂,就不跟着當混子了。”
於是靳雪雯又將皮球踢給了江寒。
江寒詢問夏雨菲:“你有沒有興趣跟着玩玩?”
夏雨菲想了想,說:“我和瑩瑩差不多,對機器人也基本上一竅不通,還是你們四個上吧,我和瑩瑩給你們做後勤。”
江寒和靳雪雯對視了一眼,一齊攤手。
這樣“新寒江雪”戰隊便只有四名隊員了。
接下來,江寒和方源開始研究AI算法。
能採用的算法很多,但要考慮到算法的強度,以及機器人本身的計算能力。
好在時間還算充裕,可以慢慢嘗試。
江寒打算試一試機器學習中的“強化學習”。
這是一種非常獨特的算法,可以讓機器人“自學成才”,無需編寫複雜的邏輯。
方源對此表示期待和喜聞樂見,但也有一些擔憂。
關鍵問題是,在比賽之前,沒法拿到場地的準確數據。
這樣一來,事先訓練好的機器人,也不知道到了賽場上,會不會適應不良?
江寒灑然一笑:“所以咱們要做兩手準備。”
“哦?”方源眼神亮了起來。
江寒的想法很簡單。
他和方源分別打造一套AI算法。
江寒嘗試“強化學習”路線,方源則按照傳統方式編程。
比賽之前,隊伍內部先來次PK,誰的AI戰鬥力強,就派誰上場。
“這個辦法好。”方源馬上表示贊同。
接下來,兩人就分頭行動,各行其是。
另一邊,靳雪雯等女孩子,將幾個戰車機器人的包裝,全都拆了開來。
“哇,好漂亮!”小魚兒驚歎了一聲,隨後拿起一臺戰車機器人,愛不釋手地擺弄着。
“花了不少錢吧?”小魚兒問。
靳雪雯嘻嘻一笑:“一共8萬多,險些花光我的壓歲錢。”
小魚兒:“……”
意思是還沒花光唄?
這天開始,靳雪雯每天都來蘇家。
大家聚在一起玩玩鬧鬧、其樂融融,順便訓練、訓練機器人,不亦樂乎?
江寒讓靳雪雯又買了五臺機器人,和方源每人選擇五臺,分頭訓練。
兩人的程序很快都編好了。
由於方源採用了傳統算法,程序調試完成後,直接燒錄到機器人的ROM中,就可以運行了。
而江寒這邊的“強化學習”,實現起來就沒那麼簡單了。
程序本身就很不好弄,訓練起來更加麻煩,需要相當多的時間。
“強化學習”在這個世界早就出現了,其中最重要的概念,就是智能體(Agent)。
在這個案例中,一臺戰車機器人,就是一個智能體。
訓練的過程中,智能體可以得到所處環境的狀態信息,並採取試探行動。
當環境對某個動作給與了正向反饋時,智能體將來就會更加傾向於這種舉動。
反之,如果得到的是負面反饋,那麼就減弱這種傾向。
這樣,智能體就能在不斷地試錯中,一點一點地優化行動策略……
例如著名的Q-learning算法,江寒之前就有過一些研究。
在Q-learning中,用一個表格來保存狀態和動作的Q值,稱爲Q-Table。
通過修改Q-Table的值,就能生成一個指引智能體行動的“綱領”。
然而,這種辦法雖然簡單、直觀,易於實現,但也有着致命的缺陷,那就是隻適合狀態和動作空間是離散的,而且維數不太高的情況。
當狀態和動作空間是連續的,或者維度很高時,再用Q-Table來表達,就有點力不從心了。
爲了解決這個問題,江寒很自然地想到了DQN算法。
所謂DQN,全稱是Deep Q Network,實際上就是將深度學習和強化學習結合到一起的產物。
DQN的原理相當簡單,只要將Q-Table換成人工神經網絡就行,但如果想取得理想的效果,那就得講究一點細節了。
首先要克服的,就是噪聲、延遲和不穩定等問題。
江寒在虛擬空間裡忙碌了三百多個小時,才終於弄出了一個比較完善的DQN算法。
接下來,就是漫長的訓練過程。
好在這種算法最大的優點,就是不怎麼需要人工干預,只要給“智能體”適當的環境,它就能自主學習、慢慢進步。
蘇婉瑩特地將閣樓清理出來,給大家做訓練場地。
江寒讓方源的五臺機器人,給自己麾下的戰車做陪練。
一開始,江寒的機器人看起來笨頭笨腦的,和無頭蒼蠅差不多。
別說作戰了,連路都跑不明白,經常卡在莫名其妙的地方,原地轉圈圈。
看到這種情況,大家不免心裡有點沒底。
靳雪雯藏不住事兒:“江寒哥哥,這種辦法真的行嗎?”
蘇婉瑩直接吐槽:“江寒,你這幾臺戰車,看起來不怎麼聰明呀?”
夏雨菲也有點擔憂,問江寒:“它們好像一直在亂轉,這都半個下午了,是不是哪裡出問題了?”
江寒淡淡一笑:“現在下結論還太早了點,過兩天再看效果吧。”
這些戰車機器人都是標準套裝,性能還算不錯,續航就比較馬虎了。
通常能連續運作三個小時,就差不多到極限了。
爲了解決這個問題,江寒不得不設計了一個磁吸式充電接口,讓這些機器人電量消耗得差不多時,自己滾去充電……
江寒的五臺戰車機器人,每天都在緩慢地進步着。
從一開始什麼也不懂,慢慢學會了走路、射擊、躲閃……
三天後,訓練效果漸漸體現了出來,至少與方源PK時,不再一面倒的被屠殺。
雖然處於下風的時候多,佔據優勢的時候少,取得勝利的次數,更是約等於0。
但這種其妙的現象,仍然引得蘇婉瑩、夏雨菲等人嘖嘖稱奇。
她們之前的確沒想到,這些“死”的機械,居然也能在實戰中,不停地成長!
漸漸的,江寒的機器人學會了簡單的戰術配合,這樣一來,再和方源PK,勝率就提高了不少。
又過了兩天,方源的機器人,就徹底不是對手了。
沒辦法,方源的程序,是傳統的邏輯推理型AI,成長性約等於沒有,寫成什麼樣,就是什麼樣。
而江寒這邊,卻是一個擁有學習能力的AI,只要有充足的時間,就可以愈練愈強!
這天,江寒和方源又進行了一場友誼賽。
開戰不到3分鐘,江寒這邊就摧枯拉朽一般,將方源的隊伍虐了個體無完膚。
“不玩了,不玩了。”方源用力搖頭。
“老闆,你的機器人進步太快了,我估計,等到下週比賽時,差不多能和遙控戰車一較高下了。”
江寒卻笑着搖了搖頭:“只怕還不夠。”
“你是說時間嗎?”方源問。
江寒解釋說:“不僅僅是時間的問題,我這個算法的上限,取決於陪練的戰鬥力,現在這種情況,只怕後面很難有大的進步了。”
方源若有所思,忽然問:“老闆,就憑你這幾臺機器人的強度,差不多也夠用了吧?”
他對自己的編程能力,還是相當自信的,正式比賽中的對手,不可能個頂個都比自己強……
江寒搖了搖頭,平靜的說:“其他隊伍的情況,目前還不清楚,我們拿冠軍的可能性,不能說沒有,但還不夠大。”
方源默默點頭,忽然說:“可惜我的能力有限,弄不出戰鬥力更強的機器人,否則就能給你做陪練了……”
江寒心中一動,忽然想到了一個辦法。
不如在方源的這幾臺機器人裡,也寫入訓練好的DQN網絡?
然後,讓兩個DQN網絡對戰,你成長一點,我成長一點……
江寒越想越覺得可行。