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

Thiết kế phần mềm đọc mặt số đồng hồ nước

102 0 0

Đ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

Tiêu đề Phần Mềm Đọc Mặt Số Đồng Hồ Nước
Tác giả Nguyễn Cảnh Toàn
Người hướng dẫn ThS. Bùi Quốc Anh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp Đại Học
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 102
Dung lượng 3,09 MB

Cấu trúc

  • Chương 1: Nhiệm vụ và phân tích nhiệm vụ (7)
    • 1.1. Nhiệm vụ (7)
    • 1.2. Phân tích nhiệm vụ (7)
      • 1.2.1. Công việc cần thực hiện (7)
      • 1.2.2. Các thiết bị cần thiết (7)
      • 1.2.3. Các công việc đã thực hiện (8)
      • 1.2.4. Tiến trình hoàn thành đồ án (9)
  • Chương 2: Thiết kế tổng thể (10)
    • 2.1. Tổng quan về đề tài (11)
    • 2.2. Miêu tả về hệ thống (11)
      • 2.2.1. Miêu tả về các tính năng của hệ thống (11)
      • 2.2.2. Đề xuất các phương án (12)
      • 2.2.3. Thiết kế sơ đồ khối (15)
      • 2.2.4. Mô tả hoạt động, cách thức sử dụng phần mềm (16)
  • Chương 3: Cơ sở lý thuyết liên quan (18)
    • 3.1. Các khái niệm về học máy – Machine Learning (19)
      • 3.1.1. Huấn luyện (19)
      • 3.1.2. Học vét cặn, học vẹt (20)
      • 3.1.3. Thế nào là học (20)
      • 3.1.4. Độ lệch qui nạp - Inductive bias (21)
      • 3.1.5. Giới thiệu về cây quyết định (21)
      • 3.1.6. Vấn đề học quá tải - The problem of overfitting (23)
      • 3.1.7. Giải thuật láng giềng gần nhất (24)
      • 3.1.8. Mạng thần kinh nhân tạo (24)
      • 3.1.9. Các phương pháp học (25)
    • 3.2. Các khái niệm về mạng thần kinh nhân tạo – Artificial Neural Network (26)
      • 3.2.1. Neurons (26)
      • 3.2.2. Mạng hồi qui - Recurrent Networks (34)
    • 3.3. Giới thiệu về quan sát máy – Computer Vision (39)
      • 3.3.1. Giới thiệu (39)
      • 3.3.2. Hệ thống quan sát của con người (39)
      • 3.3.3. Các hệ thống quan sát – Vision system (40)
      • 3.3.4. Phân tích kết cấu - Using texture (45)
      • 3.3.5. Xác định chuyển động (47)
      • 3.3.6. Ứng dụng của các hệ thống quan sát (48)
    • 3.4. Phép biến đổi Hough – Hough Transform (49)
      • 3.4.1. Lý thuyết của phép biến đổi Hough (50)
      • 3.4.3. Ví dụ về dò tìm đường thẳng (53)
    • 3.5. Các phép toán hình thể – Mathematical Morphology (54)
      • 3.5.1. Phép giãn ảnh (Dilation) (55)
      • 3.5.2. Phép co ảnh (Erosion) (56)
      • 3.5.3. Phép mở ảnh (Open) (56)
      • 3.5.4. Phép đóng ảnh (Close) (57)
  • Chương 4: Thiết kế chi tiết chương trình (58)
    • 4.1. Biểu đồ luồng công việc (59)
    • 4.2. Công đoạn phân vùng ảnh (59)
      • 4.2.1. Thuật toán dò tìm hình chữ nhật (60)
    • 4.3. Công đoạn phân tách chữ số (66)
      • 4.3.1. Thuật toán tách ký tự (66)
    • 4.4. Công đoạn nhận dạng ảnh (68)
      • 4.4.1. Mô tả cấu trúc mạng neuron để nhận dạng ảnh (68)
      • 4.4.2. Thiết kế cơ sở dữ liệu huấn luyện (70)
    • 4.5. Thiết kế chi tiết chương trình (73)
      • 4.5.1. Sơ đồ khối (73)
      • 4.5.2. Biểu đồ UseCase (74)
    • 4.6. Biểu đồ lớp (74)
      • 4.6.2. Biểu đồ tuần tự (85)
      • 4.6.3. Biểu đồ cộng tác (85)
      • 4.6.4. Biểu đồ hoạt động (85)
  • Chương 5: Thực thi chương trình (86)
    • 5.1. Các phương pháp cải tiến hiệu năng chương trình (87)
      • 5.1.1. Lập bảng sin/cos (87)
      • 5.1.2. Giảm thiểu không gian tìm kiếm (87)
      • 5.1.3. Hướng tiếp cận phù hợp hơn (91)
      • 5.1.4. Giảm thiểu kích thước không gian của phép biến đổi Hough (91)
      • 5.1.5. Cải tiến giải thuật phân tách chữ số (91)
      • 5.1.6. Phân ngưỡng thích nghi (93)
    • 5.2. Một số hình ảnh kết quả (93)
      • 5.2.1. Quá trình huấn luyện mạng thần kinh – quá trình học (93)
      • 5.2.2. Quá trình phân vùng ảnh (94)
      • 5.2.3. Quá trình phân tách ký tự (95)
      • 5.2.4. Quá trình nhận dạng ảnh (97)
  • Phụ lục (100)

