Mơ hình Markov ẩn

Một phần của tài liệu Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định (Trang 40)

6 Ứng dụng

3.1Mơ hình Markov ẩn

Mơ hình Markov ẩn (Hidden Markov Model - HMM) [13] được giới thiệu vào cuối những năm 1960, nó đặc biệt phù hợp với các bài tốn dạng mơ hình tín hiệu tuần tự. Cho đến hiện nay, HMM đã được sử dụng rất thành cơng trong lĩnh vực nhận dạng tiếng nói (speech recognition), tính tốn sinh học (computational biology), và xử lý ngơn ngữ tự nhiên (Natural Language Processing - NLP). Chính những sự thành cơng đó đã mở ra một hướng tiếp cận mới đối với HMM trong lĩnh vực nhận dạng ký tự quang học (Optical Character Recognition - OCR). Có thể thấy, thời gian gần đây đã xuất nhiều cơng trình nghiên cứu nhận dạng ký tự quang học bao gồm cả chữ in và chữ viết tay, trực tuyến (online) và ngoại tuyến (offline). Do bài tốn nhận dạng giọng nói và nhận dạng văn bản viết tay có mối tương quan cao, đó là cả hai đều xử lý với dữ liệu dạng chuỗi có trình tự nhất định. Bản thân văn bản có thể được coi là dữ liệu tuần tự bằng cách nối một chuỗi các ký tự để tạo thành từ và câu, chúng ta có thể thấy rõ ràng hơn qua việc hình dung về sự chuyển động của ngịi bút trong khi viết. Do đó, cách tiếp cận này bước đầu đã phù hợp và sau đó trở nên phổ biến trong lĩnh vực nhận dạng dữ liệu dạng chuỗi nói chung cũng như nhận dạng ký tự quang học nói riêng. Mặc dù là vậy nhưng khơng giống hồn tồn với nhận dạng tiếng nói,

Các cơng trình liên quan 28

như đã đề cập ở trên đầu vào của bài toán nhận dạng chữ viết tay ngoại tuyến không phải là một dữ liệu dạng chuỗi đơn thuần, mà nó là dữ liệu dưới dạng hình ảnh, là tập hợp của các pixels hai chiều. Tuy nhiên vẫn có những cách tiếp cận được đề xuất áp dụng mơ hình Markov vào các tín hiệu hai chiều đối với dạng hình ảnh, cách tiếp cận thơng thường bao gồm trích xuất chuỗi giám sát và mơ hình hóa chúng.

Một số lợi ích của HMM đối với chữ viết tay được liệt kê như sau:

• Từ một một tập kí tự, chúng ta có thể xây dựng một tập từ cho bất kỳ từ nào của ngôn ngữ đang hướng đến. Do đó, đối với các vấn đề liên quan đến khối lượng từ vựng lớn phương pháp này có khả năng mở rộng hơn nhiều so với các hệ thống đang cố gắng mơ hình hóa từng từ riêng biệt.

• Việc nhận dạng một từ sẽ không yêu cầu phân đoạn ảnh chứa từ thành các ký tự. Vì mơ hình Markov ẩn có những đặc trưng của riêng nó, việc phân đoạn từ thành các ký tự là một bước phụ trong tổng thể của mơ hình, bao gồm việc tìm kiếm chuỗi trạng thái có khả năng xảy ra nhất.

Hình 3.1: Mơ hình Markov ẩn (nguồn [3])

Cụ thể hơn, mơ hình Markov ẩn là một quá trình ngẫu nhiên kép, chúng ta có thể biểu diễn chúng như một mơ hình xác suất (Hình 3.1). Nó được tạo thành từ các node trạng thái, trọng số của cạnh nối giữa chúng được định nghĩa bằng xác suất. Một tiến trình của mơ hình Markov có thể được hiểu rằng trạng thái tại thời điểm t+ 1 sẽ không phụ thuộc vào trạng thái tại thời điểm t−1, mà chỉ phụ thuộc vào trạng thái tại thời điểm t. Điều này có thể diễn đạt lại rằng thơng tin ngữ cảnh của từ và hình

