L: tốc độ học (sẽ giảm dần theo số lần lặp)
6 PHẦ : CÀI ĐẶT THỬ NGHIỆM VÀ ỨNG DỤNG
6.6 BỘ PHÂN LOẠI PERCEPTRON (PERCEPTRON CLASSIFIER)
6.6.1 Giới thiệu
Xây dựng bộ phân loại perceptron một lớp tuyến tính.
Đường dẫn chương trình trong đĩa CD :
\\Programs\6.PerceptronClassifier\PerceptronClassifier.exe
Hình 6.11 : Bộ phân loại Perceptron đơn giản
• Hướng dẫn sử dụng
- Chương trình cho phép ta nhập vào các điểm “+” màu xanh (nhấn Nút Trái chuột) và màu đỏ (Nút phải chuột)
- Nhập các thông số huấn luyện mạng bên phải (tỉ lệ học, số lần lăp) sau đó bấm nút Learn để tiến hành phân chia tập điểm ta nhập vào thành 2 cụm khác nhaụ
Perceptron là mạng neuron một lớp (single level) và là dạng đơn giản nhất của mạng nơron truyền thẳng (feed forward neural network). Nó được thiết kể bởi Frank Rosenblatt như là bộ chia đôi (dichomatic classifier) của 2 lớp có khả năng độc lập tuyến tính (linearly separable). Perceptron về cơ bản gồm 3 lớp
- Lớp cảm biến (Sensor layer)
- Lớp kết hợp (Associative layer)
- Neuron xuất (Output neuron)
Có 1 số dữ liệu đầu vào (xn) của lớp Sensor, các trọng số (wn) ) và 1 đầu xuất. Đôi khi, w0 được gọi là bias và x0 = +1/-1 (trường hợp này thì x0=-1) như hình sau :
Hình 6.12 : Mô hình Perceptron
Đối với mỗi input của perceptron (gồm bias), có tương ứng 1 trọng số. Để tính đầu ra (output) của perceptron, mỗi đầu vào được nhân với trọng số tương ứng của nó. Sau đó tổng trọng số được tính với tất cả đầu vào và được đưa vào hàm giới hạn (limiter function)để tính kết quả đầu ra cuối cùng của perceptron.
Đầu ra của neuron được hình thành bởi sự kích hoạt của neuron xuất, là 1 hàm của đầu vào
(1)
Hàm kích hoạt F có thể tuyến tính vì thế chúng ta có 1 mạng tuyến tính hay là phi tuyến. Trong ví dụ này, dùng hàm ngưỡng như sau :
Xét trường hợp ta có 1 perceptron với 2 đầu vào và chúng ta muốn phân tách các mẫu đầu vào (input patterns) thành 2 lớp. Trong trường hợp này, việc phân tách giữa 2 lớp là 1 đường thẳng, cho bởi phương trình sau :
(3)
Khi ta xét x0 = -1 và đánh dấu w0 = ?, ta viết lại phương trình (3) thành dạng :
4)
Ở đây ta sẽ mô tả phương thức học của perceptron. Phương thức học của perceptron là 1 thủ tục lặp mà trong đó ta đi điều chỉnh trọng số. Một mẫu học được đưa vào mạng. Đối với mỗi trọng số, giá trị mới được tính bằng cách thêm sự điều chỉnh vào giá trị cũ. Ngưỡng được cập nhật cùng 1 cách :
(5)
Trong đó y là đầu ra của perceptron, d là đầu xuất mong muốn, và là tham số học
6.6.2 C ấ u tr ú c t ổ ch ứ c ch ươ ng tr ì nh
Chương trình gồm các file
- PerceptronClassifier.exe : file exe chương trình chính
6.6.3 Cấu trúc tổ chức sourcecode
Đường dẫn sourcecode chương trình trong đĩa CD, ta hãy mở file solution sourcecode sau trong Visual Studio 2010:
Hình 6.13 : Sourcecode chương trình PerceptronClassifier
Minh họa 1 số hàm chính
Khai báo class Sample