[討論] 分析局勢

看板Prob_Solve (計算數學 Problem Solving)作者 (!H45)時間18年前 (2007/02/14 16:14), 編輯推噓4(405)
留言9則, 3人參與, 最新討論串1/2 (看更多)
有一個演算法 輸入目前的狀態和過去的經驗 就可以預測未來所有可能的狀態、並且根據過去的經驗做學習 然後輸出最佳的行動給使用者 這個演算法可以用在圍棋、西洋棋、象棋、五子棋……等各式棋類 也可以用在魔獸、星海、世紀……等各式即時戰略 更可以用在天堂、魔獸世界、完美世界、楓之谷……等各式線上遊戲 這是人工智慧.... ================ 以上是開場白 現在的人工智慧技術並不如人腦聰明 上面的例子都還沒有令人稱讚的人工智能 電腦下圍棋很弱、即時戰略也不行 只有線上遊戲和不太複雜的棋類還過得去 ==================================== 扯了一大堆,現在開始縮小討論的點.... 現在我們的演算法可以預測未來所有可能的狀態 這沒問題,模糊理論可以減少許多類似的狀態 我們的演算法可以根據過去的經驗做學習 這也對,過去失敗的例子可以告訴演算法現在不可以再犯 過去成功的例子可以告訴演算法現在可以繼續套用 這兩個都沒問題,所以最後我們會得到最佳的行動....是這樣嗎? 並沒有這麼簡單 首先,評估函數不好設計也不好實作 只有該領域的專家才知道什麼狀態叫作「好」,什麼狀態叫作「不好」 你會算圍棋的劫材誰多誰少嗎....? 只有圍棋的專家才會算吧!? 再來,預測未來所有可能的狀態 雖然模糊理論可以做,但是差之毫厘失之千里 什麼樣的狀態需要搜尋,什麼樣的狀態不需要搜尋 這邊也一樣,只有該領域的專家才知道 等等,這樣推論下去,豈不是要扯到專家系統了? 呵....並不是的 因為以上通通不是重點.... 我所著眼的點,在「機器學習」 過去失敗的經驗,現在不可以再犯 過去成功的經驗,現在可以繼續套用 失敗的經驗和成功的經驗,專家會告訴演算法,所以我們不需要擔心這個 重要的是,儲存這些「經驗」,將會耗費大量的「空間」 所以我們得想個妙計來減少需要的空間來儲存這些「經驗」 有人估計圍棋的所有可能大約是 10^100 這是一個天文數字 如果我們把「所有」的經驗通通存起來 第一個掛點的肯定是硬碟 試想,我們的大腦,有160GB嗎? 腦細胞雖然很多,但是硬碟的空間肯定比大腦能記的東西還多 可是人腦又比目前的電腦聰明 所以重點是「儲存的東西」是什麼 我們只要儲存「關鍵」、「有用」的東西就好了 不重要的、不常用到的東西,就「遺忘」它 =================================================== 好了,現在目標確定了:想個法子讓演算法只記錄重要的部分,並且遺忘不重要的部分 Oops, 也許有人聯想到「類神經網路」 好,我暫時先不考慮那個領域 一切由零開始 回想小時候下棋的時候 如果你輸棋了,那麼肯定是上一步下錯了,要不然就是上上一步下錯,再不然就是上上上 一步下錯.... 回想小時候玩格鬥天王的時候 如果你被連續接個好幾段,那麼肯定是前一秒內的動作錯了,要不然就是前兩秒內的動作 錯了,再不然就是前三秒內的動作錯了 好,重點是,到底是哪步做錯了?? 一般的作法是,把每次嘗試的方法都記下來 如果你發現昨天你下圍棋的時候,和現在的盤面一模一樣,而且下了某一步棋後輸掉 那麼今天你就不要再下那個地方 如果你發現前天你和別人打格鬥天王,出現和前天一模一樣的畫面,而且在跳起來之後 馬上被接個好幾段,那麼你今天就不要再跳起來了.... 有發現什麼問題嗎? 第一個嚴重的問題是:所有的經驗都要記下來,但是硬碟沒有足夠的空間給我們放 第二個嚴重的問題是:也許真正的問題並不是跳起來,而是前兩秒往前亂衝才會這樣.... 意思是說:存放空間不足;以及學習錯誤 好的,第一個問題還算不難解決,至少比第二個問題還簡單..(但是也不是那麼簡單..囧) 解決存放空間不足的問題: 1. 只記錄最失敗的那一刻。 (人在輸球的時候,也是只記住明明「那」一球可以贏的 只是自己沒有掌握好) 2. 遺忘最沒被用到的經驗。 像是LRU (Least recently used) 般的機制 ================================================================ OK, 排除掉這些問題了.... 第二個嚴重的問題:也許真正的問題並不是跳起來,而是前兩秒往前亂衝才會這樣.... 回想小時候下象棋的時候 以為自己下了一手妙棋,卻在繼續推演10幾手的時候才發現剛剛的妙棋變成了大惡手 回想當年玩魔獸爭霸的時候 以為自己可以集中火力攻擊蜘蛛,結果卻被寒冰甲反將一軍 真正的問題出在哪? 在發現局勢變壞的時候,有辦法了解問題點是前10步的惡手嗎? 難道集火攻擊錯了嗎? 問題是出在集火身上嗎? 也許有人會懷疑評估函數做錯了 這個懷疑永遠是對的 因為事實上沒有「完美」的評估函數 評估函數本質上的問題將是機器學習所要解決的問題 那我們該怎麼辦 評估函數是該領域的「專家」做出來的 如果我們膽敢更動這個「寶貴」的東西 誰知道這個評估函數會不會變笨?? 好,也許我們有辦法「偵測」局勢開始變壞 而變壞的問題源就是那個看似妙手的大惡手 重點是,該怎麼偵測? 也許我可以畫一個K線圖 看看什麼時候開始跌破壓力線.... 或是畫一個均線圖 看什麼時候均線再也拉不回來...... 如果有人看過世紀帝國遊戲結束後的時間與人數的關係圖,也許會知道我在說什麼.... 滅掉某一家之後,他的人數會大幅減少,並且一蹶不起,就像股市崩盤一樣 不知道有沒有辦法偵測這種東西呢? 輸入:{(x, f(x))|x, f(x)屬於R} 輸出:突然一蹶不起的臨界點....(我實在無法給它一個明確的定義 ˊˋ) 演算法:? 希望有板友可以提供任何心得 或是任何可以延伸出去的資訊,在此先謝過了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.213.121

