很久以前看到了這個題目
967621 = 3
797321 = 1
378581 = 4
422151 = 0
535951 = 1
335771 = 0
565441 = ?
這個題目就是數數字裡出現的圈圈數,以前看過去也就過去了,沒有去研究它。
今天在微博上看到有人說這個題目可以用機器學習裡的線性回歸來搞定,正好自己最近也在研究回歸相關的東西,於是自己用python寫了乙個線性回歸,發現效果還真不錯。不過這期間還遇到一些問題。
過程大致如下:
特徵提取:
對於每個數,數出0-9數字出現的個數特徵就是這麼簡單,如下:
15989 1,0,1,0,0,0,1,0,0,1,2,4
23580 1,1,0,1,1,0,1,0,0,1,0,3
43733 1,0,0,0,3,1,0,0,1,0,0,0
70437 1,1,0,0,1,1,0,0,2,0,0,1
21197 1,0,2,1,0,0,0,0,1,0,1,1
15989 這個數字1出現1次,5出現1次,8出現1次,9出現兩次最後圈圈的個數為4次。那麼這樣的資料就是訓練樣本了。
學習演算法是用的梯度下降的batch演算法,learning rate選擇0.01。剛開始選用了10+個訓練樣本演算法表現出來的效果非常不錯。
訓練出來各個數字的權重為:
0 0.857142857143
1 -0.142857142857
2 -0.142857142857
3 -0.142857142857
4 -0.142857142857
5 -0.142857142857
6 0.857142857143
7 -0.142857142857
8 1.85714285714
9 0.857142857143
intercept 0.714285714286
權重的含義為: 數字x出現圈圈的個數,intercept 這個是模型裡的常數項。
測試了一些case如下:
[2, 6, 8, 4, 9] 4.00085194219
[3, 2, 4, 7, 4] 0.00299317973612
[5, 2, 8, 9, 7] 2.99864179339
[9, 5, 5, 9, 1] 1.99570490848
[8, 7, 1, 4, 5] 1.99938445205
這個已經非常接近結果了。
後來一想,如果訓練樣本數進一步增加 效果會不會更好(當然增加迭代次數也能變好),於是將訓練集增加到1000個,而結果出來後我傻眼了,訓練出來的各個係數太離譜了。
0 -8.73808474613e+40
1 -7.2648911676e+40
2 -4.8028693177e+40
3 -6.868625647e+40
4 -7.3556109096e+40
5 -8.353571201e+40
6 -6.45998732018e+40
7 -6.75509981111e+40
8 -1.07539346078e+41
9 -7.37513583332e+40
intercept -1.49455621123e+41
[2, 6, 8, 4, 9] 4.0
[3, 2, 4, 7, 4] 9.43689570931e-16
[5, 2, 8, 9, 7] 3.0
[9, 5, 5, 9, 1] 2.0
[8, 7, 1, 4, 5] 2.0
訓練樣本1000個learning rate 選擇 0.000001迭代次數為10000次時出來的結果就沒有問題了。
[2, 6, 8, 4, 9] 3.99378701724
[3, 2, 4, 7, 4] 0.025829175749
[5, 2, 8, 9, 7] 3.00131902567
[9, 5, 5, 9, 1] 2.00316729999
[8, 7, 1, 4, 5] 2.00836569892
原來是在離線演算法裡的當步長過大後,在按梯度找最優值的時候很容易就跨越最後值點,然後出現左右振盪的情況,從而導致不收斂。
嗯,這個東西先搞一段落,有空再研究下下面這個問題:
現在的訓練資料都是位數一樣的,要是位數不一樣,然後引入位數這個特徵是否也能得到同樣不錯的結果呢?
新發現 幼兒園的題目和機器學習的關係
比如 29537 1,0,0,1,1,0,1,0,1,0,1,1 20379 1,1,0,1,1,0,0,0,1,0,1,2 72240 1,1,0,2,0,1,0,0,1,0,0,1 112694 1,0,2,1,0,1,0,1,0,0,1,2 963187 1,0,1,0,1,0,0,1,1,1...
幼兒園調查過程怎麼寫 關於幼兒園教育的調查報告范文
關於幼兒園教育的調查報告范文 幼兒是祖國的未來,在幼兒園的素質教育中如何培養幼 兒形成良好品德,不僅是幼兒身心健康成長的需要,也是當 今社會的需要。優秀的品格,只有從幼兒時期開始陶冶,才 有希望在孩子心靈中播下道德的種子。下面有 xx整理的關 於幼兒園教育的調查報告范文,歡迎閱讀 調查目的 幼兒園存...
幼兒園的快樂一天
幼兒園的快樂一天 親子活動,顧名思義,就是由家長和孩子共同參與 相互合作進行的一系列活動。那麼親子活動究竟有何意義呢?首先,它有利於增進家長和孩子之間的情感交流。古希臘某位哲人曾說過 感情是由交流堆積而成的。任何一種感情的昇華都有賴於交流。血濃於水,親子之情雖是與生俱來,但由於現代社會競爭的日趨激烈...