1. Trang chủ
  2. » Thể loại khác

Luận văn nghiên cứu tìm hiểu về mạng neural và một vài ứng dụng của chúng

49 4 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

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

Cấu trúc

  • CHƯƠNG I: GIỚI THIỆU CHUNG VỀ MẠNG NEURAL (4)
    • 1.1 Tổng quan về mạng neural sinh học (4)
      • 1.1.1 Cấu trúc mạng neural sinh học (4)
      • 1.1.2 Khả năng của mạng neural sinh học (bộ não) (5)
      • 1.1.3 Quá trình học của bộ não (5)
    • 1.2 Neural nhân tạo (6)
      • 1.2.1 Định nghĩa (6)
      • 1.2.2 Mô hình neural (6)
        • 1.2.2.1 Neural một đầu vào (7)
        • 1.2.2.2 Neural nhiều đầu vào (9)
    • 1.3 Mạng neural nhân tạo (10)
      • 1.3.1 Định nghĩa (10)
      • 1.3.2 Một số chức năng của mạng neural nhân tạo (11)
        • 1.3.2.1 Chức năng phân loại mẫu (11)
        • 1.3.2.2 Học và tổng quát hóa (11)
      • 1.3.3 Lịch sử phát triển của mạng neural nhân tạo (11)
    • 1.4 Kiến trúc mạng neural (13)
      • 1.4.1 Lớp của các neural (13)
      • 1.4.2 Mạng neural nhiều lớp (Multiple Layers of Neurons) (14)
    • 1.5 Phân loại mạng neural (16)
    • 1.6 Hoạt động của mạng neural nhân tạo (17)
      • 1.6.1 Hoạt động của mạng neural (17)
      • 1.6.2 Luật học của mạng neural (17)
  • CHƯƠNG II: MẠNG PERCEPTRON ĐA LỚP VỚI LUẬT HỌC LAN TRUYỀN NGƢỢC SAI SỐ (20)
    • 2.1 Mạng neural nhiều lớp lan truyền ngƣợc sai số (20)
      • 2.1.1 Tổng quan về mạng neural truyền thẳng nhiều lớp (20)
      • 2.1.2 Kiến trúc mạng (21)
      • 2.1.3 Cơ chế huấn luyện của mạng neural lan truyền ngược sai số (21)
    • 2.2 Các nhân tố của quá trình học lan truyền ngƣợc sai số (28)
      • 2.2.1 Khởi tạo các trọng số (28)
      • 2.2.2 Hằng số học α (Anpha) (29)
      • 2.2.3 Tập mẫu học và dự báo (30)
    • 2.3 Cấu trúc mạng (31)
    • 2.4 Sự hội tụ của thuật toán huấn luyện mạng (32)
  • CHƯƠNG III: KỸ THUẬT NHẬN DẠNG BẢN RÕ TIẾNG ANH (33)
    • 3.1 Bài toán (33)
    • 3.2 Thuật toán (33)
      • 3.2.1 Phần off-line (33)
      • 3.2.2 Phần on-line (39)
      • 3.2.3 Một số ví dụ (0)
  • CHƯƠNG IV: CÀI ĐẶT VÀ THỰC NGHIỆM (45)
    • 4.1 Kết quả đạt đƣợc (45)
    • 4.2 Mã nguồn của chương trình (46)
      • 4.2.1 Thủ tục tính tần số bộ đôi với độ dài k (46)
      • 4.2.2 Hàm tính tổng của 2 ma trận (47)
      • 4.2.3 Hàm nhận biết ngôn ngữ (47)
  • KẾT LUẬN (48)
  • TÀI LIỆU THAM KHẢO (49)

Nội dung

GIỚI THIỆU CHUNG VỀ MẠNG NEURAL

Tổng quan về mạng neural sinh học

1.1.1 Cấu trúc mạng neural sinh học

Bộ não người chứa khoảng 10^11 tế bào thần kinh (nơ-ron) liên kết phức tạp Mỗi nơ-ron bao gồm ba thành phần chính: thân tế bào thần kinh (soma), hệ thống dây thần kinh tiếp nhận (dendrites) và sợi trục thần kinh (axon).

Hình 1.1 Mô hình tế bào thần kinh

Hệ thống dây thần kinh tiếp nhận là một mạng lưới dày đặc các dây thần kinh dạng cây bao quanh thân tế bào, dẫn tín hiệu đến thân tế bào Thân tế bào tổng hợp các tín hiệu này, làm thay đổi điện thế và khi đạt ngưỡng, phát ra xung điện qua sợi trục thần kinh (axon) Các dây thần kinh axon có thể phân nhánh để kết nối với các dây thần kinh khác hoặc nối trực tiếp với thân tế bào thần kinh khác qua các khớp thần kinh (synapse).

Khi tế bào thần kinh hoạt động, nó tạo ra tín hiệu điện hóa chạy dọc theo sợi axon đến các khớp thần kinh, được chia thành khớp nối kích thích và khớp nối ức chế Tại đây, các phản ứng và giải phóng chất hữu cơ diễn ra, tạo ra tín hiệu điện kích thích tế bào thần kinh Cường độ tín hiệu mà tế bào thần kinh nhận được phụ thuộc vào mức độ liên kết của các khớp nối, và quá trình "học" của bộ não liên quan đến việc hình thành hoặc thay đổi mức độ liên kết này.

1.1.2 Khả năng của mạng neural sinh học (bộ não)

Bộ nhớ được tổ chức thành các bó thông tin, cho phép truy cập nội dung thông qua các giá trị thuộc tính của đối tượng.

Bộ não con người có khả năng tổng quát hóa, cho phép truy xuất tri thức và các mối liên kết chung giữa các đối tượng liên quan đến một khái niệm cụ thể.

- Bộ não có khả năng học

1.1.3 Quá trình học của bộ não

Khi các xung tín hiệu từ các "dây thần kinh vào" đến các khớp nối, chúng quyết định việc cho phép tín hiệu đi qua hoặc không, ảnh hưởng đến sự kích thích của các nơron tiếp theo Điều này tạo ra một con đường truyền xung nhất định trong hệ thống thần kinh.

Học tập là quá trình lặp lại để giảm sức cản của các khớp nối, giúp việc ghi nhớ trở nên dễ dàng hơn Kiến thức và kinh nghiệm tích lũy trong đầu mỗi người chính là hệ thống sức cản của những khớp nối này.

Neural nhân tạo

Mạng nơ-ron nhân tạo (Artificial Neural Networks) là mô hình mô phỏng cơ bản của nơ-ron sinh học Mỗi nơ-ron nhân tạo đảm nhận hai nhiệm vụ chính: tổng hợp thông tin đầu vào và tạo ra đầu ra.

Mỗi neural nhân tạo bao gồm nhiều đầu vào và một đầu ra, với mỗi đầu vào được gán một trọng số (weight) để thể hiện mức độ liên kết tương tự như khớp nối trong mạng neural sinh học Trọng số này có thể mang giá trị dương hoặc âm, phản ánh hai loại khớp nối trong mạng neural sinh học: khớp nối kích thích và khớp nối ức chế.

