Tải bản đầy đủ (.docx) (21 trang)

Báo cáo handwritten MNIST

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (815.87 KB, 21 trang )

Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

MỤC LỤC
1. Giới thiệu bài toán........................................................................................................2
2. Bộ dữ liệu handwritten MNIST..................................................................................3
3. Xây dựng công cụ nhận dạng – Mạng Nơ-ron...........................................................6
3.1. Cấu tạo dữ liệu ảnh...............................................................................................6
3.2. Mô hình hóa bài toán............................................................................................6
3.3. Mạng nơron...........................................................................................................8
3.3.1. Cấu trúc mạng nơ-ron......................................................................................8
3.3.2. Hàm kích hoạt................................................................................................10
3.3.3. Thuật toán lan truyền ngược..........................................................................14
3.4. Hàm mục tiêu cho bài toán phân loại - Cross Entropy....................................15
3.4.1. Định nghĩa Cross Entropy..............................................................................15
3.4.2. Ứng dụng CrossEntropy trong bài toán phân loại..........................................16
4. Một số kết quả huấn luyện.........................................................................................17
5. Ứng dụng mô hình trong thử nghiệm nhận dạng một số mẫu chữ tự viết.............18
Kết luận........................................................................................................................... 20
PHỤ LỤC: CODE

1


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

1. Giới thiệu bài toán
Cách mạng công nghiệp 4.0 tiếp nối cuộc cách mạng công nghiệp 3.0 đã dần thay
đổi phương thức sinh hoạt cũng như làm việc của con người. Trong đó, điển hình là công
cuộc số hóa dữ liệu. Các văn bản viết tay gần như được thay thế hoàn toàn bằng các công
cụ đánh máy. Các hồ sơ, giấy tờ từ hóa đơn, chữ ký, các loại công văn, bệnh án… điện tử
hóa không chỉ giúp giảm thiểu tối đa chi phí về mặt lưu trữ, đảm bảo an toàn thông tin mà


còn có thể giúp cho người sử dụng có thể dễ dàng, nhanh chóng truy cập đến nguồn dữ
liệu cần thiết.
Hiển nhiên, trong quá trình hướng đến hoàn thiện việc số hóa dữ liệu cũng không
thể hoàn toàn loại bỏ đi các loại hình dữ liệu cũ. Hơn nữa một công việc hết sức quan
trọng đó là tiến hành số hóa những dữ liệu đã được lưu trữ từ trước đến nay. Việc scan
các văn bản bằng giấy dạng có thể được tiến hành dễ dàng với đủ loại máy Scanner có
chất lượng cũng như hiệu suất cao. Nhưng để máy tính có thể hiểu được các loại văn bản
này đặt ra cho chúng ta nhu cầu về một hệ thống nhận dạng chữ viết tay hoàn chỉnh có
thể hiểu các dữ liệu này một cách chính xác nhất.
Khác với các văn bản được đánh máy, các chữ viết tay thường có cấu trúc, hình
dạng thay đổi tùy theo người viết, hoàn cảnh viết, các loại bút, giấy viết khác nhau cũng
có ảnh hưởng không nhỏ đến bố cục của một văn bản viết tay. Do đó, một công cụ, thuật
toán nhận dạng cần có khả năng tri thức hóa, tổng quát hoát dữ liệu. Khái niệm về
Machine Learning – học máy được ra đời từ cuối thế kỉ 20 và bắt đầu phát triển mạnh vào
đầu những năm 2000 đang dần lấp đầy chổ trống này mà điển hình trong đó là mô hình
Mạng Nơron. Với cấu trúc nhiều lớp, các kết nối đan xen dựa trên nguyên tắc xử lý thông
tin của bộ não người, mạng nơ ron đang ngày càng chứng minh được tính hiệu quả của
nó trong nhiều ứng dụng học máy mà điển hình là các bài toán nhận dạng, phân loại.
Vì vậy trong giới hạn của báo cáo này, nhóm sẽ trình bày vấn đề Nhận dạng chữ
số viết tay ứng dụng mạng nơ-ron. Ngoài ra, báo cáo cũng sẽ đưa ra một số kết quả so
sánh với các thuật toán học máy khác để đánh giá chất lượng công cụ sử dụng, cùng với
đó là một ví dụ nhỏ về việc sử dụng công cụ nhận dạng trong thực tế.
2


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