Nội dung

Nhiệm vụ và phân tích nhiệm vụ

Nhiệm vụ

Phân tích, thiết kế và xây dựng phần mềm đọc mặt số đồng hồ nước và xây dựng hệ thống lưu trữ, quản lý thông tin sử dụng nước cho công ty ….

>

Phân tích nhiệm vụ

1.2.1 Công việc cần thực hiện Để thực hiện được nhiệm vụ đặt ra yêu cầu tôi phải thực hiện các công việc sau:  Tìm hiểu lý thuyết và các kỹ thuật cơ bản quan sát máy (computer vision), học máy (machine learning), xử lý ảnh.

 Tìm hiểu các kỹ thuật trong việc nhận dạng chữ (optical character recognition).

 Phân tích, thiết kế với UML

 Tìm hiểu thuật toán, thiết kế và cài đặt chương trình bằng ngôn ngữ Visual C++

 Làm việc với các thiết bị chạy trên nền Windows CE.

 Tìm hiểu và làm việc với mã vạch Làm thế nào để in mã vạch, đọc mã vạch.

1.2.2 Các thiết bị cần thiết Để xây dựng hoàn thiện hệ thống, chúng tôi cần những thiết bị sau:

 Hoặc một thiết bị cầm tay có camera được tích hợp

1.2.3 Các công việc đã thực hiện

STT Công việc Kết quả

1 +Tìm hiểu các kỹ thuật nhận dạng ảnh, các hệ thống tương đương, các thành tựu trong nước và thể giới

+Tìm hiểu các kỹ thuật phân vùng ảnh, nhận dạng khuôn mẫu.

+Tìm kiếm một số thư viện xử lý ảnh, thư viện về mã vạch …

+Làm tài liệu báo cáo về các kỹ thuật này

Hiểu chức năng của các kỹ thuật, thuật toán để thực hiện

2 +Cài đặt, kiểm thử thuật toán trên Matlab

+Lập trình prototype để kiểm tra tính khả thi+Làm tài liệu báo cáo

Cài đặt các thành công các giải thuật đã tìm hiểu được trên Matlab

3 +Phân tích, thiết kế chi tiết hệ thống

+Làm tài liệu báo cáo Phân tích, thiết kế, làm tài liệu xong với UML

4 +Lập trình, đánh giá, kiểm thử phần mềm

+Hoàn thiện tài liệu Chương trình chạy được trên PC, thử nhiệm thành công với một vài loại đồng hồ cụ thể

5 Chuyển mã nguồn từ PC xuống thiết bị cầm tay (Dolphine D7600)

Bảng 1-1 Các công việc đã thực hiện

1.2.4 Tiến trình hoàn thành đồ án

Sau khi đã xác định rõ những công việc cần phải làm để có thể hoàn thành được đồ án này, tôi đã tiến hành triển khai công việc theo từng bước :

Hình 1-1 Kế hoạch thực hiện đồ án