Mỗi neuron có một giá trị ngưỡng riêng Chức năng đầu vào của neuron là tổng trọng số của các tín hiệu đầu vào kết hợp với ngưỡng, từ đó tạo ra tín hiệu đầu vào gọi là net input.

Sự kết hợp này được thực hiện bằng một tổng hay theo một số tài liệu gọi là hàm PSP (Post Synapic Potential function) - hàm thế sau khớp nối

The output function is represented by a transfer function, which takes the net input signal and generates the output signal of the neural network.

Mạng neural nhân tạo bao gồm hai thành phần chính: các nút, hay còn gọi là đơn vị xử lý, và các liên kết giữa chúng, mỗi liên kết được gán một trọng số thể hiện cường độ kết nối.

Pi là tín hiệu đầu vào, trong khi Xi là tín hiệu đầu ra của neural i Trạng thái đầu vào của neural i được xác định bởi tổng tuyến tính của các tín hiệu vào có trọng số từ các neural j khác.

Hình 1.2 Mô hình neural một đầu vào

Một neural đơn giản có đầu vào p được nhân với trọng số w, tạo thành wp, và một đầu vào khác là 1 nhân với hệ số bias b Hai giá trị này được đưa vào bộ tổng, cho ra tín hiệu đầu vào n, thường gọi là net input Giá trị n sau đó được đưa qua hàm truyền đạt f, dẫn đến đầu ra a của neural Hàm f còn được biết đến là hàm hoạt hóa.

Mô hình đơn giản này có thể được liên hệ với cấu trúc của một neuron sinh học, trong đó trọng số w biểu thị độ mạnh của khớp nối (synapse), đầu vào p tương ứng với dây thần kinh tiếp nhận (dendrite), và thân neuron (cell body) được mô phỏng bởi bộ tổng và hàm truyền đạt Đầu ra a của neuron phản ánh tín hiệu được truyền qua sợi trục (axon) và được tính theo công thức: a = f(wp + b).

Ví dụ: với w=3, p=2 và b= -1,5 thì a=f (3.(2)-1,5)= f (4,5) Đầu ra a phụ thuộc vào hàm truyền f được chọn là hàm nào trong từng trường hợp cụ thể

Hệ số chệch (bias) cũng giống như một trọng số với đầu vào luôn là 1

Neural có thể có hoặc không có hệ số bias (chệch)

Trong mạng nơ-ron, w và b là các tham số vô hướng có thể điều chỉnh Thông thường, hàm truyền được lựa chọn bởi nhà thiết kế, sau đó các tham số w và b sẽ được điều chỉnh theo các quy tắc học để đảm bảo mối quan hệ đầu vào/đầu ra của mạng nơ-ron đáp ứng mục tiêu cụ thể của người thiết kế.

Hàm truyền f có thể là hàm truyền tuyến tính hoặc phi tuyến đối với n Có rất nhiều dạng hàm truyền được sử dụng

BẢNG 1.1: CÁC DẠNG HÀM TRUYỀN

Tên hàm Công thức hardlim a 0 với n < 0 a = 1 với n 0 hardlims a -1 với n < 0 a = 1 với n 0 purelin a = n satlin a = 0 với n < 0 a = n với 0 n 1 a = 1 với n > 1 satlins a = -1 với n < 0 a = n với 0 n 1 a = 1 với n > 1 tansig n e e a e n n

1 poslin a 0 với n < 0 a = n với n 0 compet a = 1 với neural có n lớn nhất a = 0 với các neural còn lại logsig n a e

Thông thường neural có nhiều đầu vào Một neural với R đầu vào được diễn tả:

Hình 1.3 Mô hình neural nhiều đầu vào

Mỗi đầu vào riêng biệt p1, p2, , pR tương ứng với trọng số w1,1, w1,2, , w1,R trong ma trận trọng số W Ta có công thức n = w1,1.p1 + w1,2.p2 + + w1,R.pR + b, có thể viết gọn dưới dạng ma trận là n = Wp + b, trong đó ma trận W chỉ gồm một hàng.

Véc tơ tín hiệu được biểu diễn dưới dạng ma trận, với đầu ra của neural được tính theo công thức a = f(Wp + b) Trong ma trận W, mỗi phần tử w i,j đại diện cho trọng số kết nối đầu vào thứ j với neural thứ i, trong trường hợp này chỉ có một neural, nên i = 1.

Mô hình neural nhiều đầu vào trên có thể được ký hiệu vắn tắt như sau:

Hình 1.4 Mô hình vắn tắt neural nhiều đầu vào Đầu vào a= f (Wp+b)

Mô hình trên cho thấy vec-tơ đầu vào p có R phần tử, trong khi ma trận trọng số W có 1 hàng và R cột Hằng số đầu vào 1 được nhân với hệ số bias b, và bộ tổng kết hợp với b và Wp tạo ra tín hiệu đầu vào là số vô hướng Hàm truyền f chuyển đổi n thành đầu ra a, trong đó a là số vô hướng trong trường hợp này, nhưng trong mạng neural, a là vec-tơ đầu ra Chúng ta sẽ sử dụng mô hình vắn tắt này để biểu diễn các mạng neural.

Mạng neural nhân tạo

Mạng neural nhân tạo là cấu trúc bao gồm các nút (neural) liên kết với nhau, mỗi liên kết mang một trọng số thể hiện mức độ kích hoạt hoặc ức chế Các nút được tổ chức theo các lớp, bao gồm lớp đầu ra (output layer) và các lớp ẩn (hidden layer) Những đặc điểm nổi bật của mạng neural nhân tạo bao gồm khả năng học tập và thích ứng với dữ liệu, giúp cải thiện hiệu suất trong các tác vụ phức tạp.

- Mạng được xây dựng bằng các neural liên kết lại với nhau

- Chức năng của mạng được xác định bởi: cấu trúc mạng, quá trình xử lý bên trong của từng neural, và mức độ liên kết giữa các neural

Mức độ liên kết giữa các nơ-ron trong mạng neural được xác định qua quá trình huấn luyện Các trọng số trong mạng đóng vai trò như phương tiện lưu trữ thông tin dài hạn Nhiệm vụ chính của quá trình huấn luyện là cập nhật các trọng số dựa trên thông tin từ các mẫu học.

* Một số định nghĩa về mạng neural:

Mạng neural là một hệ thống gồm nhiều phần tử xử lý hoạt động đồng thời Chức năng của mạng neural được xác định bởi cấu trúc của nó, độ lớn của các liên kết và quá trình xử lý diễn ra tại từng nút hoặc đơn vị tính toán.

Mạng neural là một hệ thống xử lý song song mạnh mẽ, có khả năng lưu trữ tri thức từ kinh nghiệm và phát triển tri thức mới dựa trên những gì đã học.

Nó tương tự với bộ não ở hai khía cạnh:

- Tri thức có được thông qua quá trình học

- Độ lớn liên kết giữa các neural được dùng như một phương tiện lưu trữ thông tin

Hệ thống neural nhân tạo, hay mạng neural, là tập hợp các tế bào vật lý liên kết nhằm thu thập, lưu trữ và tối ưu hóa tri thức, kinh nghiệm.

1.3.2 Một số chức năng của mạng neural nhân tạo

1.3.2.1 Chức năng phân loại mẫu

