第一章 聊天程序

第一章 聊天程序

王石,一個三流大學計算機專業的畢業生,畢業二年,一直在家待業,也不能算是待業,因為他還不時通過網絡接一些編程的零活乾乾,並且專門做了一些網游的外掛,給自己的網游帳號和代練的帳號掛機。總的說來,日子還過的去,所以王石倒也不怎麼想找工作。

今天起來已經是十點多了,洗漱一番后,王石巡查了一圈機房。機房在王石卧室的隔壁,總共有二十台新舊不一的電腦,有王石在學校里用過的P43.2的,以及在這兩年裏陸續買回來的雙核、四核的機器,還有NVIDIA的Tesla這樣的伺服器。這些機器都是王石在這兩年裏通過接零活以及網游代練賺來的錢陸續買回來的。今天還有兩台伺服器要到。所以下午王石還得到物流中心去提貨。

這些機器大部分都沒有顯示器,只有四台機器有,其中三隻為17寸,一隻為24寸。而所有機器都用千兆網聯結成一個局域網。為了所有機器的掛機的需要,王石還特意申請兩條四兆的寬帶,所以能勉強應付掛機的需要。特別是那兩台Tesla伺服器,為了防止斷電,更是配置了UPS。

為了弄這個機房,王石沒少受家裏人的埋厭。必竟要組成這麼個機房,不僅要大筆的錢,而且需要花費大量的精力去維護。每個月的電費也是一筆不小的費用。不過,由於這些錢都是王石自己出的,雖然家裏不高興王石的不務正業,但是也不來管他。

無緣無故弄這麼個機房幹嘛?原來,王石在這個機房裏運行着一個電腦AI,要說起這個人工智能程序,就得從王石還在學校的時候開始說起。

王石在大學裏學的是計算機,大家都知道,大學裏面學東西,一個靠自覺,一個靠學習的氣氛。一個三流大學裏面,學習的氣氛肯定不會好的,幸好王石還是比較自覺的,再加上一點天賦,學得還算不錯,特別是人工智能這一塊下過苦功,對於這一塊,基礎是相當紮實。在大三時候開始,就開始償試這方面的應用。

在經過長時間的實踐中,王石不僅基礎理論知識越來越紮實,而且也取得了不少成果。現在這些機器上運行的所有外掛都統一由那個智能核心控制。並且,王石還在不斷地給它增加新的功能。

這個智能核心一開始是由一小的聊天程序發展起來的。

一開始呢,由於學校里開了人工智能的課程,當然啦,由於是三流學校嘛,老師水平肯定是不怎麼行的,不過,不管怎麼樣,王石對這門課程是相當的有興趣,雖然老師水平不行,但擋不住王石的熱情呀!不僅把業餘時間搭進去了不算,還犧牲了不少的休息時間,終算力氣沒白費,由於相當的投入,到課程結束的時候,王石不僅對這一塊有了相當的了解,還決定用這其中的神經元原理編寫一個帶智能的聊天程序,一來能自娛自樂一下,二來也好能夠實踐操作,把這塊吃透。

大家可能知道,也可能不知道,根據一個簡化的統計,人腦中的神經元細胞大約在一百億個上下,而每個神經元細胞又與幾千個同樣的細胞連接在一起,從而組成了一個龐大的神經元網絡。這個龐大的網絡通過神經脈衝的驅動,不停的運作着,從而產生了人的思維活動。從理論上講,只要計算機能個模擬這個過程,那麼計算機也就會產生和人一樣的思維能力。當然實際上這是不可能的,由於這個網絡實在是太龐大了,按照現在的情況來看,基本上是沒有可能的。那單單需要的硬件就是一個天文數字般的存在。當然,王石不可能也不需要這麼做,必竟只不過做個聊天程序自娛一下。

王石對手上收集的包括自己以前編寫的關於神經元的原始碼都不太滿意,一個嘛,不太適用,二則,覺得這些代碼都不夠精簡,修改來修改去,思路都受影響,所以,決定重起爐灶,自己編一個,也好方便以後自己改進。

既然重起爐灶了,王石又重新研究了一下資料,在翻資料的時候,王石在想,書上都例子大多都是神經元的個數一定的,要是神經元的個數能夠按照需要進行增減,那麼會不會好一點呢!還有這個連接也是要能增加或減少,那可能會更加符合實際情況。這個情況也要考慮進去。