ảnh khơng được mơ hình xem xét. Điều này tác động rất lớn đến hiệu suất của mơ hình. Chính vì vậy, trong hơn một thập kỷ qua, HMM đã trở thành mơ hình nền tảng cho bài toán nhận dạng chữ viết tay và nó cũng là một trong những phương pháp đầu tiên để giải quyết bài tốn chữ viết tay. Tuy nhiên nó vẫn tồn tại những nhược điểm

Các cơng trình liên quan 29

3.2 Bộ phân loại kết nối theo thời gian

Đối với tính chất của mạng tích chập xoắn (CNN) đơn thuần (Mục 2.2) thì việc nhận dạng văn bản ở mức độ từ là bất khả thi, do đó buộc phải nhận dạng văn bản ở mức độ ký tự rồi kết hợp chúng lại với nhau. Trên thực tế, đối với đặc trưng của chữ viết, các ký tự của chúng hiếm khi rời rạc hay tách biệt hoàn toàn với nhau (unsegmented data). Đến với mạng neuron hồi quy (Recurrent Neural Network - RNN) đã đưa ra một phương pháp tiếp cận ở mức độ nhỏ hơn từ ngữ bằng cách chia nhỏ dữ liệu ảnh thành những phần bằng nhau theo mức độ thời gian, sau đó sử dụng khả năng “nhớ” một số thơng tin phía trước để trích xuất ra đặc trưng đầu vào có những đặc trưng gì, cuối cùng đưa ra kết luận mỗi ảnh thuộc về ký tự nào. Cách tiếp cận như vậy gọi là phân loại theo thời gian (Temporal Classification). Chính vì thế, đầu ra của phương pháp này vẫn là dữ liệu theo thời gian, nó vẫn chưa giải quyết được việc kết hợp các thông tin riêng lẻ lại với nhau để cho ra kết quả cuối cùng là từ ngữ. Từ đó để giải quyết các vấn đề nói trên, các mơ hình có khả năng kết nối các nhãn riêng lẻ của dữ liệu ra đời, gọi chung là hệ thống kết nối (Connectionist System).

Đối với đặc trưng dữ liệu dạng chuỗi hay dữ liệu theo thời gian (sequence data hay time-series data) trong trường hợp là đầu ra của mơ hình RNN, khi đó đã có các

chuỗi nhãn là ký tự, và do chia đều ảnh đầu vào nên chúng sẽ có độ dài cố định dựa theo thiết kế ban đầu của mạng. Thế nhưng chuỗi nhãn thì khơng có chiều dài cố định như thế, từ ngữ sẽ có nhiều độ dài khác nhau, vấn đề này được gọi là alignment problem. Cho nên cần phải tìm cách căn chỉnh các chuỗi về độ dài mong muốn. Theo

[9], hiện chưa có một phương pháp tiên nghiệm nào như vậy, nên cần sử dụng một mơ hình kết nối để thực hiện việc căn chỉnh với độ chính xác chấp nhận được. Vì thế mơ hình này được gọi là bộ kết nối phân loại theo thời gian (Connectionist Temporal Classification - CTC).

Hình 3.2: Tổng quan về áp dụng mạng neuron hồi quy sử dụng CTC cho nhận dạng chữ viết tay1

1

Các cơng trình liên quan 30

3.2.1 Phân loại theo thời gian

Ảnh đầu vào chứa một chuỗi thông tin là thứ tự xuất hiện của các ký tự. Tương tự, dữ liệu cũng được gán nhãn theo một thứ tự như vậy, nhưng chiều dài của nó có thể ngắn hơn so với chuỗi dự đốn được. Vì vậy, việc cần làm là cố gắng căn chỉnh (align) giữa hai chuỗi, và giả sử rằng độ dài của chuỗi dự đoán được phải lớn hơn hay bằng chuỗi nhãn.

Chúng ta sẽ có hai bước chính để tiếp cận. Đầu tiên chúng ta sẽ chuyển hình ảnh 2D sang dữ liệu dạng tuần tự 1D và bước tiếp theo là thực hiện “alignment” đối với hai chuỗi (Hình 3.3).

Hình 3.3: Vấn đề alignment trong nhận dạng chữ viết tay

3.2.2 Chuyển dữ liệu dạng ảnh sang chuỗi