Phân loại mẫu là quá trình sắp xếp các mẫu thành các nhóm khác nhau, và mạng neural đóng vai trò như một bộ phân loại mẫu hiệu quả Khi nhận đầu vào là một mẫu, mạng neural có khả năng tạo ra một mẫu đầu ra tương ứng với phân loại chính xác Điểm nổi bật của mạng neural so với các bộ phân loại khác là khả năng học hỏi và tổng quát hóa, cho phép nó cải thiện hiệu suất phân loại theo thời gian.

1.3.2.2 Học và tổng quát hóa Đầu tiên là việc học, có thể hiểu việc này là cho mạng neural xem một ít mẫu kèm với đầu ra tương ứng với mẫu đó và mạng neural phải học để phân loại đúng được các mẫu này Còn khả năng tổng quát hóa là: mạng neural không chỉ nhận biết được các mẫu nó đã được học mà có thể nhận được các mẫu gần với mẫu nó đã được học Tức là mạng neural có thể suy ra các đặc tính chung của các lớp khác nhau từ các mẫu đã cho Chức năng này tạo ra một chiến lược tính toán rất phù hợp cho việc giải quyết các vấn đề mang tính "động", tức là thông tin về chúng có rất ít hoặc bị thiếu, không đầy đủ Điểu quan trọng là tìm được mô hình mạng và phương pháp học thích hợp đối với từng bài toán

Ngoài ra mạng neural còn có khả năng được huấn luyện để trở thành bộ xấp xỉ hàm liên tục bất kỳ

1.3.3 Lịch sử phát triển của mạng neural nhân tạo

Cuối thế kỷ 19 và đầu thế kỷ 20, các nhà khoa học như Herman, Ernst Mach và Ivan Ivalov đã nghiên cứu về vật lý, tâm lý và hệ thần kinh, đóng góp lý thuyết cho quá trình học, tưởng tượng và quyết định của hệ thần kinh Tuy nhiên, chưa có một mô tả toàn diện nào về hoạt động của mạng neural.

Năm 1943, Warren McCulloch và Walter Pits đã giới thiệu mô hình mạng neural đơn giản bằng mạch điện tử, khẳng định rằng mạng neural nhân tạo có thể thực hiện các phép toán số học và logic Đây được xem là khởi đầu của lĩnh vực mạng neural.

- Sau đó Donal Hebb đưa ra một cơ chế giải thích cho quá trình học (learning) diễn ra trong các neural sinh học (trong cuốn Organnization of Behaviaor - 1949)

Cuối thập niên 50, Frank Rosenblatt đã giới thiệu ứng dụng thực tế đầu tiên của mạng neural nhân tạo với mạng Perceptron, kết hợp luật học để nhận dạng mẫu Cùng thời điểm này, Bernard Widrow và Ted Hoff phát triển một thuật toán học, áp dụng để huấn luyện các mạng neural tiếp hợp tuyến tính, tương tự như mạng của Rosenblatt.

Năm 1969, các nhà toán học Minskey và Papert đã chỉ ra những hạn chế của mạng Perceptron của Rosenblatt và mạng Widrow-Hoff, khiến nhiều người tin rằng nghiên cứu về mạng neural sẽ rơi vào ngõ cụt Thêm vào đó, vào thời điểm đó, sự thiếu hụt máy tính số mạnh để thực nghiệm mạng neural đã dẫn đến việc trì hoãn nghiên cứu trong gần một thập kỷ.

In 1972, Teuvo Kohonen and James Anderson independently developed neural networks with memory capabilities and self-organizing abilities During the same period, Stephen Grossberg also conducted extensive research on self-organizing networks.

Vào thập kỷ 80, sự bùng nổ của ngành công nghiệp máy tính đã thúc đẩy nghiên cứu về mạng neural tăng nhanh chóng, với hai phát kiến quan trọng nhất được ra đời trong giai đoạn này.

Sử dụng cơ học thống kê để giải thích hoạt động của mạng hồi quy một lớp, loại mạng này được ứng dụng như một bộ nhớ kết hợp, theo mô tả của nhà vật lý John Hopfield.

+ Sử dụng thuật toán lan truyền ngược (back-propagation algorithm) để huấn luyện các mạng perceptron đa lớp (mutilayer perceptron network) David

Rumelhalt và James McClrlland là những người trình bày thuật toán lan truyền ngược có ảnh hưởng nhất (1968)

- Ngày nay, lĩnh vực mạng neural được nghiên cứu, phát triển mạnh mẽ và ứng dụng rất nhiều vào trong thực tế.

Kiến trúc mạng neural

Một neural với rất nhiều đầu vào cũng không đủ để giải quyết các bài toán Ta cần nhiều neural được tổ chức song song tạo thành "lớp" (layer)

Hình 1.5 Cấu trúc chung của mạng neural

Một mạng của lớp S của neural với R đầu vào được biểu diễn bởi hình sau: a= f (Wp + b)

Hình 1.6 Mô hình mạng neural có 1 lớp S neural

Mỗi thành phần của R đầu vào được kết nối với từng neural trong lớp gồm S neural, tạo thành ma trận trọng số W với S hàng và R cột Kết quả đầu ra a sẽ bao gồm S phần tử.

Mạng neural bao gồm ma trận trọng số, các bộ tổng và véctơ hệ số bias b Thay vì coi đầu vào là một lớp neural chỉ nhận tín hiệu, chúng ta xem đầu vào như một véctơ các tín hiệu Do đó, mạng neural này chỉ có một lớp, đó là lớp ra của mạng.

Trong lớp nơ-ron, mỗi nơ-ron có hệ số bias b1, bộ tổng hàm truyền f và đầu ra a i Khi kết hợp các nơ-ron trong lớp, đầu ra sẽ tạo thành một véctơ a Thông thường, số lượng đầu vào là

R, các số neural S Mỗi một neural trong lớp có thể có một hàm truyền riêng không nhất thiết tất cả các neural trong cùng một lớp thì phải có cùng một dạng hàm truyền

1.4.2 Mạng neural nhiều lớp (Multiple Layers of Neurons)

Trong mạng nhiều lớp, mỗi lớp bao gồm ma trận trọng số W, véctơ bias B, véctơ đầu vào n, và véctơ đầu ra a, với chỉ số phụ để phân biệt các lớp Cụ thể, W_q biểu thị ma trận trọng số của lớp q và b_q là véctơ bias của lớp q Đầu vào cho lớp 1 (lớp ẩn) được tính toán bằng a_1 = f_1(W_1 p + b_1), trong khi đầu ra của lớp 2 (lớp ra) được tính bằng a_2 = f_2(W_2 p + b_2).

Hình 1.7 Mô hình neural 2 lớp

Theo hình vẽ, mạng có R đầu vào với S1 nơ-ron ở lớp thứ nhất và S2 nơ-ron ở lớp thứ hai Đầu ra của lớp trước là đầu vào cho lớp sau Lớp thứ hai nhận đầu vào gồm S1 phần tử từ vectơ ra a1, cùng với ma trận W2 có kích thước S2 x.

Lớp ra là lớp cuối cùng của mạng, nơi đưa ra kết quả, trong khi các lớp còn lại được gọi là lớp ẩn Mạng này bao gồm một lớp ẩn (lớp 1) và lớp ra (lớp 2).