02/14 16:49, , 1F
師大有位研究生,在作圍棋的破解程式的樣子
02/14 16:49, 1F

02/14 16:50, , 2F
不過那是四年前的事XD 現在應該作完了
02/14 16:50, 2F

02/15 09:18, , 3F
"突然一蹶不起"是指值變得極差還是什麼意思@@?
02/15 09:18, 3F

02/15 11:42, , 4F
我無法給它明確的定義,而這也是我想問的問題之一
02/15 11:42, 4F

02/15 11:44, , 5F
這問題就是在股市的K線圖中能找到跌破支撐線的關鍵時間
02/15 11:44, 5F

02/15 11:44, , 6F
在某n時間區段的均線來看,斜率一直是負數 (可是n要取多少?)
02/15 11:44, 6F

02/15 11:47, , 7F
由市場資訊判斷出經濟大恐慌的前一刻
02/15 11:47, 7F

02/15 11:48, , 8F
嗯....這不是要預測,而是由過去的資訊中找到有用的資訊
02/15 11:48, 8F

02/15 11:51, , 9F
可是我不知道要從哪個角度來思考
02/15 11:51, 9F
文章代碼(AID): #15qiJ_Ya (Prob_Solve)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
4
9
文章代碼(AID): #15qiJ_Ya (Prob_Solve)