Computing Life

 

大三一個學期又過去了,意味着我進入計算機專業兩年多過去了,我的大學生活也過去大半了。回顧自己筆下的文字都很少提及自己專業部分的東西,雖然自己總在做東西,但是由於各種原因沒記錄下有關自己專業的種種想法以及思考。從大一剛過來,把接觸電腦當做登QQ弄自己的文章舞文弄墨的自己,到之後擁有自己第一臺電腦,那一個個呆呆的做在電腦旁僅僅因爲一個分號,一個小錯誤,編譯通不過有些惶恐的大一生活。那時候,連讓電腦做做出一個小小的算術題都能給自己一天的好心情,這是那時候計算機帶給我的,但是,說句實話自己的C語言學得確實不好,直到之後的C++讓我找到了變成最原始的快樂,還有第一次編程給別人紀念禮物,雖然現在想起來很簡單,但是從那個時候開始,我就覺得計算機能給這個世界帶來神奇甚至是深入骨髓的改變,也是從那個時候,心中有關計算機帶給人們震撼的一個世界,一個屬於計算機的世界。到之後的寒假,一個人在家折磨自己電腦的時光,那時候每天開機都可能出現各種情況,比如引導程序丟失,磁盤分區信息丟失等等之內的,有時候一個問題就夠我倒騰一天,但是這也讓我更加的瞭解電腦,更確切的說是操作系統這塊。

到了大二,編程的事情減少了,我依舊會喜歡自己弄點新意的東西,只因爲找些樂趣在這裏面,這期間有嘗試編解決小遊戲的計算方法,雖然以失敗告終,但是,路途中的思考是我最大的收穫,還有上學期爲了支持朋友舉辦的活動,自己寫的第一個小遊戲,是我初中最愛玩的猜數字的小遊戲,還有就是爲了進行問卷調查而編程寫的一個問卷調查的小程序,雖然重用性不高,但是,那一個個思考的夜晚,一點點解決問題,和朋友討論問題,最後合作解決問題,最後做出電子版問卷和配套的統計數據的時光,是我大學不可或缺的記憶。

在暑假有看過一個電影,異次元駭客,說的是片中男主角做出了一套系統,一個完全虛擬的世界,其中所有的人都是大量的代碼,那個純虛擬的世界讓我憧憬,覺得那就是計算機能帶給人們的最震撼的,最絢麗的東西吧。

但是電影只是電影,這種東西暫時還沒有出現在現實的世界裏,但我相信這一刻不會需要我們等待很遠。我想將其稱爲Computing Life。這個世界所有一切都是虛擬的,我想,對於房屋建築之類的,做出來已經沒有什麼困難了,很多軟件都能做出逼真的立體建築界面。但是對於活體生物來說,他們的行爲運動等等方面是很難自動模擬的,這是我們需要努力的。衆所周知,計算機處理的信息是離散的,更爲具體的講就是01的組合,所以,很多人迷戀的遊戲,你們就是與01爲伍,從C之類的編程語言來講,對於那些精彩的東西,只不過是對數據的比對,數據的處理過程,最簡單的概括是對於類似ifswitch,的判斷語句和 while以及 for之類的循環語句作鬥爭了。稍稍的扯遠了一些,計算機處理的離散數據,就是無法進行連續的數據的處理。但是,在信號與系統的研究中,給出了連續到離散的轉換,我們可以將時間等等連續的內容,根據一定的方式分割成很小的段,進行處理。就時間而言,我們可以隔一小段時間,對需要處理的數據進行一次描述或者取樣,那麼就將連續域上的數據,變成了計算機可以處理的離散域的數據。如果能夠做到將間隔的時間取得很小,那麼這樣出來的數據,以極限的觀點看,就是連續的數據了。

就生物模擬而言,因爲人的模擬最爲複雜,人的模擬最爲典型,就以人爲例吧。乍一看,01模擬人貌似很容易,性別就0爲男,1爲女就行了。但是慢着,接下來的模擬就不是那麼順利了,我們再來看看如何模擬現在的女性的男性化風,和男性的女性化風呢?這還不是最重要的,因爲顯然,增加表示性別類型的位數,就足以能夠解決這個問題,比如將00認爲純爺們,01認爲有女性化的男性等等之類的。但是,接下來的模擬更爲的困難了,模擬人的性格,斯普蘭格根據人們不同的價值觀,把人的性格分爲;理論型、經濟型、權力型、社會型、審美型、宗教型。海倫。帕瑪根據人們不同的核心價值觀和注意力焦點及行爲習慣的不同,把人的性格分爲九種。稱爲九型性格,包括:1號完美型、2號助人型、3號成就型、4號藝術型、5號理智型、6疑惑型、7號活躍型、8號領袖型、9號和平型。還有各種對於性格的研究,這些研究影響着我們模擬人們的性格,畢竟如果存在性格分類不徹底,那麼會出現重疊,但是不是完全重疊而是部分重疊,那麼對於模擬就麻煩了,所以還是像時間一樣,分得越細越好。對於分到最後不可分了,我們就可以直接對號入座,有這種性格部分的就該位爲1,沒有就是0。這裏可以看到對人行爲影響的基礎,如性格、人格潛意識的模擬,需要心理學以及有關學科的進一步研究突破,且更爲細緻的研究。