Mạng nhiều lớp vượt trội hơn mạng một lớp về khả năng xử lý Cụ thể, mạng hai lớp sử dụng hàm truyền sigmoid ở lớp ẩn và hàm truyền tuyến tính ở lớp ra có khả năng huấn luyện để xấp xỉ bất kỳ hàm phi tuyến nào, điều mà mạng một lớp không thể thực hiện.

Tùy thuộc vào từng bài toán cụ thể, việc lựa chọn số lượng đầu vào và số lượng nơ-ron trên lớp ra của mạng là rất quan trọng Chẳng hạn, nếu bài toán có 4 biến đầu vào, mạng sẽ được thiết kế tương ứng với số lượng này để tối ưu hóa hiệu quả xử lý.

Khi một mạng nơ-ron có 4 đầu vào và 2 tham số đầu ra, lớp ra sẽ chứa 2 nơ-ron tương ứng với 2 tham số đó Hình thức của hàm truyền tại lớp ra phụ thuộc vào đặc tính của biến ra; ví dụ, nếu biến ra nằm trong khoảng [-1,1], hàm truyền hard limit là lựa chọn phù hợp cho các nơ-ron trong lớp ra.

Mạng neural một lớp cho phép thiết kế kiến trúc dễ dàng tùy thuộc vào bài toán, trong khi mạng neural nhiều lớp (có ít nhất 1 lớp ẩn) gặp khó khăn trong việc xác định số lượng lớp ẩn và số lượng neural trên từng lớp Nghiên cứu hiện tại cho thấy thực tế chỉ sử dụng từ 1 đến 2 lớp ẩn, và việc sử dụng 3 hoặc 4 lớp là rất hiếm Mỗi neural có thể có hoặc không có hệ số mẫu bias b, hệ số này cung cấp một biến phụ giúp tăng cường khả năng của mạng Ví dụ, nếu neural không có hệ số bias, kết quả đầu vào net input n sẽ là 0 khi đầu vào p là 0, điều này có thể được cải thiện nếu neural có hệ số bias.

Phân loại mạng neural

Mạng neural nhân tạo là một hệ thống được hình thành từ sự kết nối của các neural nhân tạo Kiến trúc mạng neural được xác định bởi cách bố trí và mối liên hệ giữa các neural, tạo nên khả năng xử lý thông tin hiệu quả.

In neural network architecture, a single-layer network consists of only one output layer, while a multiple-layer network includes one or more hidden layers.

Theo cách liên hệ giữa các neural thì kiến trúc mạng truyền thẳng (feedforward networks) và kiến trúc mạng hồi quy (recurrent networks)

Liên kết bên (lateral connection) là một loại liên kết dựa trên sự phân bố các nơ-ron trong không gian hai chiều của một lớp Nhờ vào liên kết này, Kohonen đã phát triển mạng nơ-ron tự tổ chức (self-organizing neural network).

Mạng neural có thể được phân chia thành hai nhóm chính dựa trên thuật toán học của chúng: loại học có giám sát (supervised) và loại học không được giám sát (unsupervised).

* Kiến trúc mạng truyền thẳng

Kiến trúc mạng truyền thẳng (feedforward) là loại kiến trúc mà các nơron không tạo thành chu trình, cho phép tín hiệu di chuyển từ lớp nơron này sang lớp khác một cách tuần tự Tín hiệu được truyền qua các lớp ẩn trước khi ra khỏi lớp nơron cuối cùng, mang lại khả năng phản hồi nhanh chóng và ổn định Các liên kết giữa các lớp có thể là liên kết đầy đủ (fully connected) hoặc liên kết một phần (partly connected).

Hoạt động của mạng neural nhân tạo

1.6.1 Hoạt động của mạng neural

Mạng neural hoạt động như một hệ thống xử lý thông tin với các neural trong cùng một lớp nhận tín hiệu đầu vào đồng thời, cho phép xử lý song song Khi hoạt động, các thành phần của vectơ tín hiệu vào p = (p1, p2, , pR) được đưa vào mạng, kích hoạt dần các neural ở lớp ẩn và lớp ra Qua quá trình tính toán, mạng sẽ hoàn toàn được kích hoạt và tạo ra vectơ tín hiệu đầu ra a = (a1, a2, , aS) từ S neural ở lớp ra Mạng neural có thể được coi như một bảng tra cứu giữa a và p mà không cần biết rõ hàm quan hệ giữa chúng.

Mạng neural khác biệt với hệ thống xử lý thông thường nhờ khả năng thích nghi với dữ liệu đầu vào Ma trận trọng số và hệ số bias trong mạng có thể được điều chỉnh để phù hợp với bài toán cụ thể Quá trình điều chỉnh này được gọi là huấn luyện mạng.

(training) bằng một số luật học

1.6.2 Luật học của mạng neural

Luật học là quy trình điều chỉnh trọng số và hệ số bias trong mạng, thường được gọi là thuật toán huấn luyện mạng Mục đích chính của luật học là đào tạo mạng để thực hiện các nhiệm vụ mà chúng ta mong muốn.

Có rât nhiều luật học cho mạng neural Chúng được chia làm 3 loại:

- Luật học có giám sát (supervised learning)

- Luật học không giám sát (unsupervised learing)

- Luật học tăng cường (reinforcement learning)

Trong khuôn khổ đồ án này ta chỉ nghiên cứu luật học có giám sát

*Luật học có giám sát

Một yếu tố quan trọng trong phương pháp này là sự hiện diện của một người thầy bên ngoài hệ thống, người có kiến thức về môi trường thông qua các cặp đầu vào - đầu ra đã được xác định Hệ thống học, cụ thể là mạng neural, cần điều chỉnh các tham số bên trong như trọng số và ngưỡng để tạo ra ánh xạ chính xác từ đầu vào đến đầu ra mong muốn Quá trình điều chỉnh này được thực hiện thông qua việc so sánh giữa đầu ra thực tế và đầu ra kỳ vọng.

Trong lĩnh vực luật học, giám sát đóng vai trò quan trọng khi cung cấp một tập hợp các mẫu chuẩn (training set) để thể hiện mối quan hệ giữa đầu vào và đầu ra của mạng.

Trong mạng nơ-ron, đầu vào p q được so sánh với đầu ra đích t q để đánh giá hiệu quả hoạt động của mạng Khi đầu vào được đưa vào, đầu ra thực tế của mạng sẽ được so sánh với đầu ra đích Sai số giữa hai giá trị này được sử dụng để điều chỉnh trọng số và hệ số bias, nhằm đưa đầu ra thực của mạng gần hơn với đầu ra đúng.

Có hai cách sử dụng tập mẫu học: hoặc học lần lượt từng mẫu, hoặc tất cả các mẫu cùng một lúc

Để đánh giá sự sai lệch giữa vectơ đầu ra của mạng và đầu ra đúng, ta sử dụng hàm sai số, trong đó hàm tổng bình phương sai số (sum square error function) là phổ biến nhất, tính tổng bình phương các sai số tại đầu ra của các lớp neural.

