1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Máy học và ứng dụng Sử dụng mạng nơron đa lớp để xây dựng ứng dụng nhận dạng chữ viết tay

29 1,3K 10

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 1,12 MB

Nội dung

Báo cáo đồ án Máy học và ứng dụng Sử dụng mạng nơron đa lớp để xây dựng ứng dụng nhận dạng chữ viết tay    !"#!!#$ Mục lục Mục lục 2 A.CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC 3 I.Định nghĩa máy học : 4 II.Phân loại máy học 6 1)Học có giám sát (Supervised Learning) 7 2)Học không giám sát: (Unsupervised Learning) 8 3)Học nửa giám sát 9 4)Một số thuật toán máy học : 9 B.CHƯƠNG II: MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO 10 I.Mạng neural nhân tạo: cấu trúc, nguyên tắc hoạt động và các giải thuật huấn luyện 10 1.Cấu trúc của mạng nơron nhân tạo 10 2.Nguyên tắc họat động mạng neural nhân tạo 13 3.Huấn luyện mạng neural : 14 II.Ứng dụng demo: Nhận dạng chữ viết tay 22 1.Mục đích chương trình 22 2.Mô tả chương trình 23 A. CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC Học, như trí thông minh, được mọi sinh vật áp dụng mọi nơi, mọi lúc trong nhiều hoàn cảnh khác nhau nên khó có thể định nghĩa một cách chính xác như chúng ta mong muốn. Các từ điển thì định nghĩa như sau: “Học giúp đạt được tri thức, hay gia tăng hiểu biết, hay có thêm kỹ năng trong một lãnh vực, là thực hiện công việc nghiên cứu tìm hiểu, thực hiện các chỉ dẫn, hay là áp dụng các kinh nghiệm tích lũy từ quá khứ vào hiện tại và tương lai” và “Học là điều chỉnh để cải thiện hành vi ứng xử theo kinh nghiệm đạt được”, … Máy học là môn khoa học nghiên cứu kết hợp song song nhiều ngành khác nhau như khoa học máy tính, tâm lý học, động vật học và như vậy có nhiều vấn đề kỹ thuật trong máy học xuất phát từ các cố gắng của các nhà tâm lý học, nhà nghiên cứu về động vật để có thể mô phỏng chính xác hơn các lý thuyết về phương pháp học của con người hay động vật ứng dụng vào các mô hình thuật toán trên máy tính. Cũng cần nói thêm rằng các khái niệm và kỹ thuật được phát triển trong máy học cũng soi sáng trở lại nhiều khía cạnh được ẩn dấu trong quá trình học của sinh vật. Từ góc nhìn của khoa học máy tính, chúng ta có thể nói máy tính luôn luôn học ở bất kỳ nơi nào khi mà có sự biến đổi về cấu trúc, có sự thay đổi trong chương trình hay dữ liệu (các thay đổi dựa trên các dữ liệu vào hay dựa vào việc hồi đáp các thông tin từ bên ngoài), máy tính học theo cách cải thiện công việc mà nó thực hiện trong tương lai. Nhưng có những thay đổi như thêm một record vào cơ sở dữ liệu hay đơn giản là xóa tập tin thì không gọi là học. Và ví dụ, sau khi nghe vài mẫu giọng nói của con người máy tính tăng khả năng nhận dạng giọng nói, thì chúng ta hoàn toàn có thể nói là máy tính đã học. Máy học thường dùng khi hệ thống có sự biến đổi kết hợp với việc cải tiến chức năng nhờ vào áp dụng trí thông minh nhân tạo. Sự biến đổi hệ thống có thể hiểu một cách mở rộng như hoàn thiện hệ thống hay khởi tạo hệ thống mới. Mọi người có thể tự hỏi: “Tại sao máy tính cần phải học? Tại sao không thiết kế máy tính để nó thực hiện công việc mà chúng ta mong muốn ngay từ đầu?” Có vài lý do tại sao việc máy tính có thể học là quan trọng, nhất là về mặt kỹ thuật : • Có vài công việc chúng ta không thể xác định một cách rỏ ràng khi thiết kế, ví dụ : chúng ta có thể chỉ ra dữ liệu nhập hay dữ liệu xuất nhưng khó nắm bắt được mối quan hệ giữa chúng với nhau. Chúng ta mong muốn máy tính có khả năng thêm vào cấu trúc của nó chức năng điều chỉnh các dữ liệu xuất cho phù hợp cả với các dữ liệu nhập khi nó rất lớn hay thể hiện được một cách gần đúng ràng buộc trong các quan hệ ẩn giấu của dữ liệu. • Máy học có khả năng lấy ra và thể hiện các quan hệ hay tương quan quan trọng trong dữ liệu. • Thiết kế của con người không thể tính hết các biến đổi trong môi trường làm việc của máy tính. • Toàn bộ các tri thức có giá trị của con người thì quá lớn ,với năng lực hạn chế của bản thân con người khó khăn trong việc có thể thể hiện các tri thức này một cách rõ ràng trong sáng như mong muốn. I. Định nghĩa máy học : Máy học (Machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống “học” tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể “học” cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tuơng ứng. Máy học rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ. Máy học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, máy học tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của máy học là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được. Máy học có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động robot (robot locomotion). Dưới góc nhìn của trí tuệ nhân tạo, động lực chính học máy bởi là nhu cầu thu nhận tri thức (knowledge acquisition). Thật vậy, trong nhiều trường hợp ta cần kiến thức chuyên gia là khan hiếm (không đủ chuyên gia ngồi phân loại lừa đảo thẻ tín dụng của tất cả giao dịch hàng ngày) hoặc chậm vì một số nhiệm vụ cần đưa ra quyết định nhanh chóng dựa trên xử lý dữ liệu khổng lồ (trong mua bán chứng khoán phải quyết định trong vài khoảng khắc của giây chẳng hạn) và thiếu ổn định thì buộc phải cần đến máy tính. Ngoài ra, đại đa số dữ liệu sinh ra ngày nay chỉ phù hợp cho máy đọc (computer readable) tiềm tàng ngưồn kiến thức quan trọng. Máy học nghiên cứu cách thức để mô hình hóa bài toán cho phép máy tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ được giao cũng như cách đánh giá giúp tăng tính hiệu quả. Tom Mitchell, giáo sư nổi tiếng của Đại học Carnegie Mellon University - CMU định nghĩa cụ thể và chuẩn mực hơn như sau: "Một chương trình máy tính CT được xem là học cách thực thi một lớp nhiệm vụ NV thông qua trải nghiệm KN, đối với thang đo năng lực NL nếu như dùng NL ta đo thấy năng lực thực thi của chuơng trình có tiến bộ sau khi trải qua KN" (máy đã học). Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tường minh, có thể được sửa đổi,hoặc được huấn luyện trong một giới hạn nhất định. Các phương pháp máy học hoạt động trên các dữ liệu có đặc tả thông tin. Các thông tin được trình bày theo một cấu trúc gồm 4 mức được gọi là tri thức kim tự tháp (pyramid knowledge). Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quả của chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nên những sự tổng quát hóa cho những trường hợp mới. Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấn luyện. Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo một cách nào đó để máy có thể đọc và hiểu được. Tuy nhiên, tập huấn luyện bao giờ cũng hữu hạn do đó không phải toàn bộ dữ liệu sẽ được học một cách chính xác. II. Phân loại máy học Một tiến trình máy học gồm 2 giai đoạn: • Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra mối quan hệ (có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu. Kết quả của việc học có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các luật, tiên đoán lớp cho các đối tượng mới. • Giai đoạn thử nghiệm (testing): mối quan hệ (các luật, lớp ) được tạo ra phải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn. Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát và học nửa giám sát 1) Học có giám sát (Supervised Learning) Đây là cách học từ những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệ thống xây dựng cách xác định những lớp dữ liệu. Hệ thống phải tìm một sự mô tả cho từng lớp (đặc tính của mẫu dữ liệu). Người ta có thể sử dụng các luật phân loại hình thành trong quá trình học và phân lớp để có thể sử dụng dự báo các lớp dữ liệu sau này. Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp: S = {(xi, cj), i=1,…,M; j=1,…,C} • Các cặp huấn luyện này được gọi là mẫu, với xi là vector n-chiều còn gọi là vector đặc trưng, cj là lớp thứ j đã biết trước. • Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể, gọi là H. Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được biết chính xác f : x  c. Thuật toán máy học tìm ra những giả thuyết bằng cách khám phá ra những đặc trưng chung của những ví dụ mẫu thể hiện cho mỗi lớp. Kết quả nhận được thường ở dạng luật (Nếu thì). Khi áp dụng cho những mẫu dữ liệu mới, cần dựa trên những giả thuyết đã có để dự báo những phân lớp tương ứng của chúng. Nếu như không gian giả thuyết lớn, thì cần một tập dữ liệu huấn luyện đủ lớn nhằm tìm kiếm một hàm xấp xỉ tốt nhất f. Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những mô hình học giám sát như sau: • Học vẹt (rote): hệ thống luôn được “dạy” những luật đúng, rồi có học hội tụ. • Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi đúng cho một công việc tương tự, nhưng không xác định. Vì thế hệ thống phải hiệu chỉnh phản hồi trước đó bằng cách tạo ra một luật mới có thể áp dụng cho trường hợp mới. • Học dựa trên trường hợp (case-based learning): trong trường hợp này hệ thống học lưu trữ tất cả các trường hợp, cùng với kết quả đầu ra của chúng. Khi bắt gặp một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách xử lý trước đó của nó đã được lưu trữ. • Học dựa trên sự giải thích (explanation-based learning): hệ thống sẽ phân tích tập hợp những giải pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công hay không thành công. Sau khi những giải thích này được tạo ra, chúng sẽ được dùng để giải quyết những vấn đề mới. 2) Học không giám sát: (Unsupervised Learning) Đây là việc học từ quan sát và khám phá. Hệ thống khai thác dữ liệu được ứng dụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà để nó phải tự hệ thống quan sát những mẫu và nhận ra mẫu. Hệ thống này dẫn đến một tập lớp, mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu. Học không giám sát còn gọi là học từ quan sát và khám phá. Trong trường hợp chỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào, khi đó một hệ thống học không giám sát sẽ khám phá ra những phân lớp của dữ liệu, bằng cách tìm ra những thuộc tính, đặc trưng chung của những mẫu hình thành nên tập dữ liệu. Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toán máy học không giám sát (Langley 1996). Đối với một bài toán mà những mẫu dữ liệu được mô tả bởi n đặc trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với một đặc trưng khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên đoán. Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất một trong n bộ phân lớp đó là đúng. 3) Học nửa giám sát Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học không giám sát. Việc học nửa giám sát tận dụng những ưu điểm của việc học giám sát và học không giám sát và loại bỏ những khuyết điểm thường gặp trên hai kiểu học này. 4) Một số thuật toán máy học : Thuật Toán Naïve Bayes. Mô hình Hệ thống mạng Nơrôn Lan truyền ngược – Backpropogation Neural Network (FNN). Mô hình hệ thống mạng Nơrôn dạng hàm radial - RADIAL BASIS FUNCTION NEURAL NETWORKS (RBFNNs). Mô Hình Hệ Thống Mạng Nơrôn mờ hồi quy - RECURRENT FUZZY NEURAL NETWORK (RFNNs). Mô Hình Hệ thống Fuzzy Artmap Neural Network. Mô hình Hệ luật mờ - Standard Additive Model (SAM). Giải Thuật Di Truyền. Thuật toán Support Vector machine (SVMs). Thuật toán Fuzzy Support Vector machine (FSVMs). Thuật toán PageRank. Thuật toán Weighted PageRank. Thuật toán Topic Sensitive PageRank. B. CHƯƠNG II: MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO Theo nghĩa sinh học, mạng nơ-ron là một tập hợp các dây thần kinh kết nối với nhau. Ngày nay, thuật ngữ này còn dùng để chỉ mạng nơ-ron nhân tạo, cấu thành từ các nơ-ron nhân tạo. Do đó thuật ngữ 'mạng nơ-ron' xác định hai khái niệm phân biệt: • Mạng nơ-ron sinh học là một mạng lưới (plexus) các nơ-ron có kết nối hoặc có liên quan về mặt chức năng trực thuộc hệ thần kinh ngoại biên (peripheral nervous system) hay hệ thần kinh trung ương (central nervous system). Trong ngành thần kinh học (neuroscience), nó thường được dùng để chỉ một nhóm nơ-ron thuộc hệ thần kinh là đối tượng của một nghiên cứu khoa học nhất định. • Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơ-ron sinh học, tuy nhiên, khác với các mô hình nhận thức, phần lớn các ứng dụng lại có bản chất kỹ thuật. I. Mạng neural nhân tạo: cấu trúc, nguyên tắc hoạt động và các giải thuật huấn luyện. 1. Cấu trúc của mạng nơron nhân tạo Mạng neural nhân tạo là một mạng gồm một tập các node được kết nối với nhau bằng các cạnh có trọng số, mỗi node là một đơn vị tính toán thường gọi là perceptron. [...]... tìm đường, máy bay tự lái… • Các ứng dụng nhận dạng: nhận dạng chữ số, nhận dạng kí tự, nhận dạng giọng nói, nhận dạng chữ viết tay Trong đó, bài toán nhận dạng chữ viết tay là một bài toán khá phổ biến, nhất là trong thời đại mà mọi thứ đều đang được số hóa như hiện nay Với những ứng dụng nhận dạng chữ viết tay, ta có thể dễ dàng chuyển các tài liệu giấy thành tài liệu số để lưu trữ trên máy tính một... với nhận kí tự chưa nhận dạng được ở mạng này có thể được chuyển sang các mạng con khác để nhận diện tiếp Đây là quá trình nhận dạng 1 kí tự sử dụng mạng CNN (trong ví dụ là kí tự “a”): Đầu tiên, sử dụng mạng Digits (chứ số) để nhận dạng Kết quả mạng này không nhận dạng được, trả kết quả là “Unknown character” và đưa xuống mạng tiếp theo là Capital Letters (chữ viết hoa) Mạng này vẫn không nhận dạng. .. *.dtl và được lưu trong thư mục Samples), hoặc sử dụng công cụ bút vẽ (nút 5) để tự vẽ các kí tự cho chương trình nhận dạng Cuối cùng, nhấn nút 8 để chương trình nhận dạng kí tự và cho kết quả ở khung dưới cùng bên phải: Chương trình sử dụng mô hình mạng nơron tế bào (convolution neural network – CNN) để giải quyết bài toán nhận dạng chữ viết tay Mạng CNN là một dạng mạng nơron đa lớp đặc biệt, và cũng... chóng và hiệu quả Tuy nhiên, việc xây dựng một mạng nơron hiệu quả cho một bài toán phức tạp như bài toán nhận dạng chữ viết tay vẫn là một vấn đề khá rắc rối Chương trình demo này nhằm mục đích xây dựng một ứng dụng có thể tạo và chỉnh sửa 1 mạng nơrơn dùng trong bài toán nhận dạng chữ viết tay một cách đơn giản Chương trình này cho kết quả khá tốt với 97% nhận dạng đúng với chữ số và 93% đối với chữ. .. lược là 1.2 và 0.5, để việc lựa chọn các tham số cho giải thuật được đơn giản Trong thực tế, hai thông số cần được lưa chọn cho giải thuật RPROP là ∆ 0 và ∆ max II Ứng dụng demo: Nhận dạng chữ viết tay 1 Mục đích chương trình Ngày nay, máy học và mạng nơron nhân tạo đang được áp dụng rộng rãi trong rất nhiều khía cạnh của cuộc sống Có thể kể đến những ứng dụng của mạng nơron nói riêng và máy học nói chung... như các mạng khác, mạng CNN cũng được huấn luyện bằng thuật toán lan truyền ngược Cấu trúc của mạng CNN như sau: Và ảnh dưới cho thấy 1 bước cụ thể của quá trình rút trích mẫu (convolution – subsampling): Việc sử dụng mạng CNN là để tận dụng lợi thế của mạng nơron đa lớp: thay vì phải sử dụng 1 mạng nơron rất lớn, chúng ta chia nhỏ nó ra thành các mạng con, và những mạng con này có tỉ lệ nhận dạng rất... Browser: Dùng để xem dữ liệu của mạng nơron đã có sẵn • UP-NN Training: Dùng để đưa mạng nơron có sẵn vào để huấn luyện cho chương trình • UP-NN Testing: Thử nghiệm kết quả Trong nội dung bài báo cáo này, chúng ta chỉ tập trung vào 2 tab UP-NN Training và UPNN Testing, cũng chính là 2 quá trình chính của Máy học 2.1 Tab UP-NN Training Dùng button được khoanh đỏ để chọn file có lưu mạng nơron muốn dùng... thành mạng neural nhân tạo Tùy theo số lượng các perceptron và cách thức liên kết của chúng mà tạo thành các mạng neural khác nhau có khả năng khác nhau Có hai loại mạng neural nhân tạo cơ bản là mạng truyền thẳng và mạng hồi quy 1) Mạng truyền thẳng: Một perceptron ở lớp ứng trước sẽ kết nối với tất cả các perceptron ở lớp ứng sau Tín hiệu chỉ được truyền theo một hướng từ lớp đầu vào qua các lớp. .. vẫn không nhận dạng được, trả kết quả là “Unknown character” và đưa xuống mạng tiếp theo là Lower-case Letters (chữ viết thường) Đến đây thì chương trình nhận dạng đó là chữ “a” và trả ra kết quả Với các kí tự gây nhầm lẫn, tức là có thể được nhận dạng ở 2 hay nhiều mạng con thì sẽ có cơ chế spellcheck/vote dựa vào tỉ lệ nhận dạng ở các mạng đó, cuối cùng sẽ chọn kết quả có tỉ lệ cao nhất làm kết quả... giản: nó nhận tín hiệu vào từ các perceptron phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra Mỗi perceptron có thể có nhiều tín hiệu đầu vào nhưng chỉ có một tín hiệu đầu ra duy nhất Đôi khi các perceptron còn có một giá trị gọi là độ lệch (bias) được gộp vào các tính hiệu đầu vào để tính tín hiệu ra Trong một mạng nơron có ba kiểu perceptron: 1) Các perceptron đầu vào, nhận tín . Báo cáo đồ án Máy học và ứng dụng Sử dụng mạng nơron đa lớp để xây dựng ứng dụng nhận dạng chữ viết tay   . động mạng neural nhân tạo 13 3.Huấn luyện mạng neural : 14 II .Ứng dụng demo: Nhận dạng chữ viết tay 22 1.Mục đích chương trình 22 2.Mô tả chương trình 23 A. CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC Học, . dẫn, hay là áp dụng các kinh nghiệm tích lũy từ quá khứ vào hiện tại và tương lai” và Học là điều chỉnh để cải thiện hành vi ứng xử theo kinh nghiệm đạt được”, … Máy học là môn khoa học nghiên cứu

Ngày đăng: 21/05/2015, 12:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w