Hình 2.8: Mạng Neural truyền thẳng 3 lớp

Một phần của tài liệu nhận dạng biển số xe viết bằng c# trên visual studio 2008 (Trang 28 - 31)

perceptron Neural. Ngõ ra của perceptron thường bị giới hạn trong tầm [0,1] tương ứng với hàm truyền hardlim(n) như hình đầu tiên của hình 2.8. Ngược lại, nếu hàm truyền của Neural là purelin(n), ta có Neural tuyến tính. Mạng tuyến tính (ADALINE) được điều chỉnh theo từng bước dựa trên Neural vào mới và vector mong muốn để tìm được các trọng số và ngưỡng thích hợp sao cho tổng bình phương sai số nhỏ nhất.

4. Thiết lập mạng Neural:

Để có thể tạo ra một mạng Neural ta phải biết trước mối liên hệ giữa ngõ vào và ngõ ra. Điều này có thể thực hiện bằng 2 cách :

 Trực tiếp : bằng cách nào đó, nếu ta biết trước mối liên hệ này, thì ta sẽ làm mô hình đó trực tiếp.

 Học (huấn luyện) : có thể dùng 2 cách : học giám sát và không giám sát.

Với cách học không giám sát, mạng không cần biết trước ngõ ra yêu cầu. Trong qua trình huấn luyện, chỉ những mẫu nhập được đưa vào mạng, thuật toán tự động điều chỉnh các trọng số kết nối với các Neural để phân chia các mẫu nhập có các đặc điểm tương tự vào chung một nhóm.

Ngược lại, việc học có giám sát đòi hỏi người giám sát phải cho biết ngõ ra yêu cầu. Trong cách học này, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện. Tập hợp này (thường được lấy từ những bản ghi chép trước đó) chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa ra mối liên hệ giữa ngõ ra và ngõ vào. Cách huấn luyện mạng thông thường là: dùng một trong các thuật toán học có giám sát (ví dụ backpropagation), sử dụng các dữ liệu để điều chỉnh trọng số và ngưỡng của mạng sao cho cực tiểu hóa sai số (trên tập huấn luyện) trong việc dự báo của mạng. Nếu mạng được huấn luyện chính xác, nghĩa là nó đã học mô phỏng một hàm chưa biết với mối liên hệ giữa ngõ ra và ngõ vào, thì với các tín hiệu vào đến sau, mạng sẽ dự báo tín hiệu ra tương ứng.

4.1. Các bước chuẩn bị thiết lập mạng:

Thu Thập dữ liệu để huấn luyện mạng:

Trước hết ta phải xác định được tập dữ liệu – là tập bao gồm một số các trường hợp, mỗi trường hợp chứa những giá trị của tầm ngõ vào và ngõ ra khác nhau. Sau đó xác định những biến nào sẽ sử dụng, bao nhiêu trường hợp cần thu thập.

Việc lựa chọn những biến sẽ được sử dụng thường do trực giác quyết định và phụ thuộc vào công việc chuyên môn cũng như lĩnh vực của nó. Trong Neural Networks, ta có thể chọn và loại bỏ nhiều biến hoặc xác định bằng thực nghiệm những biến hữu ích. Bước đầu, ta nên tính đến bất kì biến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế.

Trong khi đó, số trường hợp mẫu dùng để huấn luyện mạng rất khó xác định. Đã có một vài hướng dẫn về mối liên hệ giữa số trường hợp mẫu với kích thước mạng (cách đơn giản nhất là số trường hợp mẫu gấp 10 lần số kết nối trong mạng). Thực ra số trường hợp mẫu cũng liên quan

đến độ phức tạp của hàm mà mạng phải học. Khi số biến tăng lên, số trường hợp mẫu cần để huấn luyện cũng tăng phi tuyến, vì thế với một số nhỏ các biến (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu. Trong hầu hết các vấn đề trong thực tế, số trường hợp mẫu là khoảng hàng trăm hay hàng ngàn mẫu. Đối với những vấn đề rất phức tạp thì cần nhiều hơn, nhưng trường hợp này rất ít. Nếu dữ liệu huấn luyện ít hơn, thì sẽ không đủ thông tin để huấn luyện mạng, và cách tốt nhất là dùng mạng tuyến tính.

Sau khi thu thập xong tất cả những dữ liệu cần thiết thì ta sẽ xử lý chúng. Có 2 loại dữ liệu :

Dữ liệu số: được chia nhỏ thành những khoảng thích hợp cho mạng và những giá trị thiếu có thể được thay thế bằng giá trị trung bình hay giá trị thống kê của biến đó thông qua những biến khác đã được huấn luyện.

Dữ liệu phi số: xử lý khó hơn. Loại dữ liệu không phải là số thông thường nhất là những biến có giá trị danh định như giới tính (nam, nữ). Biến có giá trị danh định có thể biểu diễn bằng số học và Neural Networks có chức năng hỗ trợ điều này. Tuy nhiên Neural Networks làm việc tốt với những trường hợp biến danh định là một tập nhiều giá trị.

Huấn luyện:

Khi số các lớp, số Neuron mỗi lớp đã được chọn, trọng số và ngưỡng của mạng phải được cài đặt sao cho có được cực tiểu sai số trong việc dự đoán của mạng.

4.2. Các bước thiết kế mạng:

Chọn cấu hình ban đầu (thường là một lớp ẩn có số Neural ẩn bằng nửa tổng số Neural ngõ vào và ngõ ra).

Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất (thường dựa trên sai số xác minh). Thí nghiệm nhiều lần trên mỗi cấu hình mạng để tránh rơi vào sai số cục bộ.

Trong mỗi lần thí nghiệm, nếu xảy ra việc học chưa đủ (mạng không đạt được mức hiệu suất chấp nhận) thì thử tăng số Neural trong lớp ẩn. Nếu không hiệu quả, thì thêm một lớp ẩn.

Nếu xảy ra học quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vài Neural ẩn (và có thể bỏ lớp ẩn).

5. Phân loại cấu trúc mạng:

5.1. Mạng có cấu trúc tiến:

Tín hiệu đi vào ở ngõ vào, qua các Neuron ẩn và cuối cùng đến các Neuron ngõ ra. Cấu trúc như thế chạy ổn định.

Hình 2.9: Cấu trúc mạng Neural tiến

Một phần của tài liệu nhận dạng biển số xe viết bằng c# trên visual studio 2008 (Trang 28 - 31)