Mặt sai số (error surface) là khái niệm quan trọng trong việc đánh giá sai số của mạng nơ-ron, trong đó mỗi trọng số và hệ số bias tương ứng với một chiều trong không gian Nếu mạng có N trọng số và hệ số bias, thì chiều thứ N+1 sẽ đại diện cho sai số của mạng Mỗi bộ trọng số và hệ số bias tương ứng với một điểm trên mặt sai số, và mục tiêu của quá trình học là tìm ra bộ trọng số và hệ số bias đạt điểm thấp nhất (điểm cực tiểu) trên mặt đa chiều này.

MẠNG PERCEPTRON ĐA LỚP VỚI LUẬT HỌC LAN TRUYỀN NGƢỢC SAI SỐ

Mạng neural nhiều lớp lan truyền ngƣợc sai số

2.1.1 Tổng quan về mạng neural truyền thẳng nhiều lớp

Mạng Perception chỉ có khả năng phân loại mẫu trong không gian mẫu khả tách tuyến tính, tức là có thể phân chia bằng các siêu phẳng Đối với không gian mẫu không khả tách tuyến tính, cần sử dụng mạng Perceptron đa lớp (MLP - Multilayer Perceptron) để thực hiện phân loại hiệu quả hơn.

MLP (Multi-Layer Perceptron) là kiến trúc mạng nơ-ron với nhiều lớp, bao gồm cả lớp ẩn Hàm truyền trong MLP không chỉ giới hạn ở hàm hardlimit, tuy nhiên, các nơ-ron trong cùng một lớp sử dụng cùng một loại hàm truyền.

Rosenblat và các tác giả đã nghiên cứu mạng truyền thẳng nhiều lớp từ cuối những năm 50, nhưng chủ yếu tập trung vào mạng Perceptron một lớp do khó khăn trong việc điều chỉnh trọng số ở các lớp ẩn Minsky và Papert đã chỉ ra rằng việc tổng quát hóa luật học từ mạng một lớp sang mạng nhiều lớp là khó khăn, với hai vấn đề chính: thuật giải học có thể không hiệu quả và quá trình học không luôn giải quyết được trong trường hợp tồi nhất Mặc dù các nguyên tắc cơ bản cho mạng nhiều lớp đã được đề xuất từ năm 1969, nhưng chỉ đến năm 1986, nhờ công trình của Rumehart, mạng truyền thẳng nhiều lớp mới được ứng dụng rộng rãi, với 90% ứng dụng mạng neural trong công nghệ hóa học sử dụng mô hình này Một số tác giả vẫn áp dụng các mạng này như bảng tra và phân lớp, đạt được kết quả tốt, mặc dù có nhiều mạng khác phù hợp hơn cho các nhiệm vụ đó.

Thủ tục học tham số của mạng neural truyền thẳng nhiều lớp chủ yếu sử dụng phương pháp lan truyền ngược sai số Phương pháp này đã trở nên phổ biến đến mức nhiều tác giả thường đồng nhất mạng neural với mạng neural nhiều lớp sử dụng lan truyền ngược sai số Sự thu hút của phương pháp này nằm ở sự rõ ràng trong các phương trình hiệu chỉnh trọng số, áp dụng cho từng lớp từ lớp ra đến lớp vào Tuy nhiên, quy trình hiệu chỉnh trọng số trong lan truyền ngược sai số không giống như quá trình học của các neural sinh học, mà thực chất là một quy trình dịch chuyển ngược theo hướng gradient.

Mạng Perceptron có kiến trúc mạng truyền thẳng đa lớp với một hoặc nhiều lớp ẩn, trong đó mỗi lớp bao gồm ma trận trọng số W, véctơ bias b, véctơ netinput n và véctơ đầu ra a Để phân biệt các lớp, ta sử dụng chỉ số phụ cho từng biến, ví dụ, W q đại diện cho ma trận trọng số của lớp q, và b q chỉ véctơ bias của lớp q.

Hàm truyền f có thể có nhiều dạng không phải chỉ là hàm sigmoid ( ) 1

1 n f x e , các Neural trong cùng một lớp thường có cùng dạng hàm truyền

Theo hình vẽ, mạng nơron có R đầu vào, với S1 nơron ở lớp thứ nhất và S2 nơron ở lớp thứ hai Đầu ra của lớp trước sẽ là đầu vào cho lớp sau Lớp thứ hai nhận đầu vào từ S1 phần tử trong vectơ ra a1, kết hợp với ma trận w2 có kích thước S2 x S1 Kết quả cuối cùng của mạng được đưa ra bởi lớp ra, trong khi các lớp còn lại được gọi là các lớp ẩn.

2.1.3 Cơ chế huấn luyện của mạng neural lan truyền ngược sai số

Năm 1986, Rumelhart và McClelland đã giới thiệu thuật toán huấn luyện cho mạng MLP, dựa trên nguyên lý lan truyền ngược sai số Phương pháp này, còn được gọi là lan truyền ngược độ nhạy, cho phép điều chỉnh ma trận trọng số và các hệ số bias bằng cách lan truyền sai số từ lớp đầu ra trở lại các lớp ẩn và đầu vào, nhằm tối thiểu hóa sai số trung bình bình phương.

Nghiên cứu cho thấy phương pháp học có giám sát với thuật toán lan truyền ngược sai số là một trong những phương pháp huấn luyện hiệu quả cho mạng neural nhiều tầng truyền thẳng MLP trong các bài toán phân loại mẫu Quá trình huấn luyện này bao gồm hai pha ngược chiều: truyền thẳng (lan truyền xuôi) và lan truyền ngược.

Trong quá trình huấn luyện mạng, với tập mẫu p1, t1, p2, t2, , pQ, tQ, đầu vào và đầu ra mục tiêu được xác định Khi mẫu pq được truyền qua mạng, tín hiệu đầu ra aq được tạo ra, và thuật toán sẽ điều chỉnh các tham số của mạng nhằm tối thiểu hóa sai số bình quân.

F(x)= E[e 2 ] = E [ (t -a) 2 ] (1.1) với x là vectơ trọng số và hệ số bias của mạng được viết như sau: b x W

Khi mạng có nhiều đầu ra thì (1.1) được viết dưới dạng vectơ như sau;

F(x)= E[e T e] = E [ (t -a) T (t-a) ] (1.2) đây là trị trung bình của sai số bình phương và thực tế là không tính được mà chỉ có thể xấp xỉ bởi:

Mục tiêu của huấn luyện mạng là nhằm điều chỉnh W là b sao cho F ˆ ( x ) đạt giá trị nhỏ nhất F ˆ ( x )còn được gọi là hàm chất lượng của mạng

Giả sử N là tổng số trọng số và hệ số bias của mạng, mỗi trọng số và hệ số bias có thể được coi là một biến, từ đó hàm F ˆ (x) trở thành hàm với N biến Về mặt hình học, Fˆ (x) được xem như một mặt lỗi, trong đó mỗi điểm tương ứng với một bộ trọng số và hệ số bias Để xác định điểm thấp nhất trên mặt lỗi, ta áp dụng phương pháp giảm dốc nhất (steepest descent algorithm) thông qua việc tính đạo hàm riêng.

F ˆ (x) theo từng trọng số và hệ số bias Hiệu chỉnh số và hệ số bias tại bước lặp thứ kiến trúc thượng tầng +1 theo công thức sau: m j w i , (k+1) = w i m , j (K) - m j w i k F