Hình ảnh đầu vào khơng phải là dữ liệu tuần tự mà hoàn toàn là dữ liệu 2D, vì vậy một số nghiên cứu đã có những cách tiếp cận khác nhau để chuyển đổi hình ảnh từ hai chiều về một chiều. Có thể gọi đây là bài tốn chuyển dữ liệu dạng hình ảnh sang chuỗi (Image to Sequence).

Nhận ra rằng việc sử dụng các đặc trưng được làm thủ cơng (hand-crafted features) thiếu tính mạnh mẽ đối với việc thay đổi hình dạng của văn bản trên hình ảnh, các tác giả trong bài báo [8] đã sử dụng bộ nhớ dài hạn đa chiều (multi-dimensional long-short term memory - MDLSTM) để trích xuất thơng tin trong khơng gian hai chiều, chúng ta sẽ nhận các bản đồ đặc trưng (feature maps) sau các phép tốn tích chập và các lớp dropout. Tương tự, bằng cách thay đổi hướng tiếp cận từ trên xuống (top-down) sang hướng đường chéo (diagonal-wise), các tác giả của bài báo [17] đã phát hành một ứng dụng dựa trên GPU giúp giảm đáng kể thời gian huấn luyện và cho thấy rằng

Các cơng trình liên quan 31

chiều sâu đóng một vai trị quan trọng hơn giữa việc sâu hơn hay rộng hơn trong các kiến trúc MDRNN (Hình 3.4). Chiều cao của các khối được chọn để thu gọn dần dần các hình ảnh 2D thành chuỗi 1D, sau đó có thể được dán nhãn bởi lớp đầu ra. Điều này cho phép các đặc trưng phức tạp được hình thành trong các giai đoạn.

Hình 3.4: Diagonal-wise MDRNN (nguồn [17])

Mạng Convolutional Recurrent Neural Networks (CRNN) ra đời khi MDRNNs có chi phí tính tốn q đắt đỏ trong khi việc trích xuất đặc trưng của MDRNNs giống với các lớp tích chập, thậm chí chi phí tính tốn đối với các lớp tích chập thấp hơn.

3.3 Mơ hình Convolutional Recurrent Neural Net-work work

3.3.1 Tổng quan mơ hình (adsbygoogle = window.adsbygoogle || []).push({});

Mơ hình mạng neuron này được đặt tên làConvolutional Recurrent Neural Network (CRNN) vì nó là sự kết hợp của hai mạng neuron CNN và RNN. CRNN có ba lớp chính gồm lớp tích chập (convolutional layers), lớp hồi quy (recurrent layers) và lớp phiên mã (transcription layer). Thứ tự và mô tả của các lớp được biểu diễn khái quát như Hình 3.5.

Đầu vào của mơ hình này là một ảnh chứa chữ viết tay cần nhận dạng được đưa về dạng ảnh xám và biểu diễn dưới dạng ma trậnW ×H. Ma trận này được sử dụng

làm đầu vào của lớp tích chập.

Lớp tích chập

Lớp tính chập được tạo thành bởi convolutional layers và max-pooling layer từ mơ hình CNN cơ bản (fully-connected layer được loại bỏ). Các lớp convolution, max- pooling và hàm kích hoạt tác động trên mỗi phần tử hoạt động ở các vùng địa phương, và chúng bất biến. Vì vậy mỗi cột của bản đồ đặc trưng (feature map) tương ứng với một vùng hình chữ nhật trên hình gốc ban đầu, và những vùng hình chữ nhật đó nằm theo đúng thứ tự như các cột tương ứng của chúng trên feature map từ trái sang phải.

Các cơng trình liên quan 32

Hình 3.5: Kiến trúc mạng bao gồm ba phần: 1) Lớp tích chập dùng để trích xuất đặc trưng từ hình ảnh đầu vào; 2) Lớp hồi quy dùng để dự đoán phân bố nhãn cho mỗi khung; 3) Lớp phiên mã dùng để dịch nhãn đã dự đoán ở mỗi khung thành chuỗi nhãn văn bản cuối cùng. (nguồn [14])

Những điều trên được minh họa ở Hình 3.6, mỗi vector trong chuỗi đặc trưng (feature sequence) tượng trưng cho một vùng hình chữ nhật trên hình.