Như lược đồ ở trên, tôi đã xác định một kế hoạch làm việc như sau

 Tuần 1 đến tuần 4: tìm hiểu các kỹ thuật phân vùng và nhận dạng ảnh Tìm hiểu các thành tựu đã đạt được trên thế giới và tận dụng tối đa những gì có thể Làm báo cáo về giai đoạn này

 Tuần 5 đến tuần 12: thực hiện một qui trình sản xuất phần mềm nhỏ Trong giai đoạn này, các pha của qui trình được thực hiện lặp lại với qui mô tăng dần Có cả thảy 3 vòng lặp, mỗi vòng kéo dài khoảng 3 tuần, các pha đan xen nhau trong mỗi vòng lặp, mỗi pha (thiết kế, lập trình và thử nghiệm) kéo dài khoảng 2 tuần.

 Tuần 13 đến tuần 15: thực hiện các công việc kiểm thử, đánh giá phần mềm và hoàn thiện tài liệu báo cáo.

Thiết kế tổng thể

Tổng quan về đề tài

Hiện nay, ở nước ta, trong các nhà máy kinh doanh nước sạch, một công đoạn thực tế phải làm đó là khâu thu thập số nước của mỗi hộ gia đình Công đoạn này yêu cầu các nhân viên đi kiểm tra đồng hồ nước của từng hộ gia đình, đọc số nước, ghi chép vào sổ; sau khi đã thu thập được hết tất cả số liệu, các nhân viên này còn phải thực hiện nhập toàn bộ số liệu từ sổ ghi chép này vào máy tính, rồi mới in hoá đơn yêu cầu thanh toán tiền nước, và cuối cùng lại đem tới từng hộ gia đình Rõ ràng, các hoạt động thủ công này là rất vất vả và tạo ra một năng suất thấp

Từ thực tế đó, tôi xin đề xuất một phương án, cách thức thu thập số liệu mới để nâng cao hiệu xuất lao động, giảm chi phí về thời gian và công sức cho nhân viên Giải pháp mới này sẽ phải đảm bảo được các yêu cầu:

 Hệ thống phải có khả năng đọc được chỉ số trên đồng hồ Người dùng sẽ đặt máy lên trước mặt đồng hồ, và thực hiện quét ảnh(vị trí đặt có hướng vuông góc từ trên xuống, hệ thống có khả năng nhận dạng được với một góc nhìn càng nghiêng càng tốt) Ảnh thu được sẽ được xử lý theo một cách nào đó và số nước sẽ được nhận biết Quá trình đọc phải thực hiện nhanh và phải đạt được độ tin cậy 100%.

 Hệ thống phải lưu trữ thông tin về khách hàng, dựa vào thông tin này và thông tin số nước vừa thu được sẽ in luôn hoá đơn thanh toán, gửi cho khách hàng (thông qua một máy in di động, truyền dữ liệu qua Bluetooth).

 Sau khi thu thập hết, hệ thống phải cập nhật số liệu vào máy chủ Trước khi đi thu thập sẽ có thể đồng bộ hoá csdl từ máy chủ (thông qua các đương truyền như WiFi, RS232).

 Là sản phẩm phần mềm nên chi phí bảo hành, bảo trì thấp.

 Hệ thống dễ dàng lắp đặt, triển khai trên các môi trường khác nhau – bất cứ một thiết bị nào có tích hợp sẵn camera.

Miêu tả về hệ thống

2.2.1 Miêu tả về các tính năng của hệ thống

Hệ thống được phát triển phải đảm bảo các tính năng sau:

 Hệ thống phải có khả năng phân vùng, xác định vùng ảnh chứa số liệu cần đọc Có vài cách để thực hiện điều này, vì vậy, cần thiết kế cấu trúc sao cho có thể dễ dàng thực thi các phương pháp khác nhau.

 Hệ thống phải có khả năng phân tách ảnh của một số các ký tự thành nhiều ảnh tương ứng với các ký tự riêng biệt Cũng như trên, cấu trúc đưa ra phải đảm bảo sự dễ dàng trong thực thi, thêm vào các phương pháp mới tốt hơn trong tương lai.

 Hệ thống phải có tính năng nhận dạng chữ số trong các trương hợp đầy đủ và không đầy đủ (trạng thái trung gian khi chuyển từ số này sang số kia).

 Hệ thống phải có khả năng thu thập mã người dùng thông qua một vài kỹ thuật xác thực (ví dụ như barcode hoặc RFID), để từ đó, lấy về và cập nhật thông tin về việc sử dụng nước.

 Có khả năng chuyển đổi nhanh chóng khi triển khai lên các môi trường.

2.2.2 Đề xuất các phương án

Nhìn một cách tổng thể, hệ thống của ta cần phải thực hiện 3 công đoạn chính, đó là:

1 Phân vùng ảnh: ở giai đoạn này, hệ thống cần phải có cách nào đó để nhận biết được vùng chứa thông tin về chữ số cần nhận biết Khả năng nhận biết này sẽ được thể hiện tối đa trong các trường hợp đặt camera theo các hướng bất kỳ Nhưng cho dù phương pháp nào đi nữa thì kết quả của giai đoạn này là một ảnh chứa vùng chữ số.

2 Phân tách ký tự: sau khi có được ảnh của một dòng các chữ số, hệ thống phải phân tách được ảnh này ra làm các ảnh của các chữ số riêng biệt.

3 Nhận dạng ảnh: sau khi đã có ảnh của từng chữ số riêng biệt cần nhận dạng, chúng sẽ được lần lượt đưa vào bộ máy đoán nhận và lần lượt đối với từng chữ số trong dãy, ta sẽ có được kết quả đầu ra.

Hình 2-2 Biểu đồ luồng công việc

Với phương hướng tổng thể như vậy, tôi xin đề xuất các phương án cho môi công đoạn như sau:

2.2.2.1 Công đoạn phân vùng ảnh

1 Yêu cầu phân vùng sẵn bằng cách vẽ hình chữ nhật có màu đặc biệt lên mặt đồng hồ. a Ưu điểm: i Giải thuật cài đặt để phát hiện vùng này là đơn giản hơn Chỉ cần focus được nằm trong hình chữ nhật này thì luôn xác định được vùng chữ số. ii Không phụ thuộc vào hướng chụp Mặt đồng hồ này có thể quay theo một hướng bất kỳ Một khi đã phát hiện lại được hình chữ nhật này thì luôn có thể quay, bù méo lại Mềm dẻo trong vị trí đặt đồng hồ. b Nhược điểm: i Cần phải vẽ trước (phân vùng trước) bằng một hình chữ nhật.

2 Cố định vùng chữ số vào một vùng xác định trên ảnh sau khi chup Yêu cầu người chụp phải “ướm” vùng chữ số vào vùng hình chữ nhật trên thiết bị a Ưu điểm i Giải thuật đơn giản nhất để thực hiện ii Không cần mất một chút công sức nào đối với đồng hồ b Nhược điểm i Phụ thuộc vào hướng của đồng hồ, không mềm dẻo trong vị trí đặt đồng hồ

3 Các giải thuật tiên tiến khác tự động phát hiện hình chữ nhật và hướng a Ứng dụng của biến đổi Hough cửa sổ i Ưu điểm:

1 Quá trình nhận biết vùng chỉ số đồng hồ hoàn toàn tự

2 Không phụ thuộc vào hướng của đồng hồđộng ii Nhược điểm

1 Do giải thuật này cần phải xác định được trước kích thước của vùng chữ nhật trên ảnh cần nhận dang nên rõ ràng là khoảng cách đối với mặt đồng hồ là không được thoải mái cho lắm. b Sử dụng biến đổi khoảng cách và biểu đồ Voronoi.

2.2.2.2 Công đoạn phân tách ảnh

1 Thực hiện phân chia đều Ảnh của từng ký tự được phân tách dựa trên việc phân chia đều ảnh của tập các ký tự dựa trên các tỉ lệ các tỉ lệ thực. a Ưu điểm: đơn giản nhất để thực hiện. b Nhược điểm: hoạt động không mạnh mẽ, chỉ cần những sai lệch rất nhỏ cũng dẫn tới kết quả phân tách ảnh sai.

2 Thực hiện phân tách dựa trên phương pháp chiếu

3 Thực hiện phân tách dựa trên chuỗi Markov ẩn

2.2.2.3 Công đoạn nhận dạng ảnh

1 Thực hiện các giải thuật phân tích đặc tính, các kỹ thuật trườn, bò, thống kế quanh các đường biên của chữ a Nhược điểm i Khó thực hiện ii Độ chính xác không cao iii Chỉ mang tính chất học thuật, khó có thể áp dùng thực tế

2 Sử dụng mạng thần kinh nhân tạo a Ưu điểm i Kích thước gọn nhẹ ii Độ chính xác cao (>90%) b Nhược điểm i Phải có được cơ sở dữ liệu tri thức đa dạng, phong phú để bao trùm hết tất cả các trường hộp có thể xảy ra ii Thời gian huấn luyện mạng lâu

