【人工的,沒智慧】
用Python跑ANN訓練電腦知道XOR,再把結果用Arduino Nano執行
https://www.youtube.com/watch?v=m-21fhmzmbY&feature=youtu.be
其實所謂ANN人工神經網路(Artificial neural network)就是仿造人類的神經元連結成網路,而每個神經元其實只會對各個輸入求加權、偏移以後的效果
y=mx+c 變成 y=Wx+b 而且b和c可以為0
使得這些效果疊加之後形成輸出;最後期望的當然就是輸出能因此趨近於所指定的標的
簡單一句話:這個範例可以改裝成更多個輸入、更多種輸出,然後更多個神經元;至於你想要不同的訓練成果,例如要改成XNOR、OR、AND...等都可以,因為不管多少個輸入跟多少種輸出,系統只是一直試算求出神經網路各個神經元的Weight權重值而已~~
?
範例程式在這裡 ==>
https://drive.google.com/…/1oU1-p7Vj4XmJsc4qVQeoKiQb8CjR8iL…
還有要改範例程式以前別忘了,先看過!然後找出你想改成的輸入、輸出要以何種形式表示,好比說這個案例只有0、1,那你在物理量比如照度、水位...等的輸入值怎麼表示,或者輸出可能有0、1、2各代表甚麼含意也要先規劃好
其實,這也透漏了一點:假使哪一天我們想要教ANN去學會辨認珍珠奶茶,那就得要告訴它甚麼是珍珠、甚麼是奶、甚麼是茶,可能之後還得告訴它珍珠有哪幾種、有鮮奶還是奶精、茶是紅茶還是綠茶...等有關的死人骨頭,通通都得掏出來給ANN知道
?
所以,根本一點不智慧吧!不過有得玩就是
Jack Omnixri
2018-03-13 18:22:58
賴桑,Arduino MCU太弱,建議激活函數不要用Sigmoid,改用reLu會快很多。
Jack Omnixri
2018-03-13 18:24:31
另外可考慮不用浮點數,改為定點數(或說整數),速度可加快,結果不變。
Mike Lo
2018-03-13 18:27:52
我今天終於了解,人們說:『只要是金子,就會發光。』這句話的涵義了。
張合中
2018-03-13 18:51:53