đặt vấn đề, mô tả phương pháp đề xuất, và cách nội dung trong luận văn được trình bày. Chương 2 trình bày về kiến thức nền tảng về mạng nơron nhân tạo truyền thẳng nhiều tầng. Chương 3 trình bày về bài toán dự đoán điểm đích của chuyến taxi và phương pháp đội MILA lab giải quyết vấn đề cũng như bài toán tìm số lượng đầu vào tối ưu cho mạng nơron nhân tạo nhiều tầng truyền thẳng để cải tiến mô hình của đội MILA lab. Chương 4 trình bày mô hình đề xuất, xây dựng thử nghiệm và kết quả thực nghiệm của phương pháp.
Phần kết luận đưa ra kết quả của luận văn và cũng như triển vọng và hướng nghiên cứu trong tương lai. 4 CHƯƠNG 2: MẠNG NƠRON NHÂN TẠO TRUYỀN THẲNG NHIỀU TẦNG 2. Mạng nơron nhân tạo Mạng nơron nhân tạo (artificial neural network) là một mô hình tính toán xử lý thông tin bằng cách mô phỏng theo cách thức hoạt động của hệ nơron sinh học trong bộ não con người [2]. Mạng gồm một nhóm các phần tử (nơron nhân tạo) kết nối với nhau thông qua các liên kết (liên kết được đánh trọng số).
Nó làm việc như một thể thống nhất bằng cách truyền thông tin theo các kết nối và tính giá trị mới tại các nơron. Một mạng nơron nhân tạo sẽ được cấu hình để giải quyết một vấn đề cụ thể nào đó như nhận dạng mẫu, phân loại dữ liệu, dự đoán,. Nó hoạt động thông qua một quá trình học từ tập các mẫu huấn luyện. Việc học về bản chất chính là quá trình đưa dữ liệu vào mạng nơron và thực hiện hiệu chỉnh trọng số liên kết giữa các nơron thông qua kết quả có trước trong mẫu.
Mạng nơron nhân tạo được coi là một công cụ mạnh để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan hệ giữa các quá trình không dễ thiết lập một cách tường minh. Mô hình toán học tiêu biểu cho một nơron nhân tạo được minh họa như hình 2.1 sau: 5 x1 Wk1 Hàm truyền x2 Wk2 ∑ f(. Hàm tổng xN WkN bk Đầu vào Trọng số liên kết Ngưỡng Hình 2.1 Mô hình toán học của một nơron Cấu trúc của một nơron k được mô tả toán học bằng cặp biểu thức sau: 𝑢𝑘 = ∑𝑁 𝑗=1 𝑤𝑘𝑗 𝑥𝑗 và yk = f(uk – bk) Trong đó, cụ thể các thành phần của một nơron gồm: 1. Tập đầu vào: là các tín hiệu (dữ liệu) vào của nơron, thường được đưa dưới dạng một vector N chiều (x1, x2, … xN).
Tập liên kết: là các liên kết từ tín hiệu đến nơron. Mỗi liên kết sẽ được đánh trọng số, ví dụ như nơron thứ k sẽ có trọng số wk1 ở liên kết 1. Do đó với mỗi nơron ta cũng có một vector trọng số liên kết N chiều (wk1,wk2, … wkN). Các trọng số này thông thường sẽ được tạo ngẫu nhiên ở thời điểm tạo mạng, sau đó qua quá trình học sẽ được hiệu chỉnh dần.
Hàm tổng: là tổng của tích các đầu vào với trọng số liên kết của nó, kí hiệu cho hàm tổng của nơron thứ k là uk. Ngưỡng: là một thành phần của hàm truyền, ký hiệu cho ngưỡng của nơron thứ k là bk. Hàm truyền: là một hàm số dùng để tính đầu ra của nơron từ hàm tổng và ngưỡng, ký hiệu là f. Đầu ra: là tín hiệu đầu ra của nơron.
Mỗi nơron chỉ có một tín hiệu đầu ra. Với nơron thứ k đầu ra ký hiệu là yk. Khái quát lại, nơron nhân tạo cho một đầu ra từ tập tín hiệu đầu vào. Một số hàm truyền phổ biến là: * Hàm đồng nhất f(t) = αt * Hàm bước nhảy 1 𝑘ℎ𝑖 𝑡 ≥ 𝛼 f(t) = { 0 𝑘ℎ𝑖 𝑡 < 𝛼 * Hàm dấu 1 𝑘ℎ𝑖 𝑡 ≥ 𝛼 f(t) = { −1 𝑘ℎ𝑖 𝑡 < 𝛼 * Hàm sigmoid 1 f(t) = 1+ 𝑒 −∝𝑡 * Hàm sigmoid lưỡng cực 1− 𝑒 −∝𝑡 2 f(t) = = −1 1+ 𝑒 −∝𝑡 1+ 𝑒 −∝𝑡 Có nhiều loại mạng nơron khác nhau trong đó mạng nơron truyền thẳng nhiều tầng là một trong những mạng nơron thông dụng nhất.
Mạng nơron truyền thẳng nhiều tầng Mạng nơron truyền thẳng nhiều tầng (multi layer perceptron - MLP) là mạng có n tầng (n >= 2). Trong đó tầng nhận tín hiệu vào của mạng gọi là tầng vào (input layer). Tầng vào chỉ làm chức năng nhận tín hiệu mà không thực hiện việc chuyển đổi thông tin nên không được tính vào số lượng tầng của mạng. Tín hiệu ra của mạng được đưa ra từ tầng ra (output layer).
Các tầng ở giữa tầng vào và tầng ra gọi là các tầng ẩn (có n–1 tầng ẩn). Các nơron ở một tầng nhất định đều liên kết đến tất cả các nơron ở tầng tiếp theo. Với mạng nơron truyền thẳng (feedforward network) không có nút nào mà đầu ra của nó là đầu vào của một nút khác trên cùng tầng với nó hoặc tầng trước. Tầng vào Tầng ẩn 1 Tầng ra Tầng ẩn n-1 x1 y1 x2.
xp yq Hình 0.2 Mạng nơron truyền thẳng nhiều tầng Nếu mạng nơron truyền thẳng chỉ có tầng nơron đầu vào và tầng nơron đầu ra thì được gọi là mạng nơron truyền thẳng 1 tầng. Mạng nơron có phản hồi (feedback network) là mạng mà đầu ra của một nơron có thể trở thành đầu vào của nơron trên cùng một tầng hoặc của tầng trước đó. Mạng nơron có phản hồi có chu trình khép khín gọi là mạng nơron hồi quy. 8 Kiến trúc của một mạng nơron truyền thẳng nhiều tầng tổng quát có thể mô tả như sau: + Đầu vào là một các tập vector (x1, x2, … xp) p chiều, đầu ra là một tập các vector (y1, y2, … yq) q chiều.
+ Mỗi nơron thuộc tầng sau sẽ liên kết với tất cả các nơron thuộc tầng ngay trước nó. Như vậy đầu ra của nơron tầng trước sẽ là đầu vào của nơron thuộc tầng liền sau. Mạng nơron truyền thẳng nhiều tầng sẽ hoạt động như sau: tại tầng đầu vào các nơron nhận tín hiệu vào xử lý, thực hiện việc tính tổng trọng số rồi gửi tới hàm truyền, kết quả của hàm truyền sẽ được gửi tới các nơron thuộc tầng ẩn đầu tiên. Nơi đây các nơron tiếp nhận các kết quả này như là tín hiệu đầu vào và xử lý rồi gửi kết quả đến tầng ẩn thứ 2.
Quá trình cứ tiếp tục như thế cho đến khi các nơron ở tầng ra cho ra kết quả. Về ứng dụng của mạng nơron truyền thẳng nhiều tầng, vài kết quả đã được chứng minh cụ thể như sau: + Mọi hàm toán học bất kỳ đều có thể được biểu diễn xấp xỉ bằng một mạng nơron truyền thẳng ba tầng trong đó các nơron ở tầng ra đều sử dụng hàm truyền tuyến tính và tất cả các nơron ở tầng ẩn đều dùng hàm truyền sigmoid. + Tất cả các hàm toán học liên tục đều có thể được biểu diễn xấp xỉ bởi một mạng nơron truyền thẳng hai tầng trong đó các nơron ở tầng ra đều sử dụng hàm truyền tuyến tính với sai số nhỏ tùy ý và tất cả các nơron ở tầng ẩn đều dùng hàm truyền sigmoid. + Bất kỳ một hàm toán học Boolean nào cũng có thể được mô tả bởi một mạng nơron truyền thẳng hai tầng trong đó hàm truyền sigmoid được sử dụng cho tất cả các nơron.
Mạng nơron truyền thẳng nhiều tầng đã được sử dụng nhiều trong bài toán dự báo và cho kết quả khả quan. Điều này sẽ giúp hướng tiếp cận này phổ biến hơn trong thời gian tới cho bài toán dự báo. Các phương pháp học phổ biến Trong cuộc sống tự nhiên, học được định nghĩa là quá trình tiếp thu cái mới hoặc bổ sung, trau dồi các kiến thức, kỹ năng, kinh nghiệm, giá trị, nhận thức hoặc sở thích và có thể liên quan đến việc tổng hợp các loại thông tin khác nhau. Khả năng học hỏi là sở hữu của loài người, một số động vật.
Việc học sẽ giúp vật học tiến bộ theo thời gian. Mạng nơron cũng được học thông qua các luật học. Luật học là một thủ tục dùng để xác định việc cập nhật trọng số liên kết và ngưỡng của mạng nơron. Luật học còn được gọi là thuật toán huấn luyện mạng.
Quá trình học còn gọi là quá trình huấn luyện. Một mạng nơron được huấn luyện sao cho với một tập các vector đầu vào X, mạng sẽ cho ra tập các vector đầu ra Y mong muốn. Tập X dùng để làm đầu vào huấn luyện cho mạng nên được gọi là tập huấn luyện (training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example).
Như đã được đề cập ở phần đầu, việc học bản chất là việc cập nhật liên tục các trọng số liên kết trong mạng nơron. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi đầu vào, mạng sẽ cho đầu ra như ý muốn. Với mỗi mạng nơron nhân tạo có hai vấn đề cần học đó là học tham số (parameter learning) và học cấu trúc (structure learning). Học tham số là việc điều chỉnh trọng số của các liên kết giữa các nơron trong mạng, còn học cấu trúc là việc thay đổi cấu trúc của mạng bao gồm thay đổi số lớp nơron, số nơron của mỗi lớp và cách liên kết giữa chúng.
Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt. Luật học của mạng nơron có thể chia làm 3 loại: học có giám sát (supervised learning), học không có giám sát (unsupervised learning), học tăng cường (reinforcement learning). + Học có giám sát: là quá trình học giống việc ta dạy cho trẻ, luôn luôn có một người “thầy giáo”, muốn dạy cho trẻ chữ “a”, ta đưa chữ “a” ra và nói với trẻ rằng đây là chữ “a”. Và thực hiện tương tự với tất cả các chữ cái khác.
Cuối cùng để kiểm tra việc học, ta sẽ đưa ra một chữ cái bất kỳ và hỏi đây là chữ gì. Do đó với học có giám sát, số tầng cần phân loại đã được biết trước. Nhiệm vụ 10 của việc huấn luyện là phải xác định được một cách thức phân tầng sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào tầng của nó. + Học không giám sát: là quá trình học mà không có bất kỳ một người giám sát nào.
Trong bài toán mà luật học không giám sát được áp dụng, với tập dữ liệu huấn luyện D thì nhiệm vụ của thuật toán học 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 giá trị đầu vào có đặc trưng giống nhau. Do đó với học không giám sát, số tầng phân loại chưa được biết và tùy theo yêu cầu về độ giống nhau giữa các mẫu mà ta có các tầng phân loại tương ứng.