2.2.2.4 Lựa chọn phương án giải quyết

Sau đây là hình ảnh một số loại đồng hồ mà ta sẽ cần phải làm việc.

Ta thấy, hầu hết, các loại đồng hồ đều có một vùng cửa sổ hình chữ nhật chứa các thông tin mà ta quan tâm Các phương án được lựa chọn để giải quyết các vấn đề con ở đây là:

1 Sử dụng biến đổi Hough cửa sổ đề tìm kiếm các hình chữ nhật cửa sổ là vùng chứa dãy ký tự

2 Phân tách ảnh sử dụng phép chiếu

3 Dùng một mạng trí tuệ nhân tạo để nhận dạng ảnh.

2.2.3 Thiết kế sơ đồ khối

Trên đây là sơ đồ khối của hệ thống, hệ thống này chứa một số module như:

 Module nhận luồng dữ liệu ảnh: cung cấp ảnh đầu vào, hay nói đúng hơn là các frame ảnh liên tiếp đầu vào

 Module quản lý cấu hình: quản lý các tham số cấu hình do người phát triển hệ thống xác định Mỗi loại đồng hồ sẽ có một tệp cấu hình riêng tương ứng

 Module phân vùng ảnh: thực hiện tự động dò tìm vùng ảnh được quan tâm – interested region

 Module phân tách ký tự: thực hiện tách một ảnh của một dãy số ra làm nhiều ảnh của các chữ số tách biệt

 Module nhận dạng số: thực hiện công việc nhận dạng số.

2.2.4 Mô tả hoạt động, cách thức sử dụng phần mềm

Từ quan điểm của người sử dụng, hệ thống sẽ cần phải cung cấp các tính năng sau

Cơ sở lý thuyết liên quan

Các khái niệm về học máy – Machine Learning

Học máy là một phần rất quan trọng của lĩnh vực nghiên cứu Trí Tuệ Nhân Tạo Trong phần này, tôi xin trình bày một số miêu tả sơ lược về các phương pháp và ý tưởng được sử dụng trong học máy; đồng thới cũng giới thiệu qua về mạng thần kinh nhân tạo.

Một trong các vấn đề chính mà học máy cần phải giải quyết là học cách phân loại, gom nhóm tập các giá trị đầu vào vào một tập hữu hạn (hoặc vô hạn) các nhóm Thông thường, một hệ thống được cung cấp một tập dữ liệu huấn luyện, tức là kết quả phân loại đối với tập dữ liệu đó đã có trước Khi đó, hệ thống sẽ cố học, bắt chước từ cách phân loại này để phân loại khi gặp phải các trường hợp tương tự hoặc chưa bao giờ được nhìn thấy.

Trong quá trình học, phải có một giả sử rằng có một quan hệ hàm nào đó giữa dữ liệu vào và kết quả; hay nói cách khác, tồn tại một số hàm số f mà với một mẩu dữ liệu x thuộc về nhóm y thì f(x)=y.

Ví dụ như nếu hàm so sánh bằng được sử dụng thì nhiệm vụ học có vẻ như khá đơn giản vì dữ liệu đã tự nó được phân loại Rõ ràng là các vấn đề của cuộc sống thực thì không đơn giản như vậy, và việc tạo ra một hàm sao cho nó gần giống với cách phân loại, giải quyết vấn đề trong thế giới thực là một trong những thách thức chính của học máy.

Trong thực tế, hầu hết các vấn đề của học máy thì dữ liệu thường là một vector các thuộc tính cần phải xem xét chứ không chỉ đơn giản là một biến số Ví dụ như một hệ thống đánh giá thế cờ sau:

Trước hết, ta sẽ xem xét tới một số các biến số sau:

 X1: số lượng các quân cờ trắng trên bàn

 X2: số lượng các quân cờ đen trên bàn

 X3: số lượng các quân cờ đen bị yếu thế (bị đe dọa) bởi các quân cờ trắng

 X4: số lượng các quân cờ trắng bị yếu thế (bị đe dọa) bởi các quân cờ đen

 X5: quân trắng rơi vào thế bí ở nước cờ tiếp theo

 X6: quân đen rơi vào thế bí ở nước cờ tiếp theo

 X7: số lượng các cách đi khác nhau mà quân trắng có thể thực

 hiệnX8: số lượng các cách đi khác nhau mà quân trắng có thể thực