除了心理方面的模擬,最令人神往的恐怕就是對於人類記憶的模仿了。電影記憶碎片中說到,我們都需要記憶去知道自己是誰,確實沒有記憶,那麼模擬出來的男性、女性,各種性格都無法體現,其實我們的記憶有點像計算機的存儲系統,我們有深藏的記憶,不會丟失,就像計算機的硬盤上存儲的數據,如果你不瞎折騰自己的硬盤,一般硬盤能用很久,但是用久了,讀數據的速度就會下降,這就像我們過了很久去回憶一個事情,要花上比記起昨天早上喫的什麼早餐的時間還要長的時間去回憶,儘管有時候回憶起來後,會覺得那些事情就好像發生在昨天在剛纔。而靠近現在的記憶,比如記起剛過去的事情總是很容易,這就像我們電腦裏的內存,在打開的文檔裏面調出自己想要的東西總是比找到文檔然後打開查找要快。其實我們的記憶就可以模擬成分級的存儲系統,用一個鏈表去模擬記憶,不斷在鏈表頭部添加新的信息,而鏈表都是裏面的內容都是指針指向該段記憶的地址,而第一級的記憶放在閃存中,然後是硬盤,也就是說,如果某一級系統滿了,新的記憶要加進來,那麼工程就大了,需要刪除這個系統最末尾的記憶內容,或者是下移到第一級別的存儲中,這樣的話,如果只是知道記憶鏈表首地址是不夠的,因爲只是有首地址,那麼下移需要從鏈表的第一個結點,找到這個表的最後一個結點,所以這個工作我們一開始就要做,一開始就要保存最後一個的位置。除了這個小問題之外,還有一個大問題,就是下移記憶的問題,如果下一級的記憶還沒有存滿的話,這個很好辦,把下移的記憶拷貝到下一級的存儲介質中就行了,那如果下一級滿了的話呢?那麼下一級首先需要再次下移記憶內容或者刪除,刪除很好辦,但是再次下移就麻煩了,假設我們的記憶模擬系統做出來有十級,第一級滿了,但是要加入新的記憶,而這個時候不僅僅是第一級滿了,而是整個十級都滿了,那麼我們就要從第一級開始發現,一直到第十級,然後開始進行第十級的記憶塊刪除,刪除總是很容易做到的,但是下移就麻煩來了,首先,添加的過程是整個十級記憶系統處理的過程,每下降一級其數據查找處理的能力在之前就說過,是呈下降的,這時候想象我們要下移第九級記憶系統中的某一個記憶模塊,而這個模塊又很大,那麼要花費大量時間下移,這並不是最重要的,最重要是,在對記憶系統處理的過程中,是無法讀取記憶的。那這樣,變成了一個人記憶了一個新的東西,結果整個人卡死在那長達十幾分鍾,僅僅是爲了處理自己龐大的記憶。這樣顯然是不行的,所以每一個級別的記憶系統與下一級記憶系統之間應該增加一個緩衝區,用於做下移這個龐大的工作,這樣,只有在第一級記憶進行處理的時候,無法讀取第一級記憶,而且這樣的時間顯然是很短的。現在再看看這個記憶,之前就有說過,我們需要記憶去知道我們自己是誰,所以應該存在一些記憶是總能直接可以接觸的,它讓我們明白我們自己,比如我們的性別,價值觀等等之類的東西。而具體還有哪些東西是我們一定要記住的,我想就不是計算機專家需要確定的問題了,而是需要哲學家給出答案的問題了。這裏想強調的是需要有些記憶是不能刪除的,存在永久性的記憶,這也是我們的生活經驗。但是這個處理起來很簡單了,只是增加一些開銷,增加一個是否爲永久性記憶的標誌。這樣做同時會帶來新的問題,如果這些記憶散佈在各級記憶中,那麼找到鏈表尾部卻發現無法對其刪除,但是由於不能刪除的記憶一般來說量不是很大,所以可以做成專門的系統,查找記憶的時候,在分級記憶和非刪除記憶塊中同時查找。最後是記憶更新的問題,我們總是重複一些記憶的話,那麼我們對那些記憶的可接觸性肯定比別的高,比如你經常編程序,那麼對於編程的規則之類的記憶那麼就會很清晰,怎麼模擬這種清晰呢,就是更新記憶了,每一次查找一個新的記憶需要更新該記憶的位置,至於是前移一個位置呢,還是上移一個系統呢,這就需要更加細化規則,細化情況了。題外話是,這也說明,你經常接觸的東西,表現着你自己的內在的東西。

這就是暫時我自己對於一個全模擬系統的一些遐想,希望真的有一天能實現我的Computing Life,那將是一個全新的世界,我還是堅信,計算機是劃時代的發明,它也終將給我們最絢爛的最震撼的生活。

 

 

 

computing life相遇問題

