LỜI MỞ ĐẦU Mạng Nơron Nhân Tạo -Artificial Neural Network (ANN) là một mạng có khả năng mô phỏng và học rất hiệu quả. ANN có thể mô phỏng gần nhƣ bất cứ hàm mục tiêu nào với số biến nhập và xuất tuỳ ý, ở điểm này thì có lẽ chƣa có một phƣơng pháp nào trƣớc đây đạt đƣợc. ANN còn có một ƣu điểm tuyệt vời khác, đó là khả năng học. Một ANN gần giống nhƣ một đối tƣợng có thể tƣ duy.
Mỗi khi có kiến thức mới (Data mới) ta lại đƣa cho ANN học. Khả năng này của mạng nơron nhân tạo là rất cần thiết cho các vấn đề có dữ liệu luôn thay đổi, cập nhật nhƣ các bài toán về nhận dạng mà tôi đang nghiên cứu. Học sâu – deep learning (hay còn gọi là học có cấu trúc sâu – deep structured learning, học nhiều lớp – hierarchical hoặc học máy sâu – deep machine learning) là một nhánh của học máy dựa trên tập các giải thuật cố gắng trừu tƣợng hóa dữ liệu bởi nhiều tầng với cấu trúc phức tạp và nhiều biến đổi phi tuyến. Học sâu là một nhánh lớn của phƣơng pháp học máy dựa trên việc học cách biểu diễn dữ liệu.
Ví dụ một bức ảnh có thể biểu diễn theo nhiều cách nhƣ một véc tơ giá trị mức xám của điểm ảnh hoặc theo cách trừu tƣợng hơn là một tập các biên, các vùng của hình khối cụ thể,… Nhiều kiến trúc học sâu nhƣ mạng nơron sâu (deep neural networks), mạng nơron tích chập và mạng hồi quy đã đƣợc áp dụng trong các lĩnh vực nhƣ thị giác máy, tự động nhận dạng tiếng nói, xử lí ngôn ngữ tự nhiên, nhận dạng âm thanh và tin sinh học đã thu đƣợc kết quả tiến bộ. Hiện nay rất nhiều các bài toán nhận dạng sử dụng học sâu để giải quyết do học sâu có thể giải quyết các bài toán với kích thƣớc đầu vào lớn với hiệu năng cũng nhƣ độ chính xác vƣợt trội so với các phƣơng pháp phân lớp truyền thống. Những năm gần đây, ta đã chứng kiến đƣợc nhiều thành tựu vƣợt bậc trong ngành Thị giác máy tính (Computer Vision). Các hệ thống xử lý ảnh lớn nhƣ Facebook, Google hay Amazon đã đƣa vào sản phẩm của mình những chức năng thông minh nhƣ nhận diện khuôn mặt ngƣời dùng, phát triển xe hơi tự lái,.
Mạng nơron tích chập (Convolutional Neural Networks- CNNs) là một trong những mô hình học sâu tiên tiến giúp cho chúng ta xây dựng đƣợc những hệ thống thông minh với độ chính xác cao nhƣ hiện nay. Mạng nơron tích chập là một kiểu (LUAN.xe 10 TIEU LUAN MOI download : skknchat@gmail.xe mạng nơron truyền thẳng đặc biệt mà có thể kết xuất các thuộc tính hình học trong một bức ảnh. Mạng nơron tích chập có thể nhận dạng ảnh có nhiều thay đổi, kết quả nhận dạng độ chính xác và tốc độ cao. Trong luận văn cao học này, em đi vào nghiên cứu về mạng nơron tích chập và ý tƣởng của mô hình mạng nơron tích chập trong phân lớp ảnh (Image Classification), và áp dụng trong việc xây dựng hệ thống nhận dạng biển số xe tự động Nội dung bài báo cáo bao gồm 3 chƣơng.
Chƣơng 1: Mạng nơron và mạng nơron tích chập. Chƣơng 2: Tổng quan về nhận dạng biển số xe. Chƣơng 3: Áp dụng mạng nơron tích chập trong nhận dạng ký tự (LUAN.xe 11 TIEU LUAN MOI download : skknchat@gmail.xe CHƢƠNG 1: MẠNG NƠRON VÀ MẠNG NƠRON TÍCH CHẬP 1. Mạng nơron và mạng nơron lan truyền ngƣợc 1.
Giới thiệu về mạng Nơron Đị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 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.
Cấu trúc nơron nhân tạo: x1 Wk x2 Wk Hàm truyền ⬚ f (. xN Wk Ngƣỡng Đầu vào Trọng số liên kết Hình 1. Cấu tạo một Nơron Các thành phần cơ bản của một nơron nhân tạo bao gồm: • Tập các đầu vào: Là các tín hiệu vào (đầu vào signals) của nơron, các tín hiệu này thƣờng đƣợc đƣa vào dƣới dạng một vector N chiều. • Tập các liên kết: Mỗi liên kết đƣợc thể hiện bởi một trọng số liên kết – Synaptic weight.
Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thƣờng đƣợc kí hiệu là wkj. Thông thƣờng, các trọng số này đƣợc khởi tạo một cách (LUAN.xe 12 TIEU LUAN MOI download : skknchat@gmail.xe ngẫu nhiên ở thời điểm khởi tạo mạng và đƣợc cập nhật liên tục trong quá trình học mạng. • Bộ tổng (Summing function): Thƣờng dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. • Ngƣỡng (còn gọi là một độ lệch - bias): Ngƣỡng này thƣờng đƣợc đƣa vào nhƣ một thành phần của hàm truyền.
• Hàm truyền (Transfer function): Hàm này đƣợc dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngƣỡng. • Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra. Xét về mặt toán học, cấu trúc của một nơron k, đƣợc mô tả bằng cặp biểu thức sau: và yk = f(uk- bk) Trong đó: x1, x2, ., xp: là các tín hiệu vào; (wk1, wk2,., wkp) là các trọng số liên kết của nơron thứ k; uk là hàm tổng; bk là một ngƣỡng; f là hàm truyền và yk là tín hiệu đầu ra của nơron.
Nhƣ vậy nơron nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu đƣợc rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền).xe 13 TIEU LUAN MOI download : skknchat@gmail. Một số hàm truyền thông dụng Hàm truyền Đồ thị Định nghĩa Symmetrical Hard y = 1 với x >= 0 Limit (hardlims) y = -1 với x < 0 Linear (purelin) y=x y = 0 với x < 0 Saturating Linear y = x với 0 <=x<= 1 (satlin) y = 1 với x>1 Log-Sigmoid y = 1/(1+e-x) (logsig) Hàm Tanh y = (ex-e-x)/(ex+e-x) (Hypebol) 1. Kiến trúc mạng truyền thẳng Có nhiều kiểu kiến trúc về mạng nơron nhƣng trong phần này ta nghiên cứu về mạng nơron truyền thẳng.xe 14 TIEU LUAN MOI download : skknchat@gmail.xe Mạng truyền thẳng nhiều lớp bao gồm một lớp vào, một lớp ra và 1 hoặc nhiều lớp ẩn. Các nơron đầu vào thực chất không phải là nơron theo đúng nghĩa, bởi lẽ chúng không thực hiện bất kì một tính toán nào trên dữ liệu vào, đơn giản nó chỉ tiếp nhận các dữ liệu vào và chuyển cho các lớp kế tiếp.
Các nơron lớp ẩn và lớp ra mới thực hiện các tính toán, kết quả đƣợc định dạng bởi hàm đầu ra (hàm truyền). Cụm từ “truyền thẳng” (feed forward) không phải trái nghĩa của lan truyền ngƣợc mà liên quan đến một thực tế là tất cả các nơron chỉ có thể đƣợc kết nối theo một hƣớng: tới một hay nhiều các nơron khác trong lớp kế tiếp. Tầng vào Tầng ẩn Tầng ra Hình 1. Mạng truyền thẳng 1.
Mạng nơron truyền thẳng và thuật toán lan truyền ngƣợc a. Kiến trúc mạng nơron truyền thẳng nhiều tầng Mô hình mạng nơron đƣợc sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng. Một mạng truyền thẳng nhiều tầng tổng quát là mạng có n (n≥2) tầng (thông thƣờng tầng đầu vào không đƣợc tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn.xe 15 TIEU LUAN MOI download : skknchat@gmail.xe Tầng vào Tầng ẩn 1 Tầng ẩn n-1 Tầng ra. Mạng nơron truyền thẳng nhiều tầng Kiến trúc của một mạng nhiều tầng truyền thẳng tổng quát có thể mô tả nhƣ sau: ♦ Đầu vào là các vector (x1, x2, ., xp) trong không gian p chiều, đầu ra là các vector (y1, y2, ., yq) trong không gian q chiều.
Đối với các bài toán phân loại, p chính là kích thƣớc của mẫu đầu vào, q chính là số tầng cần phân loại. Xét ví dụ trong bài toán nhận dạng chữ số: với mỗi mẫu ta lƣu tọa độ (x,y) của 8 điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 tầng tƣơng ứng với 10 chữ số 0, 1, …, 9. Khi đó p là kích thƣớc mẫu và bằng 8 x 2 = 16; q là số tầng và bằng 10. ♦ Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trƣớc nó.
♦ Đầu ra của nơron tầng trƣớc là đầu vào của nơron thuộc tầng liền sau nó. Hoạt động của mạng nhƣ sau: tại tầng đầu vào các nơron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ đƣợc truyền tới các nơron thuộc tầng ẩn thứ nhất; các nơron tại đây tiếp nhận nhƣ là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2;…; quá trình tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả. Một số kết quả đã đƣợc chứng minh: ♦ Bất kì một hàm Boolean nào cũng có thể biểu diễn đƣợc bởi một mạng MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid.xe 16 TIEU LUAN MOI download : skknchat@gmail.xe ♦ Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng truyền thẳng 2 tầng sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra với sai số nhỏ tùy ý. ♦ Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng truyền thẳng 3 tầng sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra.
Học có giám sát trong các mạng nơron Học có giám sát có thể đƣợc xem nhƣ việc xấp xỉ một ánh xạ: X→ Y, trong đó X là tập các vấn đề và Y là tập các lời giải tƣơng ứng cho vấn đề đó., ym) ∈ Y đƣợc cho trƣớc. Học có giám sát trong các mạng nơron thƣờng đƣợc thực hiện theo các bƣớc sau: ♦ B1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1) nơron vào (n nơron cho biến vào và 1 nơron cho ngƣỡng x0), m nơron đầu ra, và khởi tạo các trọng số liên kết của mạng.