1 ˆ (1.5) Với m là chỉ số lớp của mạng, còn (k) là hê số học (learning rate) tại bước lặp thứ k

Trong các lớp ẩn, F ˆ.(x) không phải là hàm hiện mà là hàm giám tiếp của các trọng số, do đó cần áp dụng luật dây chuyền để tính các đạo hàm riêng Theo luật dây chuyền, nếu giả thiết hàm f là hàm hiện duy nhất của biến n, ta có thể tính đạo hàm của F theo biến số thứ ba là w bằng công thức: dw = w * n * df( ( )).

Sử dụng công cụ 1.6, có thể tính đạo hàm riêng của F ˆ (x) theo các công thức (1.4) và (1.5) Tín hiệu đầu vào của neural thứ i trong lớp thứ m được biểu diễn như sau: n m i = m j i m s j m j i a b w m.

(1.7) với s m 1 là số neural trên lớp m-1 Đây là một hàm hiện của các trọng số và hệ số bias Theo đó ta có :

Sử dụng luật dây chuyền (1.6) ta có:

Trong công thức (1.9) và (1.10) ta đặt : s i m = m n i

Độ nhạy cảm của hàm F ˆ (x) đối với sự biến đổi tín hiệu vào của neural thứ i trên lớp m được xác định qua các công thức trọng số bias Cụ thể, công thức trọng số bias được biểu diễn như sau: \( w_{m,i,j}(k+1) = w_{i,m,j}(k) \cdot s_{i,m} \cdot a_{m,j} \) và \( b_{i,m}(k+1) = b_{m,i}(k) \cdot s_{i,m} \).

Ma trận độ nhạy cảm của lớp m có thể viết dưới dạng như sau: s m s m m m n m

Khi đó công thức (1.12) và (1.13) trở thành công thức ma trận như sau:

B m ( k 1 ) B m ( k ) s m (1.16) Với W m là ma trận trong số B m là ma trận hệ số bias của lớp m Còn a m 1 là ma trận tín hiệu của lớp m-1

Thuật toán lan truyền ngược hoạt động dựa trên nguyên tắc tính toán độ nhạy cảm của lớp m từ độ nhạy của lớp m+1 đã được xác định trước Nhờ đó, độ nhạy được lan truyền ngược từ lớp đầu ra trở lại các lớp ẩn.

Với s 1 là ma trận độ nhạy cảm của lớp ẩn thứ nhất Để tìm mối quan hệ độ nhạy giữa lớp m+1 và lớp m ta có: m j m m j j m i j s k m i m k k i m j m i n w a n b a w n n m

Ta lại có tín hiệu của neural j của lớp m được tinh theo hàm truyền f của nó với đối số là tín hiệu vào : a m j f m ( n m j ) (1.18)