最後,王石決定把程序分為兩個部分,首先是核心部分,王石把神經元的工作模式編製了C語言代碼,作為核心使用,把神經元包括其連接結點和各種參數以數據庫的形式集成起來。這樣的話,不僅核心和數據分開,可以方便各自備份升級,也比較容易擴展。

在王石初始設置了二十多條符合神經元格式的,能被核心模塊識別執行的數據以後,再加了一個簡漏的外殼程序,就算是一個聊天程序了。

看看這個簡陋的程序,上面除了兩個文本框以外,還有兩個按鈕。一個按鈕上的字跡是表揚,另一個按鈕上的字跡是批評。這兩個按鈕是用來給神經元程序作訓練用的。

通過一定組數的訓練,程序會自動慢慢調整各個神經元的參數和連結節點。當然啦,由於王石的設計,程序還會慢慢增減神經元的個數,因為剛開始,神經元的數量比較少,所以基本上只會增加,增加到一定程度的時候,經常使用的神經元的權值會越來越大,可連結的節點會越來越多,不常用的或不用的神經元由於權值越來越小而被淘汰。這與人腦子中的腦細胞實際情況是一個模式,比如經常運動的肢體運動神經就發達,不活動的話,運動神經就會逐漸萎縮是一個道理。

王石在上面的文字框中輸入一個字或者詞,程序首先會查找數據庫中是否有這一詞條,程序經過神經網絡選擇后,在下面的那個文本框中輸出一字,然後,王石覺得回答還可以的話,就在表揚的按鈕上按一下,答案不合適的話,就在批評按鈕上按一下,這樣的話,程序就會根據反饋回來的信息調整每個神經元的參數。

只要經過一定數量的訓練,程序的回答會越來越接近王石想要的答案。當然啦,由於一開始王石設定的節點也比較少,這樣也導致了一開始程序顯得有點呆板,但是,也確實向著王石想像的那樣開始表現得越來越聰明。

由於王石在神經元裏面設置了一些相對基礎的概念,比如冷熱,長短,大小,快慢,亮暗,輕重等等一系列的概念,通過訓練,不斷增加豐富其他概念,比如面積體積,溫度,加減乘除等。大部分基礎概念都是王石輸進去的,而大部分的擴展概念是在訓練過程中,把各個概念關聯起來所得到的。並以神經元的模式儲存起來。

比如,訓練的時候,王石在輸入框中在輸入框中輸入“石頭”兩個字,程序首先會在王石設置的外掛語言庫中查找“石頭”這個詞條,當然,這個詞條有可能找到,也有可能找不到。找到的話,就把這個詞條的內容輸出,並把詞條解釋中的一些概念,與神經元裏面定義的概念相關聯起來。並在詞條使用程度這個數值上加上1,沒有的話,則程序會自動增加一條“石頭”這個詞條,然後由王石給它補充相關內容。

外掛語言庫很小,是王石從網上下載的一個免費詞典軟件裏面導出來的。所以,大多數詞條解釋都很簡單的。這也方便了王石補充。

為了保證這個程序更好的運作,王石給它添加了語句斷詞和語法分析的功能。為了保證這些功能的更好運行,特地為增加了主謂賓的概念和定狀補的概念。這些概念以神經元的形式定義在數據庫中。

在經過較長一的一段時間訓練后,王石覺得這個程序的表現相當有水平了后。就把它掛到了聊天程序上,有時候代替自己與人聊天。這可是王石相當得意的事情,因為在好長一段時間對,聊天對象都沒有發覺自己在跟一個程序在聊天。本來,王石也就是抱着試試看的心情,因為覺得這個程序AI若是只有自己給它訓練的話,不僅累的慌,而且成長速度也快不起來。只有讓它在網絡上學習,才能更快的成長。沒想到這個程序在除了一開始還需要自己給它控制外(表揚或批評),漸漸得變得更加聰明起來,到後來,基本上的回答都是合適合理的。王石到後來都看得目瞪口呆。雖然這個程序是自己編寫的,知道它的可成長性,但是也沒有料到會有這麼好的表現。本來王石打算把這個程序公開共享出來。現在王石已經改變主意,要把它給保護收藏起來。大文學

上一章書籍頁下一章

小農經濟時代

···
加入書架
上一章
首頁 軍事歷史 小農經濟時代
上一章下一章

第一章 聊天程序

%