在純虛擬世界裏,每個人的存在都是代碼的存在,所以在生活中看似很簡單的事情,在計算機中模擬起來也極爲的困難。首先提出一個問題——相遇問題,即虛擬的兩個人相遇的問題,這對於陌生人之間的相遇,根本不是什麼問題,表示友好的一個微笑,或者只是一瞥而過就行了。第一個關鍵點在於,怎麼確定對方是陌生人,給每個人做一個記號的想法是很自然的,認識標記爲1,不認識標記爲1,但是這樣需要大量的存儲空間用於你與他人的關係存儲,因爲如果完全模擬的話,現在世界人口約爲60億,那麼我們每個人的需要開銷60多億位,僅僅用於處理你與他人的關係,雖然人與人之間的關係是複雜的,但是這樣的開銷還是讓我們無法忍受的。更爲簡單可行的方法是,建立一個查找表,對一個人所認識的人建立一個查詢表,遇到了人就進行查找,但是這些查找不再是簡單的對數據位的查找了,這涉及到了當前比較新和熱的領域,人臉識別技術之類的,這也和我們平時的習慣相近,我們遇到一個人第一反應是自己問自己,認不認識這個人,而不是去看那個人臉上是否寫着我們認識之類的話。建立查詢表是很有必要的,同時查詢表也需要更新,畢竟很久沒見的朋友相認有時候是需要些時間來回憶的,查詢表的更新也就可以模擬此點,而在查詢表方面的更新又有很多種方案,最爲常見的是計數方法進行排列查詢表的順序,訪問得越多,那麼記憶就越深刻,就越容易想起。但是這樣也容易出問題,如果之前你想你的兄弟太多,但是之後你們分隔了,你的女友絕不會想你先想起你的兄弟然後再想起她還沒喫早飯,這就是說,會出現有些東西僅僅之前出現的頻率高,但之後並沒有再出現,那麼由於之前的那次卻總是高居榜首,這是不公平的。所以出現了移至前端法和轉置的更新方法,移至前端法是指每次查詢一條消息,查詢到即將此消息移動到表首,其他消息後移一個位置,這樣做開銷很大,因爲每次更新很可能要移動半個查詢表,而轉置的方法是,每次查詢到一個消息,只要它不在表首,那麼它和它前一個消息交換位置,這樣開銷很小,且不會出現前面出現的問題。

解決了如何識別他人之後,第二個關鍵點就自然而然冒出來了,而且比之前那個問題更爲困難,這就是見面打招呼,對話的部分。雖然現在有很多人在做語音識別系統,但是語音識別解決的是計算機與真實的人溝通的問題,而在computing life中對話問題就變成了,不只是計算機響應人的問題了,而是可以看成計算機與計算機對話的問題了,更爲抽象一點可以看成進程間通信,或者說是各個獨立的系統之間的通信,可是這個比通信又更爲棘手,需要大量的數據的支持,同時通話的內容也與其他事件有關,比如你不可能在考完英語六級出來與人交談時高興得和你即將回家時碰到人打招呼時一樣開心,嗯,這僅僅是個玩笑,但是說明說話的內容還與所處的環境有關,而不是一臺計算機,對另一臺計算機說的話的簡單的語音識別可以做到的。首先見面誰先說話取決於性格之類的心理學因素,但是這一點很容易做到,因爲打招呼一般是同時進行的,而之後的交談就取決於相遇的時間、背景了,古人言,察言觀色,說的是觀察別人的言談、臉色,揣度其心意,這是計算機很難做到的,需要人臉識別技術做更大的提高,而僅僅是做,人臉圖像獲取,人臉檢測,定位人臉區域,預處理,特徵抽取,人臉特徵,對比識別一系列的一般性人臉識別了。這需要關於心理學的研究,同時識別的是動態的變化,你不可能等你女朋友或者男朋友哭了很久以後纔上去給一個溫暖的擁抱,所以在短時間內對動態的變化做出響應是必須的。如此看來,整個相遇問題中,其實最難解決的是computing life中最麻煩的幾個基本問題之一,對話問題。

但是換種思維方式,會發現,察言觀色就很容易實現了。上面說過,相遇問題抽象點說,就是類似於系統之間通信一樣,那麼相遇若是熟人的對話問題就可以看做是一段數據交流的過程,言語的交談是最直接和實在能看到的東西,但是與此同時,個人的表情等等決定交流導向的東西也可以在通信間傳輸,還是像上面提到的那樣,這需要心理學家更爲細緻的研究,之後將影響人交流的情緒因素設置成數據,那麼交談時的情緒就成了簡單的一串01的描述,那麼這樣可以大大減少在人臉識別技術上需要的技術支持難度。

將這些再細化一點,這些關於察言觀色的信息傳輸接收能力又限制於個人的心理性格特徵等等,那麼這個信息傳遞過程就可以簡單的限制於一下幾點,一、相遇人的性格特徵;二、相遇地點、周邊環境因素;三、相遇時,相遇人的心情狀況,個人近況等等。對於需要傳輸的各個數據進行分組然後處理,這樣就可以做到相遇問題的模擬了。當然了,如果只是陌生人的相遇,只要不是一見鍾情的那種,其處理起來肯定就更爲方便了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章