Rõ ràng cách mô hình hóa hệ thống đánh giá này là cực kỳ đơn giản hóa bởi hiện vì trong các hệ thống chơi cờ thực thì phải cần thêm rất nhiều tập biến số phức tạp khác mới có thể đánh giá được chính xác thể cờ Để đánh giá thế cờ của mỗi bên, ta có thể sử dụng một số dương lớn để miêu tả trường hợp quân trắng đang chiếm ưu thế và ngược lại, một số âm lớn đối với quan đen Giá trị +/-100 nói rằng một bên sẽ đã thắng hoặc đang chuẩn bị thắng

Công thức ước lượng giá trị của thế cờ có thể là một hàm tổng có trọng số đơn giản của các biến số ở trên

Ví dụ như một mẫu trong tập huấn luyện có dạng f(10,2,1,0,true,false,10,1)0; điều này có nghĩa rằng trong thế cờ này, quân trắng sẽ luôn luôn thắng.

3.1.2 Học vét cặn, học vẹt

Một cách đơn giản nhất để máy tính học đó là đối sánh Quá trình huấn luyện đơn giản chỉ là lưu trữ tất cả các mẫu huấn luyện và kết quả phân loại của nó Sau đó, khi một mẫu dữ liệu mới phải xử lý, nó sẽ đơn giản là tìm kiếm trong tập dữ liệu đã được lưu trữ xem mẫu dữ liệu đó đã được xử lý hay chưa? Nếu đã có trong không gian lưu trữ thì kết quả phân loại mong muốn đã thực sự có, còn ngược lại, nếu chưa thì phương pháp sẽ kết thúc mà không có kết quả.

Vì vậy, học theo cách này chỉ có thể phân loại được những mẫu đã được xét tới và không có một sự cố gắng nào để đoán nhận, xấp xỉ đối với những mẫu chưa được xét tới bao giờ

Học là một khái niệm liên quan tới việc hệ thống phải xem xét, đưa ra quyết định và phân loại từ một tập dữ liệu các biến đầu vào là thuộc vào lớp khái niệm nào Các phương pháp để huấn luyện cho máy học ở đây là các phương pháp học có qui nạp (inductive-learning methods) Các phương pháp này dựa trên nguyên tác là nếu ta tìm được một hàm ánh xạ mà có khả năng phân loại được một số lượng lớn dữ liệu thì nó cũng có thể phân loại được các dữ liệu hoàn toàn chưa thấy bao giờ - một số lượng vô hạn mẫu Khi đó, ta nói, máy đã có khả năng nhận biết từ một tập dữ liệu huấn luyện xác định. Để diễn tả cho các phương pháp trên, ta hãy xét một ví dụ đơn giản: ta cần cho hệ thống học để quyết định xem việc lái xe trong một điều kiện cụ thể nào đó có an toàn hay không? Vector thuộc tính để miêu tả các điều kiện của bài toán như sau:

Ta sẽ xem một giả thiết là một vector các giá trị thuộc tính Một giả thiết có thể là

H1= Ta cũng có thể biểu diễn một giả thiết có các giá trị mà ta không quan tâm, được biểu diễn bởi “?”, như là h2= tức là h2 miêu tả một giả thiết người lái xe chạy nhanh trong điều kiện trời mua, và ngồi gần với đầu xe, sau khi đã uống 2 đơn vị rượu, mà không để ý tới thời điểm trong ngày cũng như nhiệt độ Rõ ràng là giả thiết này là không đúng và được coi như là một mẫu huấn luyện sai (có kết quả phân loại là không an toàn đối với máy học).

Trong một số trường hợp khác, ta cần biểu diễn một thuộc tính trong một giả thiết không có được một giá trị cụ thể Ví dụ h3= Giả thiết h3 đối nghĩa với h2 – lái xe nhanh, trong điều kiện mưa, ngồi gần mui xe, sau khi đã uống 2 đơn vị rượu thì sẽ không thể an toàn được, mà không cần biết thời gian và nhiệt độ trong ngày

Nhiệm vụ của máy trong quá trình học là xem xét tập các mẫu huấn luyện và sử dụng nó để quyết định xem một giả thiết có phù hợp với tất cả dữ liệu huấn luyện hay không, và cái nào có thể được sử dụng để phân loại các thể hiện mà chưa bao giờ được thấy trước đó