2. Bộ dữ liệu handwritten MNIST
Dữ liệu là vấn đề tối quan trọng trong các bài toán học máy. Cũng giống con
người, máy móc cũng cần được huấn luyện trước khi đưa vào sử dụng. Và cơ sở để huấn

luyện máy móc không gì khác hơn là dữ liệu. Một công cụ nhận dạng càng có khả năng
khái quát hóa khi dữ liệu là đủ nhiều, đủ tốt và sạch.
Đối với bài toán nhận dạng chữ số viết tay trong báo cáo này, nhóm sử dụng bộ dữ
liệu được thu thập và xử lý bởi Viện tiêu chuẩn và kỹ thuật quốc gia Hoa Kỳ (Ký hiệu là
NIST), Modified National Institute of Standards and Technology database gọi tắt là bộ dữ
liệu MNIST.
Cơ sở dữ liệu MNIST là một cơ sở dữ liệu lớn gồm các chữ số viết tay thường
được sử dụng để huấn luyện các hệ thống xử lý hình ảnh khác nhau. Bộ cơ sở dữ liệu này
cũng được sử dụng rộng rãi để thử nghiệm nhiều thuật toán trong lĩnh vực học máy. Nó
được tạo ra bằng cách "trộn" các mẫu từ bộ dữ liệu gốc của NIST.
Các hình ảnh xám (gray) ban đầu từ NIST có kích thước chuẩn hóa 20x20 pixel.
Các hình ảnh thu được chứa các mức xám là kết quả của kỹ thuật khử răng cưa sử dụng
các thuật toán chuẩn hóa. Hình ảnh sau đó được căn giữa ảnh có kích thước 28x28 bằng
cách tính trung tâm của các pixel và dịch hình ảnh để định vị điểm tâm này về trung tâm
của ảnh mới 28x28.
Với một số phương pháp phân loại (phương pháp dựa trên mẫu cụ thể, chẳng hạn
như SVM và K-Nearest neighbor), sai số được cải thiện khi các chữ số được căn giữa bởi
khung giới hạn thay vì trung tâm.
Cơ sở dữ liệu MNIST được xây dựng từ Cơ sở dữ liệu đặc biệt số 3 SD-3 và Cơ sở
dữ liệu đặc biệt số 1 SD-1 của NIST chứa hình ảnh nhị phân của các chữ số viết tay.
NIST ban đầu chỉ định SD-3 là tập huấn luyện của họ và SD-1 là tập thử nghiệm của họ.
Tuy nhiên, SD-3 sạch hơn và dễ nhận biết hơn SD-1. Lý do cho điều này có thể được tìm
thấy trên thực tế là SD-3 được thu thập trong số các nhân viên của Cục điều tra dân số,
trong khi SD-1 được thu thập trong các học sinh trung học. Trên thực tế, các thí nghiệm
tính toàn đòi hỏi kết quả không phụ thuộc vào sự lựa chọn của tập huấn luyện và kiểm tra
3


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê


giữa các bộ mẫu hoàn chỉnh. Do đó, cần phải xây dựng cơ sở dữ liệu mới bằng cách xáo
trộn các bộ dữ liệu của NIST.
Tập huấn luyện training set của MNIST bao gồm 30.000 mẫu từ SD-3 và 30.000
mẫu từ SD-1. Bộ thử nghiệm test set bao gồm 5.000 mẫu từ SD-3 và 5.000 mẫu từ SD-1.
Bộ huấn luyện mẫu 60.000 chứa các mẫu viết tay từ khoảng 250 người. Các dữ liệu này
đảm bảo rằng các nhóm người viết của tập huấn luyện và tập kiểm tra là rời nhau.
SD-1 chứa 58.527 chữ số hình ảnh được viết bởi 500 người khác nhau. Khác với
SD-3, dữ liệu từ mỗi người viết xuất hiện theo trình tự, thì dữ liệu trong SD-1 bị xáo trộn.
Danh tính người viết cho SD-1 có sẵn và được sử dụng để xắp xếp lại các bộ dữ liệu theo
người viết. Sau đó, SD-1 được chia thành hai phần: phần đầu tiên của bộ dữ liệu này
được viết bởi 250 người đầu tiên được cho vào tập huấn luyện mới; phần thứ 2 bao gồm
dữ liệu từ 250 người còn lại được đặt vào bộ thử nghiệm. Vì vậy, chúng ta có hai bộ dữ
liệu riêng với gần 30.000 mẫu trong mỗi bộ. Tập huấn luyện mới đã được hoàn thành
bằng cách bổ sung thêm dữ liệu từ SD-3, bắt đầu từ mẫu số 0, để tạo ra một bộ đầy đủ
gồm 60.000 mẫu huấn luyện. Tương tự, bộ thử nghiệm mới đã được hoàn thành với các
mẫu từ SD-3 bắt đầu từ mẫu số 35.000 để tạo thành một bộ đầy đủ với 60.000 mẫu thử
nghiệm. Một tập hợp con gồm 10.000 hình ảnh thử nghiệm (5.000 từ SD-1 và 5.000 từ
SD-3) có sẵn trên trang web chính thức của MNIST. Toàn bộ 60.000 mẫu huấn luyện
cũng có sẵn trên trang web này.
Danh sách các file dữ liệu được sử dụng trong bài toán:
train-images-idx3-ubyte:

training set images (9912422 bytes)

train-labels-idx1-ubyte:

training set labels (28881 bytes)

t10k-images-idx3-ubyte:


test set images (1648877 bytes)

t10k-labels-idx1-ubyte:

test set labels (4542 bytes)

4


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Hình 15 mẫu từ training set

Hình 15 mẫu từ test set

5


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

3. Xây dựng công cụ nhận dạng – Mạng Nơ-ron
3.1. Cấu tạo dữ liệu ảnh
Như đã mô tả ở mục 2, dữ liệu của bài toán là các ảnh xám có kích thước 28x28.
Để có cái nhìn chi tiết hơn, ta xem 1 ảnh trích ra từ bộ dữ liệu huấn luyện dưới đây:

Khái niệm ảnh số: là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để
mô tả ảnh gần với ảnh thật. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân
giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở
nên thực và sắc nét hơn.
Như vậy, ảnh được sử dụng trong báo cáo này là ảnh xám độ phân giải 28 x 28 =

784 điểm ảnh. Mỗi điểm ảnh được xác định bởi một mức xám -là kết quả của sự biến đổi
tương ứng 1 giá trị độ sáng của 1 điểm ảnh với 1 giá trị nguyên dương. Giá trị của mức
xám của ảnh được xác định trong [0, 255] tương ứng với 256 mức sáng - dùng 1 byte để
biểu diễn mức xám.
3.2. Mô hình hóa bài toán
Dữ liệu đầu vào: Ta có dữ liệu đầu vào bao gồm 70.000 bức ảnh xám các chữ số
viết tay kích thước28x28. Các dữ liệu này được phân chia thành 2 phần bao gồm: 60.000
ảnh cho tập huấn luyện và 10.000 ảnh cho tập kiểm thử.
6


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Kết quả đầu ra: Nhãn phân loại ảnh, có giá trị {0,1,2,3,4,5,6,7,8,9}.
Nói đơn giản, ta có một bài toán phân loại 10 lớp với đầu vào là các ảnh chữ số và
đầu ra là xác định giá trị số trong ảnh.
Nếu gọi xi là giá trị mức xám của điểm ảnh thứ itrong bức ảnh x, y là giá trị số
tương ứng của ảnh xám, khi đó việc chúng ta cần làm là tìm hàm số/ ánh xạ F sao cho:
y = F(x1, x2, …,x784)
với x1, x2, …,x784 tương ứng là giá trị mức xám của 784 điểm ảnh của x.
Viết ngắn gọn
y = F(x)
Trong trường hợp này, ta cũng gọi y là giá trị đúng – ground truth – của ảnh đầu
vào x, và F(x1, x2, …,x784) là giá trị dự báo theo mô hình F của ảnh x.
Trên thực tế, mô hình F không thể luôn đưa ra được giá trị dự đoán chính xác mà luôn tồn
tại một sai số:
l = F(x) (-) y
với (-) là ký hiệu một quy tắc xác định sai lệch giữa F(x) và y,
(-) ko nhất thiết là phép trừ đại số
Số lượng ảnh đầu vào càng nhiều, sai số này hiển nhiên sẽ càng lớn. Ta ký hiệu:


Trong đó: N là số lượng ảnh đầu vào được sử dụng để xây dựng mô hình F. Trong
bài toán này N = 60.000.
L gọi là hàm Loss hay là hàm mục tiêu của bài toán. Tương ứng với mỗi cách lựa
chọn quy tắc (-) khác nhau ta có một hàm L khác nhau. Tùy theo bài toán cụ thể, dạng mô
hình F được sử dụng mà quy tắc (-) và hàm Loss tương ứng được lựa chọn một cách phù
hợp. Các dạng hàm Loss phổ biến có thể kể đến như hàm sai số tuyệt đối, hàm bình
phương tối thiểu trong bài toán hồi quy, hàm cross entropy trong bài toán phân loại… Ta
sẽ tìm hiểu kỹ hơn về hàm Loss được sử dụng cho bài toán trong phần tiếp theo.
Như vậy, vấn đề cần quan tâm ở đây không phải làm thế nào để tìm được một mô
hình có thể dự báo hoàn toàn chính xác giá trị đầu ra của ảnh x, mà là tìm kiếm một mô
7


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

hình F làm tối thiểu hóa giá trị hàm mục tiêu L. Ta có thể viết lại bài toán dưới dạng công
thức như sau:

Trong đó:

3.3. Mạng nơron
Như đã phân tích ở phần trước, mục tiêu của bài toán là xây dựng mô hình F có
thể đưa ra các dự đoán chính xác giá trị ảnh với sai số thấp nhất. Trên thực tế có rất nhiều
mô hình, thuật toán học máy đã được thiết kế để giải bài toán này, điển hình là các mô
hình cây quyết định – decission tree, rừng ngẫu nhiên – random forest, mô hình hồi quy
đa biến, mô hình vectơ hỗ trợ - support vector machine, mô hình mạng nơ-ron và mạng
nơ-ron tích chập. Trong số đó, mô hình mạng nơ-ron và các biến thể của nó đang ngày
càng được ứng dụng rộng rãi bởi tính linh hoạt, có khả năng ứng dụng cho đa dạng bài
toán và độ chính xác vượt trội. Dù đôi khi phải đánh đổi bởi số lượng tính toán lớn,

nhưng với sự phát triển vượt bậc của công nghệ phần cứng trong những năm gần đây, đặc
biệt là các thiết bị tính toán ma trận chuyên dụng TPU, các giới hạn về phần cứng vẫn
đang được mở rộng không ngừng. Vì vậy trong phần này, nhóm sẽ tập trung nghiên cứu
cấu trúc mạng nơ-ron và phương pháp sử dụng mạng nơ-ron để giải quyết bài toán phân
loại ảnh số viết tay.
3.3.1. Cấu trúc mạng nơ-ron
Mạng nơ-ron nhân tạo là sự mô phỏng toán học của mạng nơ-ron sinh học. Một
mạng nơ-ron nhân tạo được xây dựng từ những thành phần cơ sở là những nơ-ron nhân
tạo gồm nhiều đầu vào và một đầu ra. Các đầu vào tiếp nhận kích thích từ đầu ra của
những nơ-ron khác hoặc từ môi trường. Mỗi nơ-ron vào có một bộ trọng số nhằm khuếch
đại tín hiệu kích thích sau đó tất cả sẽ được cộng lại. Tín hiệu sau đó sẽ được tiếp tục biến
đổi nhờ một hàm phi tuyến, thường gọi là hàm kích hoạt.
8


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Hình 3.1. Mạng nơ ron đơn giản.
Mạng nơ-ron đơn giản hình 3.1 chỉ gồm 1 khối tính toán, còn gọi là 1 nơ-ron có m
đơn vị dữ liệu đầu vào là x1, x2,…, xm. Đơn vị dữ liệu đầu ra y được tính theo công thức:
y = f(x1w1 + x2w2 + … + xmwm)
Trong đó:

wi là trọng số của đầu vào xi

f là hàm kích hoạt của nơ-ron tính toán. Một mạng nơ-ron có thể sử dụng nhiều
loại hàm kích hoạt khác nhau. Tùy vào mục đích sử dụng, vị trí nơ-ron mà các hàm kích
hoạt được lựa chọn cho phù hợp.
Sau đó tín hiệu đầu ra của nơ-ron này sẽ được đưa đến làm đầu vào của các nơ-ron
khác hoặc trở thành tín hiệu ra của toàn bộ mạng. Khi kết hợp các nơ-ron lại với nhau ta