Hình 3.6:Mỗi vector trong chuỗi đặc trưng trích xuất được kết hợp với một vùng hình chữ nhật trên hình đầu vào, đây có thể được xem là vector đặc trưng của vùng này (nguồn [14])

Lớp hồi quy

Lớp hồi quy sử dụng đầu ra của lớp tích chập để làm đầu vào. Tại đây sử dụng một mạng neuron hồi quy mà chính xác hơn là LSTM. LSTM là một mạng hồi quy có hướng, nó chỉ sử dụng những ngữ cảnh phía trước tính ở thời điểm hiện tại. Tuy nhiên trong chuỗi hình thành dựa trên hình ảnh, ngữ cảnh đến từ hai phía đều hữu ích và

Các cơng trình liên quan 33

bổ sung cho nhau. Vì vậy, tác giả kết hợp hai LSTM lại với nhau, một theo chiều tiến và một theo chiều ngược lại, tạo thành một LSTM hai chiều (bidirectional LSTM). Hơn thế nữa nhiều LSTM hai chiều có thể chồng lên nhau tạo thành một LSTM hai chiều sâu (deep directional LSTM) như được minh họa ở Hình 3.7(b). Ngồi ra, ở dưới cùng của lớp hồi quy còn có một lớp mạng tùy chỉnh được gọi là “Map-to-Sequence”

được xem là cầu nối giữa lớp tích chập và lớp hồi quy.“Map-to-Sequence” nhằm mục đích có thể lan truyền ngược những sai khác ở lớp hồi quy sang lớp tích chập giúp cập nhật lại các thơng số theo sự sai khác đó.

Hình 3.7: (a) Cấu trúc của một đơn vị LSTM cơ bản. (b) Cấu trúc của deep birectional LSTM được tác giả sử dụng. (nguồn [14])

Lớp phiên mã

Lớp phiên mã (transcription layer) sử dụng đầu ra của lớp hồi quy làm đầu vào. Phiên mã là q trình chuyển dự đốn ở mỗi frame được sinh ra bởi RNN thành một chuỗi nhãn (label sequence). Nói một cách tốn học transcription là tìm một label sequence có xác suất cao nhất dựa vào các dự đốn ở mỗi frame trước đó. Tác giả sử dụng xác suất có điều kiện được định nghĩa bởi CTC. Đầu vào là một chuỗi

y=y1, y2, ..., yT với T là chiều dài chuỗi, yt ∈ ℜ|L′|. Trong đó mỗi yt là phân phối xác suất trên tập L′ = L ∪ {−}, với L bao gồm tất cả các ký tự tiếng Anh, còn “−” là đại diện cho ký tự “khoảng trắng” (blank character). Một hàm ánh xạ chuỗi thành chuỗi (sequence-to-sequence mapping function)B được định nghĩa trên chuỗiπ ∈ L′T,

Bánh xạπ thànhl bằng cách sau, đầu tiên loại bỏ đi các ký tự trùng lặp kế bên nhau mà không bị ngăn cách nhau bởi ký tự “−”, sau đó loại bỏ đi các ký tự “−” này. Cuối cùng, xác suất có điều kiện được định nghĩa là tổng xác suất của tất cả các π được ánh xạ thành l bởi B.

p(l|y) = X

π:B(π)=l

p(π|y) (3.1) Với xác suất của π được định nghĩa bởi p(π|y) =QTt=1yπtt , trong đó yπtt là xác suất của nhãnπt tại điểm thời giant. Trong thực tế, có hai chế độ phiên mã đó là phiên mã

Các cơng trình liên quan 34

phi từ vựng (lexicon-free transcription) và phiên mã dựa trên từ vựng (lexicon-based transcription):

• Lexicon-free transcription: Trong chế độ này chuỗi ℓ∗ có xác suất cao nhất được định nghĩa bởi biểu thức (3.1) và tính tốn dựa trên dự đốn bằng cách sử dụng giải thuật forward-backward [9]. Chuỗi ℓ∗ là xấp xỉ vớiB(argmaxπp(π|y)). • Lexicon-based transcription: Trong chế độ này mỗi mẫu kiểm tra được gắn