Khái niệm học ở đây có thể được xem như là quá trình tìm kiếm trong không gian tìm kiếm bao gồm tất cả các giả thiết có thể, mà mục đích ở đây là một giả thiết gần nhất với tập giá trị đầu vào mà đã có kết quả phân loại chính xác.

3.1.4 Độ lệch qui nạp - Inductive bias

Tất cả các phương pháp học máy đều có một độ lệch qui nạp Khái niệm độ lệch qui nạp nhắc đến các giới hạn về các giả thiết sử dụng trong phương pháp học máy đó Ví dụ như trong bài toán quyết định lái xe an toàn ở trên, các thông số đầu vào được mô hình hoá như là một vector 8 thuộc tính Điều này không cho phép biểu diễn các giả thiết phức tạp hơn Khi đó, độ lệch qui nạp có nghĩa là vẫn có thể tồn tại các phương án tiềm ẩn nào đó mà hệ thông không thể xác định được. Điều này trông có vẻ như là một giới hạn không may mắn, nhưng thực tế, nó lại là khái niệm thuộc về bản chất của học máy Đối với các hệ thống học mà không cần có độ lệch qui nạp, không gian xem xét cần thiết phải chứa tất cả các trường hợp có thể diễn đạt Điều này dẫn tới vài giới hạn như: phương án mà hệ thống đưa ra sẽ không bao giờ tổng quát hơn những gì mà hệ thống đó đã thấy và đã được huấn luyện; và hệ thống lúc đó chỉ có thể phân biệt được các dữ liệu đã từng xem xét nhưng không thể nhận dạng được các trường hợp mới (chưa bao giờ được xem xét)

3.1.5 Giới thiệu về cây quyết định

Các khái niệm về mạng thần kinh nhân tạo – Artificial Neural Network

3.2.1.1 Các Neurons sinh hoc - Biological Neurons

Bộ não của con người chứa đựng tới hàng chục tỉ các neuron thần kinh, mỗi neuron này trung bình liên kết tới hàng nghìn các neurons khác Các liên kết này được gọi là synapses Bộ não con người có khoảng 60 nghìn tỉ liên kết synapses.

Trong thực tế, các neurons là các thành phần xử lý rất đơn giản Mỗi neuron chứa các chất dinh dưỡng gọi là soma trong nhân của nó, một sợi trục thần kinh - axon, và một số các dendrities (các liên kết dạng hình cây) Dưới đây là hình vẽ miêu tả đơn giản cấu trúc của một neuron sinh học

Hình 3-6 Hình ảnh một neuron

Các neuron hoạt động như sau: nó nhận các tín hiệu đầu vào từ các dendrites, và khi tập hợp các tín hiệu này vượt quá một ngưỡng nào đó thì chúng phát ra đầu ra một tín hiệu – thực tế, khi đó có một phản ứng hóa học được thực hiện, tạo ra một xung điện được truyền ra trục thần kinh – axon và truyền xuống các synapses liên kết tới các dendrities của các neuron khác.

Mặc dù cấu trúc, hoạt động của từng neuron là cực kỳ đơn giản, nhưng khi kết hợp với nhau thành những mạng có cấu trúc, chúng có thể xử lý thông tin ở tốc độ cao và có thể giải quyết các bài toán phức tạp

Một đặc tính của bộ não của con người được biết đến đó là plasticity, tức là các neuron có thể thay đôi bản chất cũng như số lượng các liên kết tới các neuron khác để đáp ứng lại một sự kiện nào đó xảy ra Đặc tính này làm cho bộ não có khả năng học, tức là bộ não sẽ có một cơ chế điều chỉnh trong số liên kết của các liên kết giữa các neuron (tăng độ liên kết giữa các neuron mà sẽ tạo ra các phương án giải quyết chính xác và giảm độ mạnh liên kết giữa các neuron tạo phương án sai) Độ mạnh của liên kết sẽ quyết định xem một neuron ảnh hưởng như thể nào tới các neuron liên kết với nó Nếu một liên kết có trọng số nhỏ thì có nghĩa là neuron tương ứng sẽ có ít vai trò hon trong quá trình tính toán.

Các mạng neurons nhân tạo được mô hình hóa dựa trên bô não của con người và cũng chứa một số lượng các neuron nhân tạo Các neuron trong mạng nhân tạo thì có ít các kết nối hơn neuron tự nhiên, và một mạng nhân tạo thông thường có số lượng neuron nhỏ hơn đáng kể so với mạng tự nhiên.