có một mạng nơ-ron nhân tạo. Tuỳ theo cách thức liên kết giữa các nơ-ron mà ta có các
loại mạng khác nhau như: mạng truyền thẳng, mạng phản hồi,… Và như phân tích ở mục
(3.2), ta có thể xem như mạng nơ-ron nhân tạo là một mô hình toán Y=F(X) với X là
véctơ số liệu đầu vào và Y là véctơ số liệu đầu ra. Ưu điểm của một mạng nơ-ron nhân
tạo là nó cho phép xây dựng một mô hình tính toán có khả năng học dữ liệu rất cao. Có
thể coi mạng nơ-ron nhân tạo là một hộp đen có nhiều đầu vào và nhiều đầu ra có khả
năng học được mối quan hệ giữa đầu ra và đầu vào dựa trên dữ liệu được học. Hình dưới
cho ta một cái nhìn tổng quan về mạng nơ-ron:

9


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Hình 3.2. Mạng nơ-ron tổng quát
Mạng nơ-ron tổng quát bao gồm:
 Lớp vào: biểu diễn các nơ-ron tương ứng với các trường dữ liệu đầu vào. Đối với
bài toán phân loại ảnh số, lớp vào chính là dữ liệu 784 giá trị mức xám của các điểm ảnh
x1, x2,…, x784
 Lớp ẩn: bao gồm các nơ-ron tính toán trung gian. Phương thức tính toán được áp
dụng tương tự như mạng nơ-ron giản đơn. Điểm khác biệt lớn nhất là các khối tính toán
này thường được máy tính tính toán ngầm, kết quả cũng như quả trình tính toán trên các
nơ-ron thuộc lớp ẩn thường không được bận tâm đến.
 Lớp ra: Đây là các nơ-ron tính toán cuối cùng trong mạng, cho ta các giá trị cần
tìm của ảnh. Trong bài toán phân loại ảnh này, lớp ra được thiết kế bao gồm 10 nơ-ron y 1,
…,

y10 tương ứng với xác suất ảnh nhận các giá trị {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

3.3.2. Hàm kích hoạt

Hàm kích hoạt (activation function) mô phỏng tỷ lệ truyền xung qua rễ thần kinh
(axon)của một neuron thần kinh. Giống như trong mô hình sinh học, các xung thần kinh
được truyền qua axon với một tỷ lệ nào đó. Ở mô hình mạng nơ-ron mô phỏng hệ thần
kinh chúng ta xây dựng, các hàm kích hoạt cũng được sử dụng nhằm mục đích điều chỉnh
10


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

tỷ lệ truyền này. Các hàm này thường là các hàm phi tuyến, trong phần này, ta sẽ giới
thiệu một số hàm kích hoạt phổ biến nhất và các ưu, nhược điểm cũng như ứng dụng của
chúng.

Hình 3.3. Các hàm kích hoạt phổ biến
 Hàm Sigmoid
Hàm Sigmoid nhận đầu vào là một số thực và chuyển thành một giá trị trong
khoảng (0;1) (xem đồ thị phía trên). Đầu vào là số thực âm rất nhỏ sẽ cho đầu ra tiệm cận
với 0, ngược lại, nếu đầu vào là một số thực dương lớn sẽ cho đầu ra là một số tiệm cận
với 1. Sigmoid hay được dùng vì có đạo hàm rất đẹp, và được dùng nhiều ở lớp đầu ra
trong các bài toán phân loại 2 lớp (logistic regression). Tuy nhiên hàm Sigmoid cũng có
những nhược điểm sau: 1) Sigmoid nhanh bão hòa và triệt tiêu gradient (gradient
vanishing); 2) Hàm sigmoid không có trung tâm tại 0 làm chậm tốc độ hội tụ trong quá
trình huấn luyện.
 Hàm Tanh
Hàm tanh nhận đầu vào là một số thực và chuyển thành một giá trị trong khoảng (1; 1). Cũng như Sigmoid, hàm Tanh nhanh chóng bị bão hoà ở 2 đầu (gradient thay đổi
rất ít ở 2 đầu). Tuy nhiên hàm Tanh lại đối xứng qua 0 nên khắc phục được một nhược
điểm của Sigmoid trong quá trình huấn luyện.
11



Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Hàm tanh còn có thể được biểu diễn bằng hàm sigmoid như sau:
Tanh(x) = 2σ(2x) – 1
 Hàm ReLu
Hàm ReLU là hàm được sử dụng rất phổ biến trong các mạng nơ-ron hiện đại, đặc
biệt là trong các mạng nơ-ron tích chập. ReLU đơn giản lọc các giá trị < 0, do đó đặc biệt
có ý nghĩa đổi với dữ liệu ảnh, khi mà giá trí của các điểm ảnh >= 0. Một số ưu điểm
vượt trội của nó so với Sigmoid và Tanh có thể kể ra như: Tốc độ hội tụ nhanh (~6 lần
tanh); Tính toán nhanh hơn do sử dụng hàm đại số đơn giản. Và một số nhược điểm: các
node <0 sau khi qua hàm ReLu đều bị chuyển thành 0, do đó, các lớp kích hoạt tiếp theo
sẽ không được cập nhật thêm nữa (đây là lý do ra đời Leaky ReLu); Khi learning rate lớn,
các trọng số w có thể thay đổi theo cách làm tất cả nơ-ron dừng việc cập nhật.
 Hàm Leaky ReLu
Leaky ReLu ra đời nhằm giải quyết tình trạng mất giá trị tại nửa trái trục tung
bằng cách tạo ra một đường xiên có độ dốc nhỏ (0.1) thay cho các giá trị 0. Một kỹ thuật
tương tự cũng được sử dụng trong hàm Elu. Các cải tiến này cho hiệu quả huấn luyện tốt
trong một vài trường hợp, tuy nhiên không thật sự rõ ràng.
 MaxOut
Là dạng tổng quát của ReLu và các biến thể của nó. Maxout có tất cả ưu điểm của
Leaky ReLU, ReLU. Tuy vậy, nó khiến mạng phải sử dụng gấp đôi số tham số
(parameter) cho mỗi neuron, vì thế làm tăng đáng kể chi phí cả về bộ nhớ và tính toán một điều cần suy xét khi huấn luyện mạng nhiều lớp.
 Hàm Softmax
Đây là hàm kích hoạt được sử dụng ở lớp đầu ra trong bài toán phân loại đa lớp,
trong đó, các đầu ra của softmax biểu diễn phân phối xác suất của các giá trị mà ảnh đầu
vào có thể nhận. Trong bài toán này, ảnh đầu ra chỉ nhận các giá trị {0, ..9}, nếu ta xem
xét các biến tính toán đầu ra:

12



Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

a0 = P(y=0|x;w),
a1 = P(y=1|x;w),

a9 = P(y=9|x;w)
khi đó, ta có ràng buộc:
∑ai = a0 + a1 + … + a9 =1
Để làm được điều này, hàm softmax sẽ chuyển đổi giá trị đầu ra của mạng nơ-ron
bằng cách chia cho tổng giá trị. Lúc này, đầu ra thu được có thể coi là một vector của xác
suất dự đoán của các lớp cần phân loại.

Trong đó: zi là tổ hợp có trọng số của các lớp nơ-ron kế cận lớp đầu ra mạng nơron.

Hình 3.4. Mô hình tính toán hàm kích hoạt softmax.
13


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

3.3.3. Thuật toán lan truyền ngược
Sau khi đã xây dựng đầy đủ mô hình mạng nơ-ron với các lớp đầu vào, lớp ẩn và
lớp đầu ra, công việc tiếp theo cần được giải quyết là tìm các hệ số w của mạng bằng
cách giải bài toán tối ưu hàm mục tiêu mà ta đã xây dựng trong phần 3.2. Trong đa số quá
trình tính toán tối ưu hàm mục tiêu trong các bài toán về học máy, thuật toán gradient
descent (GD) và các thuật toán tựa gradient như stochastic gradient, conjugate gradient,
accelerated gradient, lbfs… đã chứng tỏ được sức mạnh và tính hiệu quả. Một bước
không thể thiếu trong các thuật toán này đó là tính gradient của hàm kích hoạt tại các
node mạng. Trong các mô hình phức tạp, đặc biệt có dạng kết nối chồng chéo như mạng

nơ-ron một thuật toán được sử dụng rất hiệu quả để tính gradient và hiện đang được cài
đặt trong hầu như tất cả các thư viện học máy là thuật toán lan truyền ngược – back
propagration. Do đó trong phần này, ta sẽ tìm hiểu các ý tưởng chính của thuật toán này.
Trên lý thuyết, back propagation sử dụng lý thuyết về đạo hàm của hàm hợp để
tính toán gradient tại các node mạng bắt đầu từ đầu ra của mạng nơ-ron.
Xét một mô hình mạng nơ-ron (ANN) đơn giản:

Thuật toán Lan truyền ngược sẽ được tiến hành qua các bước:
 Tính toán truyền thẳng trên trên tất cả các node mạng từ dữ liệu đầu vào x i
14


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

 Với các giá trị đầu ra đã có, ta tính được giá trị hàm loss tương ứng.Với hàm loss
Cross Entropy, ta có:

Và giá trị hàm loss trên toàn bộ dữ liệu:

 Từ đó, áp dụng luật đạo hàm hàm hợp, ta tính được gradient tại các node mạng kế
cận lớp ra

Và tiếp đó là gradient cho các node mạng trước nữa:

3.4. Hàm mục tiêu cho bài toán phân loại - Cross Entropy
3.4.1. Định nghĩa Cross Entropy
Giả sử, ta có phân bố xác suất cụ thể p(x), hàm H(p) được xác định bởi:
H ( p)  �p( x)log 2 (
x


1
)  �p( x)log 2 (p(x))
p( x)
x

được gọi là Entropy của p
15


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Xét một phân bố xác suất thứ 2 q(x), khi đó hàm số:
H p (q)  �p( x)log 2 (
x

1
)  �p( x )log 2 (q(x))
q( x)
x

được gọi là CrossEntropy của 2 phân phối p và q
Lấy vị dụ phân bố xác suất p(x)=(1/2,1/4,1/8,1/8) và q(x) = (1/8, 1/2, 1/4, 1/8), lúc
này

H p (q)

=2.25. Ngoài ra ta cũng tính được

H q (p)  2.375 �H p (q)


Cross-entropy cho biết mức độ khác biệt giữa 2 phân bố xác suất. Sự khác biệt
giữa phân bố p và q càng lớn thì cross-entropy của p đối với q sẽ càng lớn và lớn hơn
entropy của p và ngược lại. CrossEntropy có một số tính chất sau:
 Cross-entroy luôn luôn lớn hơn Entropy;
 Cross-entropy không có tính chất đối xứng,

H q (p) �H p (q)

Do các đặc điểm kể trên, crossentropy được sử dụng rộng rãi trong đánh giá chất
lượng các mô hình phân loại, đặc biệt là mô hình phân loại đa lớp. Ngoài sử dụng
CrossEropy, trong nhiều ứng dụng cụ thể còn sử dụng công cụ đánh giá sự khác biệt giữa
2 phân bố xác suất sau, gọi là độ phân kỳ Kullback–Leibler:
D( p | q)  �px log
x

p
1
1
 �px log
 �pxlog x  H ( P, Q)  H ( P)
qx x
px
qx
x

3.4.2. Ứng dụng CrossEntropy trong bài toán phân loại
Giả sử, với 1 mô hình dự đoán, ta thu được xác suất của 1 ảnh mang số 9 bất kỳ
là:y^=(0.0,0.0,0.0,0.0,0.0,0.1,0.1,0.4,0.3,0.1). Trong trường hợp này, rõ ràng mục tiêu của
ta sẽ phải điều chỉnh tham số mô hình sao cho xác suất đầu ra gần tới giá trị đúng:
y=(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0) nhất.

Do các tính chất đã trình bày ở trên, chúng ta sử dụng cross-entropy để đánh giá sự
khác biệt giữa 2 phân bố y và y^ và tính hàm tổng chi phí loss dựa trên tổng crossentropy trên toàn bộ dữ liệu training:
H  �H ( y ( n ) , yˆ ( n ) )
n

16


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Một phương pháp tiếp cận phổ biến khác là điều chỉnh tham số của mô hình sao
cho likelihood của mô hình với dữ liệu đầu vào đạt cực đại. Với giả sử dữ liệu của bài
toán là độc lập likelihood trên toàn dữ liệu training là:
L  �L( y ( n ) , yˆ ( n ) )
n

Trong ví dụ trên, dễ thấy likelihood L  L( y, yˆ )  0.1 chính là giá trị xác suất y^=9
(là giá trị yi^ tại vị trí i có yi=1).
Để đơn giản dữ liệu ta thay thế việc cực đại hóa likelihood cực tiểu hóa đảo dấu
của logarit likelihood. Cụ thể:
logL   log �L ( y ( n ) , y ( n ) )  �log L( y ( n ) , y ( n ) )
n

n

