# [ 類神經網路 ] 紀錄|關於單層感知機的碰壁
前些陣子開始跟著學長研究類神經網路?
總之我從最簡單的單層感知機開始寫起
卻一直卡住...
底下是我的程式碼
如果有大佬路過 希望給予一點幫助
import java.util.*; public class perceptronTest { private static float T;//預估值 private static float Y;//激發函數輸出值 private static float x;//輸入值 private static float w;//權值 private static float theta;//閥值 private static float eta;//學習速率 private static float bias;//修正值 private static float rate;//正確率 private static int count;//錯誤計數 private static Scanner sc;//輸入 //設定初始值 public perceptronTest() { theta=0; w=0; bias=0; rate=0.000f; count=0; eta=0.5f; } //求和函數(ΣXi*Wi-θ) public static float sigma(int x) { float net=x*w-theta; return net; } //激發函數 public static float actFunc(float net) { Y=(net>=0)?net:0; return Y; } //學習區塊 public static int fit(int Data) { while(bias!=0) { Y=actFunc(sigma(Data)); //激發函數輸出值 T=(Data>0)?1:0; //預估值 bias=eta*(T-Y)*Data; w+=bias; theta+=bias/Data; rate=(float)(Y/T*100); count++; System.out.println("[AI]#"+count+" >> "+rate); } return 0; } //設定資料庫 public static int Data(int max,int min) { int data=(min-1)+(int)(Math.random()*(max-min)+1); return data; } public static void main(String[] args) { fit(Data(100,-100)); sc = new Scanner(System.in); System.out.print("[#] "); x=sc.nextInt(); fit(Data(100,-100)); actFunc(sigma((int)x)); } }
我順便貼個學長的成果好了
https://github.com/shane-liu-1010/Perceptron/blob/master/perceptron.cpp
留言
張貼留言
請留下你的意見