Nghiên cứu mô hình học sâu (deep learning) và ứng dụng trong nhận dạng chữ viết tay

72 1.7K 7
Nghiên cứu mô hình học sâu (deep learning) và ứng dụng trong nhận dạng chữ viết tay

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i    LỜI CAM ĐOAN Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày  trong luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn  khoa học của TS Vũ Tất Thắng Viện công nghệ thông tin thuộc Viện Khoa  học và Công nghệ Việt Nam Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc.   Thái Nguyên, ngày 20 tháng năm 2016   Học viên Vũ Mạnh Hùng ii    LỜI CẢM ƠN Tôi xin gửi lời cảm ơn tới trường Đại học CNTT&TT – Đại học Thái Nguyên tạo điều kiện tổ chức khóa học để có điều kiện tiếp thu kiến thức có thời gian để hoàn thành Luận văn Cao học Tôi xin cảm ơn TS.Vũ Tất Thắng, người tận tình dẫn suốt trình xây dựng đề cương hoàn thành luận văn Tôi xin chân thành cảm ơn thày cô truyền đạt cho kiến thức quý báu trình học Cao học làm Luận văn Tôi chân thành cảm ơn bạn bè, anh chị em lớp cao học K13 giúp đỡ, đóng góp ý kiến chia kinh nghiệm học tập, nghiên cứu suốt khóa học Cuối kính gửi thành đến gia đình người thân tôi, người hết lòng chăm sóc, dạy bảo động viên để có kết ngày hôm Mặc dù cố gắng hoàn thành Luận văn phạm vi khả cho phép chắn không tránh khỏi thiếu sót Xin kính mong nhận cảm thông tận tình bảo quý Thầy Cô bạn Thái Nguyên, ngày 20 tháng năm 2016     Học viên Vũ Mạnh Hùng iii    MỤC LỤC LỜI CAM ĐOAN i  LỜI CẢM ƠN ii  MỤC LỤC iii  DANH MỤC ẢNH v  DANH MỤC BẢNG BIỂU vi  LỜI MỞ ĐẦU 1  CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 4  1.1. Giới thiệu về bài toán nhận dạng   4  1.1.1.  Các giai đoạn phát triển  . 4  1.1.2.  Tình hình nghiên cứu trong nước  . 5  1.1.3.  Tình hình nghiên cứu ở nước ngoài   6  1.2. Các bước xử lý cho bài toán nhận dạng hoàn chỉnh  . 7  1.3. Kết luận chương   9  CHƯƠNG 2: MÔ HÌNH MẠNG NEURON VÀ MÔ HÌNH HỌC SÂU 11  2.1. Tổng quan về mô hình mạng neuron   11  2.1.1.  Giới thiệu về mạng Neuron   11  2.1.1.1. Định nghĩa:   11  2.1.1.2. Lịch sử phát triển mạng neuron  . 11  2.1.1.3. So sánh mạng neuron với máy tính truyền thống   14  2.1.2.  Cấu trúc và hoạt động của mạng Neuron   15  2.1.2.1. Neuron sinh học   15  2.1.2.2. Cấu trúc của một neuron  . 17  2.1.2.3. Hoạt động của mạng neuron   19  2.1.2.4. Hàm truyền   25  2.1.3.  Mô hình và huấn luyện trong bài toán nhận dạng  . 26  2.1.3.1. Mạng neuron và bài toán phân loại mẫu   26  2.1.3.2. Khả năng học và tổng quát hóa  . 27  2.1.3.3. Các phương pháp huấn luyện mạng   27  2.2. Mô hình học sâu   29  2.2.1.  Mạng nhiều tầng truyền thẳng (MLP)   29  2.2.1.1. Chuẩn bị dữ liệu   30  a.  Kích thước mẫu  30  b.  Mẫu con   32  c.  Sự phân tầng mẫu   32  d.  Chọn biến  33  2.2.1.2. Xác định các tham số cho mạng   34  iv    a.  Chọn hàm truyền   34  b.  Xác định số neuron tầng ẩn   35  c.  Khởi tạo trọng   36  2.2.1.3. Vấn đề lãng quên (catastrophic forgetting)   37  2.2.1.4. Vấn đề quá khớp   38  a.  Khái niệm quá khớp   38  b.  Giải quyết quá khớp   38  2.2.2.  Hopfield Network   39  2.2.2.1. Cấu trúc mạng Hopfield   40  2.2.2.2. Mạng Hopfield rời rạc   42  2.2.2.3. Mạng Hopfield liên tục   43  2.2.3.  Boltzmann Machines  . 45  2.2.4.  Restricted Boltzmann Machines  . 49  2.2.5.  Thuật toán lan truyền ngược   50  2.3. Kết luận chương   52  CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 53  3.1. Môi trường thực nghiệm   53  3.2. Dữ liệu thực nghiệm  53  3.3. Huấn luyện mô hình và kết quả thực nghiệm với mô hình MLP   54  3.3.1.  Mô hình huấn luyện   54  3.3.2.  Kết quả thực nghiệm   54  3.4. Huấn luyện mô hình và kết quả thực nghiệm với mô hình RBM  . 56  3.4.1.  Mô hình huấn luyện   56  3.4.1.1. Cấu trúc mô hình   56  3.4.1.2. Phương pháp huấn luyện và quy trình nhận dạng   57  3.4.2.  Giao diện chính của chương trình   58  3.4.3.  Kết quả thực nghiệm   60  3.5. Đánh giá kết quả thực nghiệm của hai mô hình.   61  3.6. Kết luận chương   62  KẾT LUẬN CHUNG 63  1.  Các kết quả đã đạt và chưa đạt được   63  2.  Hướng nghiên cứu và phát triển   63  TÀI LIỆU THAM KHẢO 65  v    DANH MỤC ẢNH Hình 1- 1: Các bước trong nhận dạng chữ viết tay   7  Hinh 2- 1: Cấu trúc của một neuron sinh học điển hình   16  Hinh 2- 2: Cấu trúc của một neuron   18  Hinh 2- 3: Cấu trúc chung của mạng neuron   20  Hinh 2- 4: Mạng tự kết hợp   22  Hinh 2- 5: Mạng kết hợp khác kiểu   22  Hinh 2- 6: Mạng truyền thẳng   23  Hinh 2- 7: Mạng phản hồi   23  Hinh 2- 8: Perceptron   24  Hinh 2- 9: Mạng MLP tổng quát   29  Hinh 2- 10: Mối liên hệ giữa sai số và kích thước mẫu  . 31  Hinh 2- 11: Huấn luyện luân phiên trên hai tập mẫu   37  Hinh 2- 12: Cấu trúc của mạng Hopfield   40  Hinh 2- 13: Đồ thị hàm satlins   41  Hinh 2- 14: Mạng Hopfield liên tục sử dụng mạch điện tử.   44  Hinh 2- 15: Một Boltzmann Machine với 3 nút ẩn  . 45  Hinh 2- 16:Một RBM đơn giản với 3 hidden units và 2 visible units.   49  Hình 3- 1: Mô hình huấn luyện mạng (MLP)  . 54  Hình 3- 2: Mô hình huấn luyện mạng (RBM)  . 56  Hình 3- 3: Giao diện chính của chương trình nhận dạng chữ viết tay   58  Hình 3- 4: Chương trình khi nhận dạng 1 ảnh bất kỳ   59  Hình 3- 5: Chương trình khi nhận dạng toàn bộ ảnh trong một thư mục  . 59  Hình 3- 6: Nhận dạng bằng mô hình RBM có kết quả sai chữ với M   60    vi    DANH MỤC BẢNG BIỂU   Bảng 2- 1: Các hàm truyền cơ bản   26  Bảng 2- 2: Thuật toán lan truyền ngược  . 52  Bảng 3- 1: Kết quả thực nghiệm sử dụng mô hình MLP  . 55  Bảng 3- 2: Chi tiết kết quả thực nghiệm sử dụng mô hình MLP   55  Bảng 3- 3: Kết quả thực nghiệm sử dụng mô hình RBM   60  Bảng 3- 4: Chi tiết kết quả thực nghiệm sử dụng mô hình RBM   60  Bảng 3- 5: Bảng so sánh kết quả giữa hai mô hình  . 61    1    LỜI MỞ ĐẦU Nhận dạng chữ viết tay là bài toán khó trong lớp các bài toán nhận dạng  chữ, và vẫn luôn thu hút được nhiều sự quan tâm nghiên cứu của các nhà khoa  học. Đặc biệt là trong vài thập niên gần đây, do sự thúc đẩy của quá trình tin  học hóa trong mọi lĩnh vực, ứng dụng nhận dạng chữ càng có nhiều ý nghĩa  khi  được  sử  dụng  cho  các  bài  toán  trong  thực  tế.  Cũng  như  nhiều  bài  toán  nhận dạng tiếng nói, hình ảnh… khác, thì độ chính xác của hệ thống vẫn tiếp  tục  cần  phải  cải  thiện  nhằm  vươn  tới  khả  năng  nhận  dạng  giống  như  con  người.  Tuy nhiên, với bài toán nhận dạng chữ viết tay thì vấn đề trở nên phức  tạp hơn nhiều so với bài toán nhận dạng chữ in thông thường ở những vấn đề  sau đây:  Với chữ viết tay thì không thể có các khái niệm font chữ, kích cỡ chữ.  Các  kí  tự  trong  một  văn  bản  chữ  viết  tay  thường  có  kích  thước  khác  nhau.  Thậm chí, cùng một kí tự trong một văn bản do một người viết nhiều khi cũng  có độ rộng, hẹp, cao, thấp khác nhau,    Với những người viết khác nhau chữ viết có độ nghiêng khác nhau (chữ  nghiêng nhiều/ít, chữ nghiêng trái/phải ).  Các kí tự  của  một từ trên văn bản  chữ viết  tay  đối với hầu hết người  viết thường bị dính nhau vì vậy rất khó xác định được phân cách giữa chúng.  Các  văn  bản  chữ  viết  tay  còn  có  thể  có  trường  hợp  dính  dòng  (dòng  dưới bị dính hoặc chồng lên dòng trên).  Trong những năm gần đây, mô hình mạng Neuron theo hướng học sâu  đã  cho  thấy  những  kết  quả  tốt  trong  nhiều  bài  toán  khác  nhau,  trong  đó  có  nhận dạng chữ.  2    Xuất phát từ yêu cầu thực tế, đang rất cần có nhưng nghiên cứu về vấn  đề này. Chính vì vậy học viên đã chọn đề tài “Nghiên cứu mô hình học sâu  (deep-learning) và ứng dụng trong nhận dạng chữ viết tay” làm luận văn tốt  nghiệp với mong muốn phần nào áp dụng vào bài toán thực tế.  Bài toán đã đặt ra phải giải quyết được những yêu cầu sau:   Nhận dạng được các ký tự từ ảnh đầu vào   Tiến hành nhận dạng kí tự đơn lẻ sử dụng mạng Neuron nhân tạo  theo  phương  pháp  học  sâu  Restricted  Boltzmann  machine  (RBM).   Đánh giá kết quả và so sánh với mô hình mạng neuron  Với những yêu cầu đã đặt ra ở trên, cấu trúc của luận văn sẽ bao gồm  những nội dung sau đây:   Chương 1: Tổng quan đề tài Giới  thiệu  về  bài  toán  nhận  dạng  chữ  viết  tay,  tình  hình  nghiên  cứu  trong  và  ngoài  nước,  quy  trình  chung để  giải  quyết  bài  toán  và  các  phương  pháp điển hình trong việc huấn luyện nhận dạng, phạm vi của đề tài.   Chương 2: Mô hình mạng neuron mô hình học sâu Trình bày về cơ sở lý thuyết của mô hình neuron và huấn luyện trong  bài  toán  nhận  dạng  chữ  viết  tay.  Cơ  sở  lý  thuyết  của  mô  hình  học  sâu:  Hopfield  network,  Boltzmann Machines,  Restricted  Boltzmann  Machines  và  thuật toán lan truyền ngược.   Chương 3: Kết thực nghiệm đánh giá Trình bày các kết quả thực nghiệm của hai mô hình mạng neuron và mô  hình học  sâu, đưa ra  kết quả đánh giá nhận dạng chữ viết tay giữa  mô hình  mạng neuron và mô hình học sâu.      3        4    CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu toán nhận dạng Nhận  dạng  chữ  in:  đã  được  giải  quyết  gần  như  trọn  vẹn  (sản  phẩm  FineReader 11 của hãng ABBYY có thể nhận dạng chữ in theo 192 ngôn ngữ  khác  nhau,  phần  mềm  nhận  dạng  chữ  Việt  in  VnDOCR  4.0  của  Viện  Công  nghệ  Thông  tin  –  Viện  Hàn  lâm  Khoa  học  và  Công  nghệ  Việt  Nam  có  thể  nhận dạng được các tài liệu chứa hình ảnh, bảng và văn bản với độ chính xác  trên 98%).  Nhận  dạng  chữ  viết  tay  vẫn  còn  là  vấn đề  thách  thức  lớn đối  với  các  nhà  nghiên cứu.  Bài toàn này  chưa thể giải quyết  trọn  vẹn được  vì  nó hoàn  toàn phụ thuộc vào người viết và sự biến đổi quá đa dạng trong cách viết và  trạng thái sức khỏe, tinh thần của từng người viết.  1.1.1 Các giai đoạn phát triển  Giai đoạn (1900 - 1980) Nhận  dạng  chữ  được  biết  đến  từ  năm  1900,  khi  nhà  khoa  học  người  Nga Alan Turing (1912-1954) phát triển một phương tiện trợ giúp cho những  người mù.  Các  sản  phẩm  nhận  dạng  chữ  thương  mại  có  từ  những  năm1950,  khi  máy tính lần đầu tiên được giới thiệu tính năng mới về nhập và lưu trữ dữ liệu  hai chiều bằng cây bút viết trên một tấm bảng cảm ứng. Công nghệ mới này  cho phép các nhà nghiên cứu làm việc trên các bài toán nhận dạng chữ viết  tay online.  Mô hình nhận dạng chữ viết được đề xuất từ năm 1951 do phát  minh  của M. Sheppard được gọi là GISMO, một robot đọc-viết.  Năm  1954,  máy  nhận  dạng  chữ  đầu  tiên  đã  được  phát  triển  bởi  J.  Rainbow dùng để đọc chữ in hoa nhưng rất chậm.  52    Bảng 2- 2: Thuật toán lan truyền ngược Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn  có một số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc  đều tốt. Khó khăn chủ  yếu là ở quá trình huấn luyện lâu. Có thể do nhịp độ  học và động lực không tối ưu. Sự sai sót trong việc huấn luyện nói chung xuất  hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương.  Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị  rất lớn. Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà  đạt giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn  vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1. Giá trị hiệu chỉnh trọng  số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo.  Cực tiểu địa phương: bề  mặt sai số của  mạng rất phức tạp đầy những  ngọn đồi và những thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy  tại  một  cực  tiểu  địa  phương  khi  có  nhiều  cực  tiểu  thấp  hơn  gần  bên  cạnh.  Những phương pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng  làm chậm. Một phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ  làm  việc  trong  không  gian sai  số  nhiều  chiều,  nên  cơ  hội gặp  bẫy  nhỏ  hơn.  Tuy nhiên việc tăng cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội  mắc bẫy lại tăng lên.  2.3 Kết luận chương Trong chương này được trình bày chủ yếu về mô hình Mạng nhiều tầng  truyền thẳng (MLP) và mô hình học sâu (mô hình mạng neuron nhân tạo theo  phương pháp học sâu). Ngoài ra, chương này còn trình bày một số lý thuyết  về  mạng  neuron  nhân  tạo  và  một  số  đặc  trung  của  nó.  Bên  cạnh  đó,  trong  chương  này  trình  bày  thêm  về  thuật  toán  lan  truyền  ngược  được  ứng  dụng  trong quá trình huấn luyện mạng của mô hình học sâu.  53    CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM   3.1 Môi trường thực nghiệm Chương  trình  được  thử  nghiệm  trên  hệ  điều  hành  Windows  10,  máy  tính PC core i7 tốc độ 3.40GHz, bộ nhớ 8GB RAM.   Đối với mô hình MLP:Chương  trình  được  cài  đặt  trên  ngôn  ngữ  Python 2.7.6, sử dụng thư viện sklearn (scikit - learn) và một số thư viện bổ  trợ khác như: matplotlib, numpy, scipy.  Thư viện này là thư viện mã nguồn  mở chứa các thuật toán được sử dụng trong Data Mining.  Đối với mô hình RBM: Chương trình được cài đặt trên Matlab và sau  khi huấn luyện xong mô hình, học viên sử dụng bộ trọng số của mô hình để  xây dựng chương trình ứng dụng nhận dạng ký tự viết tay trên ngôn ngữ C#.  Trong mô hình này học viên có tham khảo một số tài liệu và mã nguồn của  nhóm nghiên cứu do Giáo sư Hinton của đại học Toronto, Canada phụ trách.  Trong khi huấn luyện mô hình, học viên đã thay đổi và sửa chữa một số các  thông số của mô hình để đảm bảo về mặt tài nguyên cũng như tốc độ chạy của  chương trình. Trong quá trình xây dựng mô hình, học viên có thêm vào lớp  RBM để nâng cao chất lượng của mô hình.  3.2 Dữ liệu thực nghiệm Ở đây, học viên đã tiến hành nhận dạng ký tự với các bộ dữ liệu thực  nghiệm:  Bộ dữ liệu chữ viết tay của người Việt được trích xuất từ các phiếu số 1  trong kì thi tuyển sinh đại học, cao đẳng năm 2013. Bộ dữ liệu này được học  viên trích xuất từ các phiếu số 1 của kì thi tuyển sinh đại học, cao đẳng năm  2013 gồm 60.000 mẫu học (gồm các ký tự A, B, C, D, H, K, L, M, N, P, mỗi  ký tự chứa 6.000 mẫu học) và 10.000 mẫu thử (gồm các ký tựA, B, C, D, H,  K, L, M, N, P, mỗi ký tự chứa 1.000 mẫu thử).  54    3.3 Huấn luyện mô hình kết thực nghiệm với mô hình MLP 3.3.1 Mô hình huấn luyện Hình 3- 1: Mô hình huấn luyện mạng (MLP) Trong mô hình MLP học viên sử dụng hai lớp ẩn để huấn luyện với các  thông số như sau:  Lớp đầu vào (Visible Units): Với 784 nút đầu vào, mỗi một nút đầu vào  đại  diện  cho  một  điểm  ảnh,  với  giá  trị  là  mức  xám  của  điểm  ảnh  đó  (0    255).  Các lớp ẩn (Hidden Units): Tại các lớp này học viên sử dụng 2 lớp ẩn  với các lớp tương ứng với 800, 800 nút.  Lớp đầu ra (Visible Units): Gồm có 10 nút, mỗi nút tương ứng với giá trị  của các chữ cái (A, B, C, D, H, K, L, M, N, P).  3.3.2 Kết thực nghiệm Với việc sử dụng  môi trường thực nghiệm và bộ dữ liệu thực nghiệm  như trên, học viên rút ra một số kết luận như sau:  55      Bảng 3- 1: Kết thực nghiệm sử dụng mô hình MLP Các thông số Bộ liệu Tuyển Sinh Số mẫu học  60.000  Số mẫu nhận dạng  10.000  Thời gian học  > 30 giờ  Thời gian nhận dạng 

Ngày đăng: 16/04/2017, 17:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan