Tôi đã thử nghiệm một chút với các triển khai Perceptron khác nhau và muốn chắc chắn rằng tôi có hiểu đúng "các lần lặp" không.
Quy tắc tri giác ban đầu của Rosenblatt
Theo như tôi hiểu, trong thuật toán tri giác cổ điển của Rosenblatt, các trọng số được cập nhật đồng thời sau mỗi ví dụ đào tạo thông qua
trong đó là quy tắc học tập ở đây. Và mục tiêu và thực tế đều được ngưỡng (-1 hoặc 1). Tôi đã triển khai nó dưới dạng 1 lần lặp = 1 lần so với mẫu đào tạo, nhưng vectơ trọng lượng được cập nhật sau mỗi mẫu đào tạo.
Và tôi tính giá trị "thực tế" là
Độ dốc dốc ngẫu nhiên
Tuy nhiên, giống như quy tắc perceptron target
và actual
không được ngưỡng nhưng giá trị thực. Ngoài ra, tôi tính "lặp" là đường dẫn qua mẫu đào tạo.
Cả SGD và quy tắc perceptron cổ điển đều hội tụ trong trường hợp phân tách tuyến tính này, tuy nhiên, tôi đang gặp rắc rối với việc thực hiện giảm dần độ dốc.
Xuống dốc
Ở đây, tôi đi qua mẫu đào tạo và tổng hợp các thay đổi về trọng lượng trong 1 lần so với mẫu đào tạo và cập nhật các trọng số sau đó, ví dụ:
cho mỗi mẫu đào tạo:
...
sau 1 lần vượt qua tập huấn luyện:
Tôi tự hỏi, nếu giả định này là chính xác hoặc nếu tôi đang thiếu một cái gì đó. Tôi đã thử các mức học khác nhau (tối đa vô cùng nhỏ) nhưng không bao giờ có thể khiến nó thể hiện bất kỳ dấu hiệu hội tụ nào. Vì vậy, tôi tự hỏi nếu tôi hiểu lầm sth. đây.
Cảm ơn, Sebastian