Chương 1: Tổng quan: Chương này giới thiệu tổng quan về mục đích của đề tài cũng như các nghiên cứu liên quan đến đề tài, trình bày mục tiêu và phương pháp thực hiện đề tài. Chương 2: Cơ sở lý thuyết: Chương này giới thiệu cơ sở lý thuyết liên quan đến nội dung của đề tài. Chương 3: Áp dụng mạng nơ ron tích chập trong việc nhận dạng các đối tượng tham gia giao thông: Chương này nêu ra cách giải quyết bài toán cụ thể trong việc nhận dạng dùng mạng nơron tích chập. Chương 4: Kết luận: Chương này đưa ra kết quả thực hiện được và hướng phát triển sau này của đề tài.
5 Chương 2 CƠ SỞ LÝ THUYẾT 2. Tế bào thần kinh và mạng thần kinh nhân tạo 2. Tế bào thần kinh Mạng thần kinh nhân tạo [7] (gọi ngắn gọn là mạng thần kinh) có thể xem như là mô hình toán học đơn giản của bộ não con người. Mạng thần kinh gồm các tế bào thần kinh (đơn vị xử lý) kết nối với nhau bởi các liên kết.
Mỗi liên kết kèm theo một trọng số, đặc trưng cho đặc tính kích thích hay ức chế của các tế bào thần kinh.1: Tế bào thần kinh nhân tạo Mỗi tế bào thần kinh được kết nối với các tế bào thần kinh khác và nhận các tín hiệu xi từ chúng với các trọng số wi Quá trình xử lý thông tin của tế bào thần kinh được chia thành hai phần: xử lý ngõ vào và xử lý ngõ ra. Hàm xử lý ngõ vào là hàm tổng có dạng như sau. Hàm tuyến tính (linear function): m f net w j x j w T x (2.1) j 1 Hàm toàn phương (quadratic function): 6 m f net w j x 2j (2.2) j 1 Hàm cầu (spherical function): 2 f net 2 x j w j 2 x w x w m T (2.3) j 1 Trong mỗi biểu thức trên , là mức ngưỡng của tế bào thần kinh. Thường hàm tổng ở ngõ vào được sử dụng nhiều nhất là hàm tuyến tính (2.
Ngõ ra của mỗi tế bào thần kinh được cho bởi biểu thức: y = a(f) (2.) gọi là hàm tác động. Các dạng hàm tác động thường dùng là: Hàm nấc: 1 𝑛ế𝑢 𝑓 ≥ 0 a(f) = { 0 𝑛ế𝑢 𝑓 < 0 Hình 2.2 : Hàm nấc Hàm dấu: 1 𝑛ế𝑢 𝑓 ≥ 0 a(f) = { −1 𝑛ế𝑢 𝑓 < 0 Hình 2.3 : Hàm dấu Hàm tuyến tính: a(f) = f Hình 2.4 : Hàm tuyến tính 7 Hàm dốc bão hòa: 1 𝑛ế𝑢 𝑓 > 1 a(f) = {𝑓 𝑛ế𝑢 0 ≤ 𝑓 ≤ 1 0 𝑛ế𝑢 𝑓 < 0 Hình 2.5 : Hàm dốc bão hòa Hàm tuyến tính bão hòa: 1 𝑛ế𝑢 𝑓 > 1 a(f) = {𝑓 𝑛ế𝑢 0 ≤ |𝑓| ≤ 1 −1 𝑛ế𝑢 𝑓 < −1 Hình 2.6 : Hàm tuyến tính bão hòa Hàm dạng s đơn cực: 1 a( f ) 1 e f Hình 2.7 : Hàm dạng s đơn cực Hàm dạng s lưỡng cực: 2 a( f ) 1 1 e f Hình 2.8 : Hàm dạng s lưỡng cực 2. Mạng thần kinh nhân tạo Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc 8 như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu,.) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron. Tùy theo cấu trúc mạng người ta chia ra các loại mạng sau: Bảng 2.1 : Các loại mạng thần kinh nhân tạo thường gặp 2. Một số kiểu mạng nơron Cách thức kết nối các nơron trong mạng [8] xác định kiến trúc (topology) của mạng.
Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi nơron đều được kết nối với tất cả các nơron khác, hoặc kết nối cục bộ (partially connected) chẳng hạn chỉ kết nối giữa các nơron trong các tầng khác nhau. Người ta chia ra hai loại kiến trúc mạng chính: 9 2. Tự kết hợp (autoassociative): là mạng có các nơron đầu vào cũng là các nơron đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp.9 : Mạng tự kết hợp 2.
Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, … thuộc loại này.10 : Mạng kết hợp khác kiểu Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các nơron đầu ra tới các nơron đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng. Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của nơron. Các mạng nơron truyền thẳng cho phép tín 10 hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hƣởng tới tầng đó.
Các mạng kiểu Perceptron là mạng truyền thẳng.11 : Mạng truyền thẳng 2. Kiến trúc hồi tiếp (Feedback architecture): là kiểu kiến trúc mạng có các kết nối từ nơron đầu ra tới nơron đầu vào. Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc loại này.12 : Mạng hồi tiếp 2.
Các phương pháp huấn luyện mạng thần kinh nhân tạo Mạng thần kinh nhân tạo [7] phải đươc huấn luyện trước khi sử dụng. Có hai kiểu học: 11 - Học cấu trúc (Structure Learning): để thay đổi cấu trúc mạng bao gồm số tế bào thần kinh và cách liên kết giữa chúng. - Học thông số (Parameter Learning): để cập nhật các trọng số liên kết giữu các tế bào thần kinh trong mạng. Có ba phương pháp học thông số.
Học có giám sát : Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái.
Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì? Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ của thuật toán là phải xác định đƣợc một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó. Học không giám sát : Là việc học không cần có bất kỳ một sự giám sát nào. 14 : Học không giám sát Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1, x2, …, xn)} với (x1, x2, …, xn) là vector đặc trưng của mẫu huấn luyện.
Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau. Như vậy với học không giám sát, số lớp phân loại chưa đƣợc biết trƣớc, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau. Học củng cố : Đôi khi còn được gọi là học thưởng-phạt (rewardpenalty learning), là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được.
Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống. Do đó học củng cố là học theo nhà phê bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher).15 : Học củng cố 13 Bảng 2. 2 Sự tương quan giữa mạng thần kinh nhân tạo và bộ não con người. Tổng quát trọng số W của mạng thần kinh thay đổi theo quy luật: Wij(k+1) = wij(k) + ∆wij(k) ∆wij(k) = ŋ.
Thuật toán lan truyền ngược 2. Mô hình mạng Hình 2.16 : Mô hình mạng nơron lan truyền ngược 14 Mạng có 3 lớp: Lớp vào (Input Layer) – Số node vào là số thuộc tính của đối tượng cần phân lớp. Lớp ẩn (Hidden Layer) – Số node ẩn thường là không xác định trước, nó thường là do kinh nghiệm của người thiết kế mạng, nếu số node ẩn quá nhiều mạng sẽ cồng kềnh, quá trình học sẽ chậm, còn nếu số node ẩn quá ít làm mạng học không chính xác. Các neural ở các lớp trong thường được kết nối đầy đủ với tất cả các neural lớp ngoài, trên mỗi đường kết nối giữa 2 neural ở 2 lớp khác nhau có 1 trọng số mạng (weight).
Các trọng số này đóng vai trò là các giá trị ẩn số mà mạng cần phải tìm ra (học) sao cho với các giá trị đầu vào, thông qua mạng ta nhận được kết quả xấp xỉ với đầu ra mong muốn tương ứng của mẫu học. Hoạt động Bước 1: Chọn tốc độ học >0, chọn sai số cực đại Emax. Bước 2: Khởi động: - Gán sai số E=0. - Gán các trọng số wiq (k), vqi (k) bằng giá trị ngẫu nhiên nhỏ bất kỳ.
Lớp ẩn: m netq k vqj k .z j k (i=1, n) q 1 yi k ao neti k (i=1, n) Bước 4: Lan truyền ngược sai số, cập nhật trọng số mạng oi k di k yi k ao' neti k (i=1, n) w oi k 1 w iq (k ) oi (k ) zq (k ) (i=1, n; q=1, 1) Bước 5: Tính sai số tích lũy 1 n di k yi k E 2 E 2 i 1 Bước 6: Nếu k<K thì gán k=k+1 và trở lại bước 3.