, ( m j m n (1.19) Theo công thức (1.19) ta phải tính được đạo hàm truyền f theo tín hiệu đầu vào

Nếu hàm truyền trên lớp m của mạng là hàm sigmoid thì: f'' m ( n i m ) a i m ( 1 a i m ) m s m s m m s m m s m s m m m m m m s m m m m m m m r r r r m m n n n n n n n n n n n n n n n n n n n n

Để có công thức dạng ma trận, ma trận Jacobian được định nghĩa như sau: Định nghĩa ma trận đạo hàm truyền của lớp m:

Công thức (1.19) ở dạng ma trận sẽ là :

Sử dụng luật dây chuyền ta có

Theo công thức (1.21), độ nhạy S m có thể được tính từ S m 1, thể hiện quá trình lan truyền ngược độ nhạy Quá trình này bắt đầu bằng việc tính toán S m, tức là độ nhạy tại lớp ra.

Vì a i là tín hiệu của neural i lớp M nên ta có:

Thay vào (1.22) ta suy ra:

Dạng ma trận s M sẽ là:

Các nhân tố của quá trình học lan truyền ngƣợc sai số

Trong phần này, chúng ta sẽ khám phá các yếu tố quan trọng ảnh hưởng đến tốc độ hội tụ, tốc độ học, các cực tiểu cục bộ và khả năng dự báo của mạng lan truyền ngược sai số Những yếu tố này đóng vai trò quyết định trong hiệu suất và độ chính xác của mô hình học máy.

+ Khởi tạo các trọng số

+ Hàm giá (sự đánh giá sai số trên lớp ra)

+ Tập mẫu học và sự báo

+ Cấu trúc mạng (số lớp, số neural trên mỗi lớp)

2.2.1 Khởi tạo các trọng số

Giá trị khởi tạo trọng số trong mạng lan truyền ngược sai số đóng vai trò quan trọng trong việc xác định kết quả cuối cùng Thông thường, các trọng số này được khởi tạo bằng các số ngẫu nhiên nhỏ, vì nếu tất cả trọng số được khởi tạo bằng nhau, quá trình học của mạng sẽ không hiệu quả Đồng thời, trọng số khởi tạo không nên quá lớn, bởi nếu không, hàm sigmoidal sẽ nhanh chóng bị bão hòa, dẫn đến tình trạng hệ thống mắc kẹt tại một điểm cục bộ hoặc trong một vùng phẳng gần điểm xuất phát.

Một phương pháp hiệu quả để chọn trọng số ban đầu là sử dụng chương trình tự động Các giá trị khởi động cho trọng số ở lớp thứ m được xác định ngẫu nhiên trong khoảng [-1/n, 1/n], với n là tổng trọng số tại lớp m.

Hằng số học α là một yếu tố quan trọng ảnh hưởng đến hiệu lực và độ hội tụ của thuật toán học lan truyền ngược sai số Không có giá trị duy nhất nào phù hợp với tất cả các bài toán, do đó hằng số học thường được chọn thông qua phương pháp thử và sai cho từng ứng dụng cụ thể Giá trị α lớn có thể tăng tốc quá trình hội tụ, nhưng lại dễ dẫn đến việc kết thúc quá trình học tại một cực tiểu cục bộ gần nhất Ngược lại, nếu α quá nhỏ, tốc độ hội tụ sẽ chậm lại Do đó, cần tìm một giá trị thỏa hiệp giữa tốc độ học và việc ngăn chặn các cực tiểu cục bộ Các giá trị hằng số học từ 10^-3 đến 10 đã được áp dụng thành công cho nhiều bài toán, và giá trị trong khoảng [0.3, 0.6] thường được chứng minh là lựa chọn ban đầu tốt cho quá trình tìm kiếm hằng số học thích hợp.

Một vấn đề quan trọng trong quá trình học là giá trị của hằng số học ban đầu có thể không phù hợp cho các giai đoạn sau Do đó, việc áp dụng hằng số học thích nghi là một phương pháp hiệu quả hơn Phương pháp này bao gồm việc kiểm tra xem các trọng số mới có làm giảm hàm mất mát hay không; nếu không, cần giảm hằng số học α để điều chỉnh lại trọng số Ngược lại, nếu nhiều vòng lặp liên tiếp giảm hàm mất mát, chúng ta nên thử tăng giá trị của hằng số học Hằng số học thích nghi cần được cập nhật theo quy tắc cụ thể để tối ưu hóa quá trình học.

Trong đó ∆E là thay đổi hàm giá, a,b là các hằng số dương Ý nghĩa của việc "luôn" nhỏ hơn 0 được đánh giá dựa trên k lặp liên tiếp

2.2.3 Tập mẫu học và dự báo

Để đảm bảo tập mẫu học đủ và đúng, không có một thủ tục hay nguyên tắc chung nào phù hợp cho mọi trường hợp Một nguyên tắc kinh nghiệm cho thấy tập mẫu học cần bao phủ toàn bộ không gian tín hiệu vào, và sau quá trình học, véctơ vào - lời giải nên được chọn ngẫu nhiên từ tập mẫu Cụ thể, nếu không gian tín hiệu vào được phân chia thành M vùng riêng biệt với ranh giới là các siêu phẳng, thì số mẫu học tối thiểu P nên được chọn sao cho tỉ số P/M lớn hơn rất nhiều Điều này giúp mạng có khả năng phân biệt các vùng tách biệt trong quá trình học Ngoài ra, việc tỉ lệ hóa hay chuẩn hóa mẫu học có thể cải thiện hiệu quả học của mạng Đối với các mạng neural sử dụng hàm biến đổi sigmoidal, véctơ vào và véctơ ra cần được tỷ lệ hóa một cách chính xác.

Mạng Neural nhiều lớp lan truyền ngược sai số là công cụ hiệu quả cho dự báo và giải quyết vấn đề Một mạng được coi là dự báo tốt khi có khả năng nội suy các tín hiệu chưa biết một cách hợp lý Với số lượng trọng số lớn, mạng có thể học tốt từ một tập mẫu nhất định, nhưng cũng dễ gặp hiện tượng quá trình học quá (overfitting) Ngược lại, nếu số lượng trọng số quá nhỏ, mạng sẽ không học được các mẫu và cho kết quả kém Để nâng cao khả năng học và dự báo, cần giảm độ nhạy của mạng với những thay đổi nhỏ trong tín hiệu đầu vào Điều này có thể thực hiện bằng cách thêm các thay đổi nhỏ vào tập mẫu mà vẫn giữ nguyên giá trị véctơ lời giải, mặc dù điều này có thể làm tăng thời gian tính toán Một phương pháp khác là điều chỉnh hàm giá trong thuật toán lan truyền ngược sai số, bằng cách kết hợp hàm giá hiện tại với một số hạng là hàm jacobien của hàm giá.

Trong nghiên cứu này, các tác giả Drucker và LeCum đã phát triển một mạng lan truyền ngược kép nhằm tối ưu hóa hàm giá mới trong bối cảnh tín hiệu vào thay đổi nhỏ Mạng này bao gồm hai loại lan truyền tín hiệu: một cho sai số E / w j và một cho tín hiệu E b / w j Kỹ thuật này đã giúp cải thiện đáng kể khả năng dự báo của mạng neural nhiều lớp lan truyền ngược sai số.

Cấu trúc mạng

Mạng neural lan truyền ngược sai số bao gồm một lớp vào và một lớp ra, với số lớp ẩn có thể thay đổi từ 0 đến nhiều lớp Đối với mỗi bài toán cụ thể, số lượng nơ-ron trên lớp vào và lớp ra là cố định, trong đó số nơ-ron trên lớp vào tương ứng với số biến của véc-tơ đầu vào, và số nơ-ron trên lớp ra tương ứng với số biến của véc-tơ đầu ra.

Đại đa số các mạng neural lan truyền ngược sai số chỉ có 1 lớp ẩn, nhưng kích thước của lớp ẩn (số lượng neural) là một câu hỏi quan trọng trong các ứng dụng Việc xác định số lượng neural trên lớp ẩn gặp khó khăn do tính phức tạp và bản chất không tiền định của các thủ tục học, nên thường phải dựa vào thực nghiệm Một hướng dẫn chung là đối với các mạng neural có kích thước lớn (với tín hiệu vào hàng trăm hoặc hàng nghìn biến), kích thước của lớp ẩn ban đầu chỉ nên là một phần nhỏ so với số lượng neural trên lớp vào.

Nếu mạng không thể hội tụ về lời giải, cần tăng số lượng nơ-ron trong lớp ẩn Ngược lại, nếu mạng có khả năng hội tụ, cần giảm số lượng nơ-ron trong lớp ẩn.

Sự hội tụ của thuật toán huấn luyện mạng

Thuật toán huấn luyện ngược tìm kiếm giải pháp tối ưu bằng cách giảm thiểu sai số trung bình bình phương Phương pháp này điều chỉnh trọng số và hệ số bias theo hướng ngược lại với véc-tơ gradient của hàm sai số trung bình bình phương, giúp cải thiện độ chính xác của mô hình.

Phương pháp này có thể được hình dung như việc ném một quả bóng trên bề mặt lỗi và để nó tự lăn xuống điểm thấp nhất Tuy nhiên, đối với mạng MLP, hàm sai số trung bình bình phương thường phức tạp với nhiều cực trị địa phương, dẫn đến bề mặt lỗi nhấp nhô và có nhiều điểm trũng Khi quả bóng được thả từ một điểm ngẫu nhiên, nó có thể chỉ lăn xuống điểm trũng gần nhất, mà không nhất thiết là điểm trũng thấp nhất Do đó, quá trình huấn luyện mạng có thể chỉ đạt đến các cực trị cục bộ mà không tìm được giá trị cực trị toàn cục Sự hội tụ của quá trình huấn luyện phụ thuộc vào các điều kiện ban đầu, đặc biệt là cách chọn hệ số học α sau mỗi bước lặp để cải thiện khả năng hội tụ của mạng.

Khi một quá trình huấn luyện sử dụng thuật toán lan truyền ngược hội tụ, điều này không đồng nghĩa với việc đã đạt được phương án tối ưu Thay vào đó, nó chỉ cho thấy rằng một ngưỡng sai số đã được thiết lập để đánh giá Nếu ngưỡng sai số này tương đối nhỏ, quá trình huấn luyện có thể được dừng lại.

KỸ THUẬT NHẬN DẠNG BẢN RÕ TIẾNG ANH

Bài toán

Chọn một mẫu văn bản x trong ngôn ngữ tiếng Anh hoặc một chuỗi ngẫu nhiên (có thể là chữ cái hoặc chuyển đổi sang mã hex) mà chưa xác định được loại của x.

2 loại nêu trên Hãy xác định xem x thuộc ngôn ngữ cụ thể nào

Lớp A0 đại diện cho ngôn ngữ không đọc được, trong khi lớp A1 đại diện cho ngôn ngữ tiếng Anh Nhiệm vụ đặt ra là xác định x thuộc lớp đại diện nào trong hai lớp này.

Nội dung của thuật toán được chia thành hai phần chính: phần off-line, nơi xây dựng cơ sở dữ liệu phục vụ cho quá trình máy học, và phần on-line, tập trung vào việc nhận biết trực tiếp Dưới đây là chi tiết cụ thể về hai phần này.

Thuật toán

Bài viết đề cập đến việc xây dựng ma trận xác suất chuyển trạng thái cho ngôn ngữ tự nhiên tiếng Anh, với mẫu ước lượng dài khoảng 10.000 ký tự Trong quá trình này, các dấu câu như dấu chấm và dấu phẩy được loại bỏ, và không phân biệt giữa chữ hoa và chữ thường Tài liệu được tổng hợp từ nhiều lĩnh vực khác nhau, bao gồm chính trị, kinh tế, văn học, địa lý, quân sự, thể thao, ngoại giao, lịch sử, y tế, giáo dục và pháp luật, mỗi lĩnh vực chiếm khoảng 1.000 ký tự.

Tính tần số bộ đôi móc xích trong dãy X bằng cách đếm số lần xuất hiện của các cặp chữ cái Latinh Tần số của các chữ cái này được ký hiệu là X=(x ij ) với i, j thuộc tập hợp {a, b, , z}.

Rõ ràng ta có nij n 1 t,t+1 t 1

X (i, j)là số lần xuất hiện cặp ký tự (i,j) đứng kề nhau

Ta có xác suất xuất hiện cặp (i,j) là Pij Do các ngôn ngữ có tính dừng nên xác suất chuyển P ij không phụ thuộc vào t từ là:

Bây giờ ta tính kỳ vọng toán học của đại lượng ngẫu nhiên n ij , ta có kỳ vọng n-1 n-1 ij t,t+1 t,t+1 ij t=1 t=1

Vì vậy rõ ràng là n ij n -1 là ước lượng không chệch đối với tham số Pij Pij

Giả sử i được cố định, ta có thể áp dụng lý luận tương tự để ước lượng không chênh của P ij với n ij n -1 Trong đó, n i được xác định từ 1 đến 26, với i = 1, 2, , 26.

Có một ước lượng tốt hơn ước lượng không chệch theo sai số trung bình bình phương nhỏ nhất, đó là ước lượng được xác định bởi công thức ij = ij + c/n + m.c, trong đó c là hằng số thường được chọn là 0,5 hoặc 1/m (với m là số chữ cái của bảng ngôn ngữ) Khi c = 1/m, ta có ij = ij + 0,0385/n + 1; với i, j = 1, 2, , 26 Đây là ước lượng có chênh lệch nhưng có sai số trung bình bình phương bé nhất cho xác suất chuyển P_ij của ma trận chuyển P.

Kết quả tính ij được cho ở bảng tương ứng sau:

Từ số liệu của bảng A1

Trong đó lg(.) là logarit cơ số 10

[x] = số nguyên lớn nhất nhưng không bé hơn hoặc bằng x

Hệ số k = 7 này là kết quả thực nghiệm giúp cho việc nhận dạng giữa các lớp được tốt hơn

Gọi A = (a ij ) 26x26 với a ij = 1/26 i,j = 1, 2, , 26 Ma trận của dãy ngẫu nhiên

Như vậy, mỗi phần tử A0 = (a (1) ij ) của ma trận bộ đôi của dãy ngẫu nhiên là hệ số 14,79 ≈ 10.000

26 * 26, lấy 2 chữ số thập phân sau dấu phẩy

Ta có bảng như sau:

Giả sử X là mẫu nào đó X = x1x2 xN với xi {a,b, ,z}, i= 1,2, N Vấn đề đặt ra X thuộc ngôn ngữ tiếng Anh hay là một dãy ngẫu nhiên nào đó?

Ta tiến hành như sau:

Step 1: Tính tần số bộ đôi móc xích của dãy X, tức là ta tính số lần xuất hiện các cặp chữ cái Latinh của dãy đó Giả sử, tần số các chữ cái đó lần lượt được ký hiệu là F = (fij) với i,j = a,b, ,z

Step 2: Tính Tr(F.B) bằng công thức: z z jk jk j=a k =a

Nếu C ≥ 0 thì thuật toán dừng và kết luận X thuộc lớp dãy ngẫu nhiên Nếu C < 0 thì thuật toán kết thúc và thông báo X thuộc bản rõ tiếng Anh

Hình 3.1 Sơ đồ khối của thuật toán

Tính tần số bộ đôi móc xích của dãy X lưu vào bảng F

X là dãy ngẫu nhiên X là đọc được

Ví dụ 1 : Ta kiểm tra mẫu văn bản:

Cho X = phooi irsia ectoi ueeso oeefp hfspa psoat ltet trpb vtqiu igdsn eknrh e

Thuật toán nhận diện thông qua việc tính toán tần số của các bộ đôi móc xích Quá trình thực hiện bắt đầu bằng bước đầu tiên, trong đó tần số này được thể hiện qua bảng F.

Sử dụng bảng B1: tính z z jk jk j=a k =a

Dòng Các phép tính tương ứng trên dòng của bảng B1 và F

Vậy C & > 0 Suy ra X là văn bản không hiểu được

Ví dụ 2 : Cho văn bản X = Edit windows are where you type in and edit your Turbo Pascal code You can also do the following in an Edit window

Tính tần số bộ đôi móc xích, được bảng sau (ký hiệu bảng F)

Sử dụng bảng B1: tính z z jk jk j=a k =a

Dòng Các phép tính tương ứng trên dòng của bảng B1 và F

Vậy C = -357 < 0 Suy ra X là văn bản Tiếng Anh.

CÀI ĐẶT VÀ THỰC NGHIỆM

Kết quả đạt đƣợc

Một chương trình phần mềm trên ngôn ngữ C++ đã được xây dựng nhằm thử nghiệm các phép kiểm định đã nêu trên

Các mẫu thử được chọn bao gồm tài liệu Tiếng Anh từ nhiều lĩnh vực như chính trị, kinh tế, văn học, địa lý, quân sự, thể thao, ngoại giao, lịch sử, y tế, giáo dục và pháp luật, với độ dài khác nhau Độ chính xác của các mẫu thử được kiểm tra dựa trên các độ dài khác nhau.

Tiếng Anh Dãy ngẫu nhiên

T.Số Đúng Tỷ lệ T.Số Đúng Tỷ Lệ

Mã nguồn của chương trình

4.2.1 Thủ tục tính tần số bộ đôi với độ dài k int TTSBD(int A[26][26], char *Fname, int k) {

A[i][j]=0; if((F=fopen(Fname,"rt"))==NULL) return 0; int n=0; while (!feof(F)&&n

Ngày đăng: 05/08/2021, 21:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1.] Đinh Mạnh Tường - Trí tuệ nhân tạo Nhà xuất bản khoa học và kỹ thuật - Hà Nội 2002 Khác
[2.] Hoàng Minh Tuấn - Hồ Văn Canh Nghiên cứu phương pháp thám mã khối trên máy tính song song (Luận văn tiến sỹ) - Dùng hệ điều hành Linux (4/2008).Học viện kỹ thuật quân sự, Bộ Quốc Phòng Khác
[3.] Hoàng Kiếm - Nguyễn Ngọc Kỷ... Nhận dạng: Các phương pháp và... Nhà xuất bản thống kê 7/1992.Tài liệu tham khảo tiếng Anh Khác
[4.] Robert J. Schallkoff - Artificial Neural Netwoks The McGraw - Hill Companies, Inc 1997 Khác
[5.] DASPA. Neural Network Study, MA: MIT Lincoln Laboratory, 1988 Khác

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

TÀI LIỆU LIÊN QUAN

w