đặ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. z 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: z 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: = ∑ 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 f(t) = { * Hàm dấu f(t) = { * Hàm sigmoid f(t) = * Hàm sigmoid lƣỡng cực f(t) = = 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. z 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ụ z 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.