Mỗi một neuron (một nút mạng) sẽ có một số số liên kết để dẫn tín hiệu đầu vào và một hàm gọi là hàm kích ứng (activation function) sẽ được sử dụng để quyết định giá trị đầu ra của neuron Có nhiều hàm có thể sử dụng, một vài trong số đó có dạng như sau:

Một trong số các hàm hay được sử dụng nhất là hàm bước (hay là hàm ngưỡng tuyến tính – linear threshold function) Tập giá trị đầu vào sẽ được tổng hợp lại (tổng có trọng số), và đem so sánh kết quả này với một ngưỡng t Nếu giá trị của tổng lớn hon giá trị của ngưỡng, thì neuron sẽ phát ra một xung điện tương ứng với mức hoạt động +1 Ngược lại, mức hoạt động của nó vẫn là 0 (trong một số mạng, khoảng giá trị này là -1 đến +1 thay vì từ 0 đến 1).

Một mạng neuron có thể chứa một số lượng lớn các neuron, các neuron này lại được liên kết với nhau, mỗi liên kết giữa các neuron có một trọng số Trong quá trình hoạt động, mỗi neuron truyền tín hiệu đầu ra của nó vào các cổng đầu vào của các neuron liên kết với nó Giá trị đầu ra này là phụ thuộc vào ứng dụng của hàm kích ứng đối với các giá trị nó nhân được Theo cách này, khi một tín hiệu nhận được từ đầu vào sẽ được cả hệ thống mạng xử lý và giá trị đầu ra (hoặc tập các giá trị đầu ra) được sinh ra Không có một phép xử lý trung tâm hoặc một cơ chế điều khiển nào, toàn bộ mạng sẽ liên quan tới phép xử lý từng mẩu dữ liệu đầu vào!.

Quá trình học của một mạng là quá trình thay đổi, chỉnh sửa các giá trị trọng số của các liên kết này để đáp ứng một cách đúng đắn hơn đối với các sự kiện, đầu vào cụ thể.

Perceptron được đưa ra bởi Rosenblatt (1958), đó là một neuron nhân tạo được sử dụng để phân loại tập các giá trị đầu vào thành 2 nhóm

Một Perceptron có thể có một số lượng bất kỳ các đầu vào Thông thường các đầu vào này thường tương ứng, sắp xếp trên một lưới Lưới này có thể được sử dụng để biểu diễn ảnh, một trường để quan sát, và các perception có thể được sử dụng để thực hiện các nhiệm vụ phân loại hoặc là nhận dạng.

Một perceptron sử dụng hàm bước (step function) trả về giá trị +1 nếu tổng trọng số các đầu vào, X, có giá trị lớn hơn một ngưỡng, t, và -1 nếu ngược lại hoặc với

Chú ý rằng ở đây chỉ số I chạy từ 0 thay vì 1 Điều này có nghĩa là ta đưa ra 2 biến mới w0 & x0 Với x0=1 & w0=-t.

Một perceptron có thể được sử dụng để học các thao tác phân loại, khi đó, nó nhận các giá trị đầu vào và phân loại chúng làm 2 nhóm: 1 hoặc 0, đúng hoặc sai, thực hiện các thao tác logic AND hoặc OR.

Quá trình học của một perceptron như sau:

1 Đầu tiên, các giá trị trọng số được gán cho các liên kết trong mạng một cách ngẫu nhiên (thông thướng giá trị này được chọn trong khoảng -0.5 đến 0.5)

2 Các mẫu giá trị huấn luyện được lần lượt đưa tới các perceptron, và quan sát giá trị đầu ra của nó Nếu đầu ra không chính xác, trọng số của các liên kết sẽ được điều chỉnh nhắm tạo ra một kết quả gần đúng hơn với giá trị thực sự Hay nói cách khác, nếu một perceptron phân loại không chính xác một mẫu huấn luyện dương thành âm, lúc đó các trọng số phải được điều chỉnh sao cho giá trị đầu ra phải tăng lên Điều này có thể được thực hiện bằng cách thêm vào các giá trị dương cho các trọng số âm, và ngược lại.

Công thức của sự chỉnh sửa này được Rosenblatt đưa ra như sau

Trong đó a là tốc độ học (learning rate, 0

Ngày đăng: 30/06/2023, 18:21

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

TÀI LIỆU LIÊN QUAN

w