Do y(n) chỉ nhận giá trị 0 và 1. Tổng quát hàm logarit likelihood:
log  �log L( y ( n ) , y ( n ) )  ��yi( n ) log yˆi( n )
n

n


i

Đây chính là công thức tính tổng cross-entropy được sử dụng trên toàn tập training set.
4. Một số kết quả huấn luyện

17


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Phương pháp
Random Forest

Độ chính xác

Thời gian

(training/test)

huấn luyện

Ghi chú

99.92%/ 94.83%

7.15s

10 decision trees


100%/ 96.89%

74.23s

100 decision trees

Decision Tree

100%/ 87.74%

20.35

MLR(lbfgs alg)

93,51%/ 92.58%

15.26s

Neural network

99.36%/ 97.79%

34.56s

99.17%/ 97.82%

38.72s

1 hiden layer 300
node

2 hidden layer
300-100 node
6 hidden layer

98.94%/ 97.43%

1267.73s

784-2500-2000-15001000-500-10
3 hidden layer

99.04%/ 97.69%

615.85s

2500-1500-500
tanh-softmax

Convolutional
Neural Network

99.53%/98.93%

595.37s

99.20%/99.04%

893.42s

784-[32C5-P2][64C5-P2]-256-10

784-[64C5-P2][128C5-P2]-256-10

5. Ứng dụng mô hình trong thử nghiệm nhận dạng một số mẫu chữ tự viết

18


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

Sau khi đã xây dựng được mô hình phân loại hoàn chỉnh với độ chính xác cao
(>97%), ta tiến hành một số thử nghiệm nhỏ để kiểm tra hiệu quả của mô hình trong bài
toán ứng dụng thực tế. Thử nghiệm được tiến hành như sau:
- Hình ảnh được chụp từ một số mẫu viết tay tự viết
- Hình ảnh sau khi chụp được tiền xử lý hình ảnh bằng OpenCV (loại bỏ
foreground, tăng contrast, recentre and reduce background).
- Sử dụng mô hình mạng nơron 3 lớp ẩn 2500-1500-500 (độ chính xác tốt nhất
trong thử nghiệm 99.04%/ 97.69%, và thời gian huấn luyện nhanh) để nhận dạng mẫu
chữ. Kết quả thu được như sau:

19


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

ảnh gốc

ảnh sau khi xử lý

Kết quả dự đoán


Kết luận
Trong báo cáo này, nhóm đã từng bước tiến hành thực hiện quy trình ứng dụng
mạng nơ-ron trong nhận dạng chữ số viết tay bắt đầu từ phân tích dữ liệu đầu vào, xử lý
và đánh giá dữ liệu; mô hình hóa bài toán; xây dựng công cụ phân loại và các tiêu chí cần
thiết để đánh giá chất lượng một mô hình học máy. Các kết quả thu được rất khả quan với
độ chính xác tuyệt vời 99.04% trên tập huấn luyện và 97.69% trên tập kiểm thử. So sánh
với các phương pháp phân loại khác, mạng nơ-ron thể hiện khả năng tiếp nhận tri thức và
khái quát hóa cao, điển hình ở việc cho tỉ lệ chính xác cao và khá tương đương ở cả 2 tập
huấn luyện và kiểm thử. Ngoài ra, nhóm cũng đã thực hiện ứng dụng mô hình thu được
trên một bài toán nhận dạng thực tế với việc tự tạo ảnh thử và kết quả thu được đều rất
khả quan.
Một mô hình học máy muốn đạt hiệu quả cao luôn cần có một bộ dữ liệu đủ nhiều,
đủ chất lượng và có tính khái quát cao. Kết quả thu được trong báo cáo này một phần
không nhỏ là nhờ có bộ dữ liệu hết sức phong phú và chất lượng từ Viện tiêu chuẩn và
Chất lượng thông tin Hoa kỳ. Thêm vào đó kết quả thử nghiệm cũng chỉ ra rằng các
mạng nơ-ron cải tiến mà điển hình là mạng nơ-ron tích chập còn có thể cải thiện đáng kể
hiệu quả mô hình. Tuy nhiên trong giới hạn báo cáo môn học này, nhóm chỉ xin dừng ở

20


Báo cáo cuối kỳ - Nhập môn Mô hình hóa thống kê

mô hình mạng nơ-ron tiêu chuẩn và sẽ tiếp tục các nghiên cứu mô hình sâu hơn trong
tương lai.

21




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×