với một bộ từ vựng D. Để giới hạn khơng gian tìm kiếm khi bộ từ vựng quá lớn thì ta sẽ chỉ tìm những ứng cử viên hàng xóm gần nhất Nδ(ℓ′) với δ là khoảng cách tùy chỉnh tối đa (maximal edit distance) và ℓ′ là chuỗi phiên mã từy trong chế độ lexicon-free:

ℓ∗ =argmax

ℓ∈Nδ(ℓ′)

p(ℓ|y) (3.2) trong đó Nδ(ℓ′) có thể được tìm thấy hiệu quả với cấu trúc dữ liệu BK-tree [4]. Cho tập huấn luyện là X ={Ii, ℓi}với Ii là hình dùng để huấn luyện và ℓi là chuỗi nhãn đúng của hình. Hàm mất mát của mơ hình được định nghĩa như sau:

O =− X (adsbygoogle = window.adsbygoogle || []).push({});

Ii,ℓi∈X

logp(ℓi|yi) (3.3) trong đó yi là chuỗi nhãn được tạo ra bởi mơ hình từ Ii. Ngồi ra mơ hình sẽ được

huấn luyện bằng Stochastic Gradient Descent (SGD).

3.3.2 Ưu điểm và nhược điểm

Ưu điểm

• Q trình huấn luyện mơ hình được diễn ra liền mạch, cách tiếp cận trước đây thì mơ hình sẽ được huấn luyện sẽ được chia ra các bước rời rạc.

• Khơng phụ thuộc vào chiều rộng và số từ vựng của ảnh đầu vào, không cần phải phân tách ký tự hay chuẩn hóa ngang.

• Khơng bị giới hạn bởi bất kỳ kho từ vựng nào.

• Mơ hình sau khi huấn luyện có kích thước nhỏ và hiệu năng cao, dễ dàng ứng dụng vào các dự án thực tế.

• Mơ hình có thể ứng dụng để nhận diện nhiều bài tốn khác khơng chỉ riêng bài toán nhận diện ký tự.

Nhược điểm

Các cơng trình liên quan 35

3.4 Mơ hình chuỗi sang chuỗi

Mơ hình chuỗi sang chuỗi (Sequence to Sequence - Seq2Seq) là một mơ hình học sâu với mục đích tạo ra một chuỗi đầu ra từ một chuỗi đầu vào mà độ dài của hai chuỗi này khơng cần phải giống nhau. Mơ hình chuỗi sang chuỗi lần đầu tiên được giới thiệu bởi nhóm nghiên cứu của Google vào năm 2014 trong bài báo “Sequence to Sequence with Neural Networks” [15]. Mặc dù mục đích ban đầu của mơ hình này là để áp dụng trong dịch máy (machine translation), nhưng hiện nay mơ hình chuỗi sang chuỗi cũng được áp dụng nhiều trong các hệ thống khác liên quan đến chuỗi như nhận dạng tiếng nói (speech recognition), tóm tắt văn bản (text summarization), chú thích hình ảnh (image captioning) và cả nhận dạng ký tự quang học (OCR).

Mơ hình chuỗi sang chuỗi dựa trên kiến trúc mã hóa - giải mã (Encoder - Decoder) để sinh ra chuỗi đầu ra và chuỗi đầu vào, mơ hình gồm hai phần chính là bộ mã hóa (Encoder) và bộ giải mã (Decoder). Ngồi ra cịn có vector mã hóa trung gian (Encoder vector). Hình 3.8 minh họa mơ hình Seq2Seq được sử dụng trong dịch máy và trong nhận dạng chữ viết tay.

Hình 3.8: Mơ hình Seq2Seq trong dịch máy (trên) và trong nhận dạng chữ viếttay (dưới) tay (dưới)

Bộ mã hóa

Bộ mã hóa (Encoder) có thể được xem là một ngăn xếp chứa các mạng con là phần tử của RNN (Mục 2.3) hoặc các ô nhớ của LTSM (Tiểu mục 2.3.2) hay GRU, nơi nhận vào tín hiệu của một phần tử của chuỗi đầu vào và truyền tiếp về phía cuối

Các cơng trình liên quan 36

mạng.

Một phần của tài liệu Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định (Trang 40)