2009-04-22 32 views
4

有沒有人寫過任何代碼,其中的應用程序在其生命週期中學習和提高自己(使用存儲在KB中的觀測數據 ),有沒有任何框架?自治軟件

+0

Darned很好的問題! ;-) – Cerebrus 2009-04-22 06:19:39

回答

3

我寫了一個學習Tic Tac Toe(或Noughts and Crosses)遊戲一次。這算不算?

它基本上保持了每個遊戲狀態的元素數組。在每場比賽結束時,如果比賽獲勝,它將在該比賽中爲所有州增加一個。或丟失一個(如果它已經丟失了)(包括旋轉和鏡像以獲得更快的學習)。

當決定採取行動時,只需諮詢幾種可能性並選擇得分最高的那種。

它最終變得相當不錯,但不是扮演一個人,這需要很長時間。它不得不放鬆自己的另一個副本,一個隨機的機器人和一個硬編碼的規則機器人爲成千上萬的遊戲。

當我釋放它時,它有10個初始智能水平,這只是它學習過程中的不同階段。我的兒子目前正在對付最愚蠢的一級 - 他只有四歲,所以我不想在他身上過於粗暴,所以他們會一起學習(儘管他偶爾在Connect Four擊敗我,所以也許我應該給他更多的壓力)。

1

我會建議開始看網上的高級人工智能主題:這些主題包括神經網絡,遺傳編程等(維基百科他們)。

好看的地方還包括大學研究更高層次的人工智能。 (也就是說,我知道一羣人編寫了一個程序,通過計算機可以用電腦觀察擺動擺動的外觀運動規律;非常酷的東西)http://blog.wired.com/wiredscience/2009/04/newtonai.html

這是一個非常大的領域,代碼將需要由您編寫;你應該真正關注的是學習算法的背後的概念,這樣你可以編程或適應你找到的需求。我認爲這將是您創建學習算法的最佳選擇。

我希望有幫助。

1

你的問題是恕我直言,非常廣泛。大多數垃圾郵件過濾器都適合您的描述。 但總體而言,您的方法將取決於應用程序的學習內容以及應該如何學習。例如垃圾郵件過濾器通常會進行監督學習。但是,如果你不希望用戶幫助你的應用程序學習,你將不得不採用無監督的學習方法。當然,還有更多的選擇。 mloss.org有許多可以使用ML算法的庫。但是對於大多數圖書館來說,如果你至少能夠大致瞭解他們的算法是如何工作的,那麼這很有用

最好的是你讀了一些關於機器學習的書籍(如Mitchell的Machine Learning)和AI。