Mục tiêu của bài thu hoạch đó là việc tìm hiểu cách thức hoạt động cũng như mô hình vận hành của hệ thống mạng neuron nhân tạo và thuật giải di truyền, để từ đó có thể áp dụng thuật giải
Trang 1Đại học Quốc Gia Thành Phố Hồ Chí Minh Đại học Công Nghệ Thông Tin
Khoa Khoa học máy tính
Đề tài thu hoạch:
Ứng dụng Neuron &thuật giải di truyền trong hệ thống ra quyết định điều khiển xe tự hành
GVHD: PGS.TS Đỗ Phúc SVTH: Hồ Duy Nhật Linh - CH1301028
Trang 2Mục lục
Trang 3Lời nói đầu
Ứng dụng Công nghệ thông tin trong điều khiển ra quyết định một cách tự động ngày càng được nghiên cứu và áp dụng ngày càng mạnh mẽ; các thuật toán, hệ thống trí tuệ nhân tạo ngày được ứng dụng nhiều hơn trong việc hỗ trợ quyết định
Xu hướng xây dựng áp dụng các hệ thống trí tuệ nhân tạo nói chung mạng neuron cũng như thuật toán di truyền nói riêng đang phát triển ngày một lớn mạnh trên toàn thế giới
Các hệ thống nhân tạo này giúp con người xử lí được các vấn đề thường gặp cũng như gia tang được năng suất lao động của con người, hỗ trợ con người đưa ra các quyết định trong quá trình thực hiện công việc cũng như duy trì sự sống
Mục tiêu của bài thu hoạch đó là việc tìm hiểu cách thức hoạt động cũng như mô hình vận hành của hệ thống mạng neuron nhân tạo và thuật giải di truyền, để từ đó có thể
áp dụng thuật giải di truyền huấn luyện mạng neuron trong môi trường không có trước các dữ liệu mẫu
Mục tiêu chính đó chính là xây dựng hệ thống điều khiển đưa quyết định để giúp
xe có thể tự hành hoàn thành lộ trình đường đi
Trang 4Mục đích nghiên cứu
- Tìm hiểu về mạng neuron và ứng dụng
- Tìm hiểu về thuật giải di truyền và ứng dụng
- Kết hợp Mạng neuron và thuật giải di truyền trong quá trình xây dựng hệ thống
hỗ trợ quyết định
Nội dung nghiên cứu:
- Mạng Neural
- Thuật giải di truyền
- Ứng dụng thuật giải di truyền để huấn luyện mạng Neuron
Bố cục báo cáo:
- Chương I: Tổng quan mạng Neuron
- Chương II: Tổng quan thuật giải di truyền
- Chương III: Xây dựng , áp dụng mạng Neuron sử dụng thuật giải di truyền để giải quyết bài toán ra quyết định điều khiển phương tiện giao thông
- Chương IV: Một số tài liệu tham khảo
Trang 5I Mạng Neuron nhân tạo
A Mạng Neuron sinh học
Trước khi đề cập sâu hơn về mạng Neuron nhân tạo, mạng Neuron sinh học sẽđược nêu ra ở đây để làm cơ sở so sánh với mạng Neuron nhân tạo Mạng Neuron sinhhọc được cấu thành bởi các neuron - là các tế bào não hay các tế bào thần kinh Mỗineuron như vậy có ba thành phân chính : dendrite, soma và axon Ba thành phần này là bayếu tố được mô phỏng lại trong mạng Neuron nhân tạo
Các dendrite là các đầu tiếp nhận các xung điện đầu vào từ những neuron khác.Các xung điện này sau đó được chuyển đến soma - phần thân của tế bào - để xử lý Axon
là đầu ra của các neuron, nó truyền đi xung điện đã được xử lý tại soma đến các neuronkhác thông qua các điểm nối (synaptic gap) Một mạng Neuron sinh học bao gồm nhiềuneuron như vậy nối với nhau thông qua các điểm nối, đầu ra (axon) của neuron này sẽđược nối với đầu vào (dendrite) của neuron khác Một neuron có nhiều đầu vào và nhiềuđầu ra
Hình 1 Một neuron sinh học
Trang 6B Mạng Neuron nhân tạo
Mạng Neuron nhân tạo là một hệ thống xử lý thông tin có những đặc điểm gần giốngvới mạng Neuron sinh học Mạng Neuron nhân tạo được xây dựng dựa trên các mô hìnhtoán học mô phỏng hoạt động của những yếu tố chính trong mạng Neuron sinh học(dendrite, soma, axon) Hoạt động của mạng Neuron nhân tạo có những tính chất sau:
− Quá trình xử lý thông tin xảy ra tại mỗi đơn vị của mạng, gọi là neuron
− Các neuron được liên kết với nhau
− Mỗi liên kết của các neuron đều có một trọng số Trọng số này đặc trưng cho bàitoán được biểu diễn bởi mạng Khi nhận được thông tin đầu vào, các đầu vào sẽđược nhân với các trọng số tương ứng, sau đó được cộng lại để cho một giá trị gọi
là net
− Mỗi neuron đều có một hàm kích hoạt (activation function), hàm này có chứcnăng tính toán đầu ra cho neuron dựa vào giá trị net đã nêu ở trên
Đặc trưng của một mạng Neuron nhân tạo bao gồm:
− Mô hình kết nối giữa các neuron trong mạng với nhau hay còn gọi là kiến trúc củamạng
− Cách thức xác định trọng số của các liên kết trong mạng
− Hàm kích hoạt của các neuron
Mạng Neuron nhân tạo được ứng dụng để giải quyết nhiều lớp bài toán : lưu trữ vàphục hồi trạng thái của mẫu, phân lớp mẫu, tìm ánh xạ giữa đầu vào và đầu ra, gom nhómcác mẫu giống nhau hoặc dùng để giải quyết các bài toán về tối ưu có ràng buộc
Mỗi neuron trong mạng có một đặc trưng là hàm kích hoạt Hàm này tính toán đầu ra
từ các thông tin đầu vào một cách gián tiếp thông qua giá trị net Tại mỗi thời điểm nhấtđịnh, mỗi neuron chỉ có thể có một đầu ra, tuy nhiên, đầu ra này có thể được gửi đếnnhiều neuron khác
Cách thức hoạt động của một neuron như sau:
Trang 7− Tính toán giá trị net là tổng các tích giữa các đầu vào và trọng số tương ứng.
− Áp dụng hàm kích hoạt để tìm giá trị đầu ra
Để cho thuận tiện, ta sẽ sử dụng mạng Neuron thay cho mạng Neuron nhân tạo,neuron thay cho neuron nhân tạo trong suốt bài báo cáo này
Hình 2 Một neuron nhân tạo
C Những lĩnh vực ứng dụng của mạng Neuron nhân tạo
Trong hơn 70 năm qua, việc nghiên cứu mạng Neuron đã được tiến hành songsong giữa lý thuyết và cả ứng dụng Ngày nay, mạng Neuron là một trong những mô hìnhtính toán được sử dụng phổ biến trong nhiều lĩnh vực khác nhau : thương mại, xử lý tínhiệu số, điều khiển, y học, … Phối hợp với nhiều ngành nghiên cứu khác, mạng Neuron
đã mang lại nhiều kết quả đáng kể
1 Xử lý tín hiệu
Có rất nhiều ứng dụng xử lý tín hiệu có áp dụng mạng neuron mà một trong nhữngứng dụng đầu tiên chính là giảm thiểu nhiễu tín hiệu trên đường dây điện thoại Khi triểnkhai các đường dây điện thoại đường dài, hiện tượng nhiễu tín hiệu xảy ra với độ nhiễulớn, khiến cho chất lượng cuộc gọi giảm đi Người ta muốn độ nhiễu tại điểm đầu cuốithấp nhất nên phải tiến hành khử nhiễu tại trạm tín hiệu cuối Để khử nhiễu này, người ta
Trang 8dùng mô hình mạng ADALINE và huấn luyện nó để có thể loại bỏ các nhiễu từ tín hiệunhận được
2 Điều khiểnMột trong những ứng dụng của mạng Neuron trong điều khiển đó là điểu khiểnviệc nối đầu kéo của xe tải với khung tải hàng Đối với những tài xế có nhiều kinhnghiệm thì việc này không có gì khó khăn, nhưng đây là một vấn đề tương đối khó giảiquyết đối với những người lái xe thông thường Mạng Neuron được huấn luyện để họccách điều khiển đầu kéo sao cho vào đúng vị trí với khớp nối giữa đầu kéo và khung tải
Bên cạnh đó, mạng neuron còn được sử dụng trong những hệ thống lái xe tự động.ALVINN là một trong những dự án loại này, xe được trang bị một camera để thu tín hiệuđầu vào là khung cảnh trước mắt của xe Đầu tiên là việc huấn luyện, có một người lái xe
sẽ lái trên những đoạn đường khác nhau để giúp cho mạng học được các tình huống xử lýkhác nhau Sau khi huấn luyện xong, xe có khả năng chạy trên các đoạn đường khác nhau
và xử lý rất tốt trong các tình huống qua ngã rẽ hoặc đường có nhiều làn xe khác nhau
Nhận dạng mẫu là một trong những lĩnh vực thu hút được nhiều sự quan tâm củagiới khoa học nhất bởi có nhiều bài toán khó chưa được giải quyết trọn vẹn Một nhánhđộc lập của lĩnh vực này có liên quan mật thiết đến mạng Neuron chính là nhận dạng chữviết tay (kí tự chữ hoặc số) Đây là một bài toán khó bởi vì các mẫu chữ viết khác nhau ởkích cỡ, vị trí cũng như cách viết của từng người và những phương pháp truyền thốngkhông có khả năng giải quyết được Để có thể tìm ra được giải pháp cho bài toán trên,người ta sử dụng mạng lan truyền ngược và sau này là mạng neocognitron
Trang 9các triệu chứng và chẩn đoán đó Dù cấu trúc mạng rất đơn giản nhưng đã tỏ ra rất hiệuquả khi giải quyết bài toán kê toa thuốc.
5 Mô phỏng và nhận dạng giọng nói
Để làm cho máy tính nói được tiếng Anh là một việc rất khó, bởi vì cách nhấn âm,lên - xuống giọng phụ thuộc rất nhiều vào ngữ cảnh của câu Phương thức truyền thống
để giải quyết vấn đề trên là sử dụng cấu trúc lưu trữ lại tất cả từ vựng và các quy tắc trongviệc nói tiếng Anh kèm theo các bảng tra những trường hợp bất quy tắc Phương phápnày có hiệu suất không cao và thường rất chậm
Mô hình phát âm tiếng Anh đầu tiên sử dụng mạng Neuron được công bố làNETtalk của Sejnowski và Rosenberg Thay vì sử dụng cấu trúc lưu trữ từ vựng, nhữngquy tắc và bảng tra bất quy tắc thì NETtalk chỉ yêu cầu một tập dữ liệu mẫu bao gồm cáctrường hợp phát âm Sau khi được huấn luyện trêntập các trường hợp mẫu này, máy cókhả năng phát âm những từ mới với tỉ lệ sai rất thấp
D Cách thức ứng dụng mạng Neuron
Trong phần này ta sẽ đề cập đến cách thức ứng dụng của mạng Neuron trong cácgiải pháp một cách khái quát nhất, bao gồm kiến trúc tổng quát của một mạng Neuron vàcác phương pháp điều chỉnh trọng số (hay việc học) của mạng Neuron Những đặc trưngcủa từng loại mạng Neuron sẽ được trình bày sâu hơn ở những phần sau
Trang 101 Kiến trúc tổng quát của một mạng NeuronThông thường, mạng Neuron được chia thành các lớp Neuron (layer) Nhữngneuron thuộc cùng một lớp sẽ có những tính chất và hoạt động tương tự nhau Các neuronnày giống nhau ở chỗ chúng dùng cùng một loại hàm kích hoạt để tính toán giá trị đầu ra.Bên cạnh đó, chúng còn có cơ chế liên kết với các neuron khác cũng giống nhau Nếumột neuron A có các kết nối với neuron B thì tất cả các neuron cùng lớp với A cũng sẽ cóliên kết với neuron B đó Các lớp có thể có của một mạng Neuron bao gồm: lớp đầu vào(input layer), các lớp ẩn (hidden layers) và lớp đầu ra (output layer).
Mạng neuron thường được chia thành hai loại chính dựa vào kiến trúc mạng: mạngmột lớp và mạng nhiều lớp Số lớp của mạng được xác định là số lớp chứa các neuron cókhả năng tính toán và có liên kết trọng số với các neuron khác Vì lý do này nên lớp inputkhông được tính vào số lớp mạng, vì ở đây không xảy ra bất kì quá trình tính toàn nào.Trọng số của mạng Neuron là một yếu tố vô cùng quan trọng, là kết quả quá trình họccủa mạng Neuron và là thông số để tính toán kết quả khi ứng dụng mạng Neuron vàothực tiễn
Mạng Neuron còn được phân biệt theo cách thức lưu chuyển dòng dữ liệu Mạngfeedforward là mạng có luồng dữ liệu đi vào từ lớp input, được xử lý ở các lớp ẩn (nếucó) và cuối cùng sẽ được xuất ra tại lớp output Mạng recurrent là mạng có luồng dữ liệuvào tại các neuron và đầu ra của một neuron sẽ lại trở thành đầu vào của chính neuron đó
Trang 11Hình 3 Mạng Neuron recurrent
Mạng Neuron một lớp là mạng bao gồm một lớp neuron có liên kết trọng số.Thông thường, các đơn vị của mạng được phân biệt thành các đơn vị input và các đơn vịoutput Các đơn vị input đóng vai trò nhận các giá trị đầu vào của môi trường Còn cácđơn vị output chính là các neuron đảm nhận việc tính toán giá trị xuất cho mạng Mỗi đơn
vị input sẽ có các kết nối đến tất cả các đơn vị output và ngược lại Bên cạnh đó, giữa haiđơn vị input không có liên kết nào, tương tự với các đơn vị output
Hình 4 Mạng Neuron một lớp
Trang 12Đối với bài toán phân lớp, mỗi đơn vị đầu ra của mạng Neuron đại diện cho cáclớp chứa các đối tượng đại diện bởi vector đặc trưng đầu vào
3 Mạng nhiều lớpMạng nhiều lớp là mạng bao gồm một hay nhiều lớp nằm giữa lớp input và output,các lớp này được gọi là các lớp ẩn (hidden layers) Trong kiến trúc này, mỗi hai lớp kềnhau sẽ có một bộ các trọng số liên hệ tương ứng liên kết tất cả các neuron của lớp nàyvới lớp nọ Mạng nhiều lớp có khả năng giải quyết được nhiều bài toán phức tạp màmạng một lớp không thể làm được Tuy nhiên, việc huấn luyện mạng không hề đơn giảnchút nào
Hình 5 Mạng Neuron nhiều lớp
4 Thiết lập trọng số mạngBên cạnh kiến trúc mạng, cách thức thiết lập trọng số mạng (hay còn gọi là huấnluyện, học - training) cũng là một đặc trưng để phân biệt các mô hình mạng Neuron vớinhau Trong quá trình huấn luyện này, các trọng số mạng sẽ được điều chỉnh cho đến khiđáp ứng một tiêu chí đặt ra Hai hình thức huấn luyện được sử dụng cho mạng Neuron làhuấn luyện giám sát và không có giám sát Bên cạnh đó, một số mô hình mạng Neuronkhông có sự thay đổi trọng số trong quá trình huấn luyện mạng
Mạng Neuron được huấn luyện để giải quyết những lớp bài toán như: tìm ánh xạ,phân nhóm hoặc tối ưu hóa có ràng buộc Phân loại mẫu và đối chiếu mẫu là hai dạng bài
Trang 13toán đặc biệt của lớp bài toán ánh xạ, cụ thể là ánh xạ một vector hoặc một mẫu từ đầuvào đến một vector hoặc một mẫu của đầu ra
Huấn luyện có giám sát là quá trình huấn luyện mạng có sử dụng các mẫu huấnluyện Các mẫu này gồm hai phần : phần input và phần output Việc huấn luyện bắt đầubằng việc mạng sử dụng các input của các mẫu học để tìm ra output Sau đó, trên cơ sởđối chiếu các output này với các output của mẫu, mạng sẽ điều chỉnh các trọng số củamạng sao cho output của mạng gần giống với output mục tiêu nhất Việc điều chỉnh trọng
số như thế nào sẽ phụ thuộc vào thuật toán mà mạng sử dụng
Khác với huấn luyện có giám sát, việc huấn luyện không giám sát không sử dụngcác output đóng vai trò mục tiêu Thay vào đó, mạng sẽ tự gom nhóm các input có nhữngđặc điểm gần giống nhau nhất Vì lý do này mà mạng sử dụng phương pháp học nàyđược gọi là mạng tự tổ chức (self-organization neural nets)
Các mạng có trọng số cố định được sử dụng để giải quyết lớp bài toán tối ưu hóa
có ràng buộc Lớp bài toán này có lời giải là một đáp số mang tính gần đúng Mạng tươngứng với các bài toán này sẽ được thiết lập trọng số một các cố định để biểu diễn các ràngbuộc đối cực đại và cực tiểu Phương pháp máy Boltzmann và mạng Hofield liên tục lànhững mô hình mạng như vậy
5 Các hàm kích hoạt phổ biếnMột neuron trong mạng đảm nhận vai trò tính toán nhằm mục đích đưa ra kết quảcuối cùng Quá trình tính toán này bao gồm: (1)tính tổng các tích của các đầu vào củaneuron với trọng số tương ứng và (2) áp dụng một hàm kích hoạt đối với kết quả vừa tínhđược Đối với các đơn vị đầu vào, nếu ta xem chúng như những neuron thì hàm kích hoạtcủa chúng là hàm f x( )=x
do không có bất kì bước tính toán nào xảy ra ở đây Đối với
Trang 14neuron Bên cạnh đó, vì một số lý do, ta có thể áp dụng các hàm kích hoạt khác nhau chocác lớp khác nhau
Hình 6 Đồ thị hàm số f x( )=x
Mạng Neuron một lớp thường sử dụng hàm ngưỡng để chuyển đổi một giá trị thựcliên tục sang một giá trị nhị phân (0 hoặc 1) hoặc lưỡng cực (-1 hay 1), hàm ngưỡng cònđược gọi là hàm Heaviside Khi giá trị đầu vào của hàm lớn hơn hoặc bằng một giá trịngưỡng θ thì hàm sẽ trả về giá trị 1 Ngược lại, nếu giá trị đầu vào của hàm nhỏ hơnngưỡng θ thì hàm sẽ trả về giá trị 0 (hoặc -1)
1( )0
khi x
f x
khi x
θθ
Trang 15tại điểm đó có mối liên hệ đơn giản, giúp cho việc tính toán trở nên nhẹ nhàng hơn tronglúc huấn luyện mạng, nhờ đó cải thiện đáng kể năng suất của quá trình này
Hàm sigmoid nhị phân trả về các giá trị trong khoảng từ 0 đến 1 Những mạngNeuron sử dụng hàm kích hoạt sigmoid nhị phân có nhu cầu thu được giá trị nhị phânhoặc các giá trị nằm giữa 0 và 1 Hàm này còn được gọi là hàm vận chuyển (logisticfunction) Giá trị σ trong công thức dưới đây quyết định độ biến thiên của hàm
1( )
f x
e σ
=+
'( ) ( )[1 ( )]
f x =σ f x − f x
Hình 7 Đồ thị của hàm sigmoid nhị phân
Hàm sigmoid lưỡng cực thực chất là một biến thể của hàm sigmoid nhị phân, trả
Trang 16Hình 8 Đồ thị của hàm sigmoid lưỡng cực
Hàm tanh cũng nhận giá trị từ -1 đến 1 tuy nhiên sự biến thiên xảy ra nhanh hơn sovới hàm sigmoid lưỡng cực
'( ) [1 ( )][1 ( )]
h x = +h x −h x
Trang 17II Thuật giải di truyền
A Tổng quan về thuật giải di truyền
Thuật giải di truyền là một kỹ thuật của khoa học máy tính được dùng để tìm kiếmlời giải cho các bài toán tối ưu tổ hợp hay các bài toán chưa có thuật toán để tìm chính xác lời giải Thuật giải di truyền sử dụng ngôn ngữ máy tính để mô phỏng lại quá trình tiến hóa tự nhiên của một tập các đối tượng trừu tượng (gọi là quần thể) Mỗi đối tượng trừu tượng (gọi là các nhiễm sắc thể) đại diện cho một giải pháp khả dĩ (gọi là cá thể) củabài toán tối ưu hóa Ngoài ra, mỗi giải pháp thường liên quan đến nhiều yếu tố, gọi là các biến Vì thế, các nhiễm sắc thể tương ứng cũng gồm nhiều phần tử, mỗi phần tử được gọi
là một gen
Tập các giải pháp này sẽ tiến triển theo hướng chọn lọc những giải pháp tốt hơn Việc xác định giải pháp nào tốt hơn được thực hiện bởi một hàm gọi là hàm mục tiêu hoặc hàm thích nghi Các giải pháp tốt được kết hợp với nhau với hi vọng sẽ tạo ra các giải pháp tốt hơn
Quá trình tiến hóa bắt đầu từ một tập các cá thể ngẫu nhiên, và do đó, hầu hết chúng không phải là các lời giải tốt Qua từng thế hệ, độ thích nghi của từng cá thể được xác định Các cá thể được chọn lọc theo cách có định hướng (chọn cá thể tốt theo độ thích nghi) từ tập hiện thời Sau đó, các cá thể này được biến đổi bằng cách lai ghép hay đột biến để tạo ra các cá thể mới Việc này được thực hiện lặp đi lặp lại qua các thế hệ tiếp theo và cuối cùng, giải thuật cho ra lời giải tối ưu hoặc gần tối ưu
Xác định độ thích nghi của từng nhiễm sắc thể trong quần thể ở thế hệ thứ t, lập bảng cộng dồn các giá trị thích nghi (theo thứ tự gán cho từng nhiễm sắc thể) Giả sử,
quần thể có n cá thể Gọi độ thích nghi của nhiễm sắc thể i tương ứng là fi tổng cộng dồn