Mạng nơron tích chập cho phân loại bệnh da người
MẠNG NƠRON TÍCH CHẬP CHO PHÂN LOẠI BỆNH DA NGƯỜI
CONVOLUTIONAL NEURAL NETWORK FOR HUMAN SKIN DISEASE
CLASSIFICATION
Hoang Đinh Phuong1, Nguyen Thanh Hai1
1Ho Chi Minh City University of Technology and Education, Vietnam
2Ho Chi Minh City Navy Technical College, Vietnam
TÓM TẮT
Mạng nơron tích chập là một trong những mô hình mạng phổ biến nhất hiện nay được sử dụng
cho nhận dạng và phân loại hình ảnh với độ chính xác rất cao. Việc ứng dụng mạng nơron tích
chập trong việc phát hiện và phân loại bệnh da sẽ hỗ trợ rất nhiều cho bác sỹ trong việc chuẩn
đoán và điều trị bệnh sớm. Bài báo kiến nghị mạng nơron tích chập cho phân loại 05 loại bệnh,
tổng cộng có khoảng 1000 bức ảnh bệnh da được thu thập từ trang ISIC chuyên cho nghiên
cứu. Để phân loại hiệu quả, ảnh đầu vào được tiền xử lý nhằm giảm kích thước ảnh, chuẩn
hóa ảnh và sau đó được đưa vào mạng cho phân loại và phát hiện bệnh. Trong mạng, các lớp
tích chập với những kernel được phân tích, lựa chọn để lấy thông tin về trích đặc trưng và thực
hiện tích chập. Bài báo sử dụng mạng cho phân loại từng nhóm bệnh 3 bệnh, 4 bệnh đến 5
bệnh da khác nhau và đánh giá hiệu suất phân loại của mạng học sâu. Trong việc đánh giá,
bài báo áp dụng thuật toán ma trận nhầm lẫn để thực hiện đánh giá với kết quả thu được.
Từ khóa: Nơron tích chập; Trích đặc trưng; Tích chập; Thuật toán ma trận nhầm lẫn.
ABSTRACT
Convolutional Neural Network is one of the most popular network models currently used for
image recognition and classification with very high accuracy. The use of the convolutional
neural network in the detection and classification of skin diseases will greatly assist doctors in
the early diagnosis and treatment of skin diseases. The article proposes the network for
classifying 05 types of human skin disease, there are about 1000 images of skin diseases
obtained from ISIC website for research. For effective classification, input images are pre-
processed to reduce image size, to normalize the image, and then the images is connected to
the network for classification of skin diseases. In the network, convolutional layers with kernels
are analyzed and chosen to obtain information for features and perform convolution. The
article applies the network for classifying each group of 2 diseases, 3 diseases to 5 diseases
and then evaluate the classification performance of the corresponding networks. In the
51
evaluation, the paper employs the confusion matrix algorithm for the evaluation of the obtained
results.
Keywords: Convolutional Neural Network; Feature extraction; Convolution; Confusion
matrix algorithm.
1. GIỚI THIỆU
Những năm gần đây, ta đã chứng kiến được nhiều thành tựu vượt bậc trong ngành Thị
giác máy tính (Computer Vision). Các hệ thống xử lý ảnh lớn như Facebook, Google hay
Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn
mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động. Mạng nơ-ron tích chập
(CNN) là một trong những mô hình học sâu tiên tiến giúp cho chúng ta xây dựng được những
hệ thống thông minh với độ chính xác cao như hiện nay. Mạng CNN rất giống với mạng thần
kinh thông thường, được tạo thành từ các tế bào thần kinh có thể học được [1-3].
Trên thế giới có rất nhiều công trình khoa học sử dụng CNN để phân loại và phát hiện
bệnh da [4-7]. Để mạng CNN hoạt động tốt có rất nhiều yếu tố tác động như số lượng ảnh đầu
vào, sự cân bằng số lượng ảnh đầu vào giữa các bệnh, các thông số mạng CNN, trong đó tập
dữ liệu ảnh đầu vào đóng vai trò rất lớn quyết định đến hiệu quả của mạng CNN.
Theo Kitada [8] đối với những tập ảnh dữ liệu mất cân bằng về số lượng các loại bệnh,
có thể áp dụng phương pháp tăng số lượng các ảnh đầu vào bằng cách học giữa các lớp trong
mạng [9], lật ảnh, xoay ảnh tạo ra số lượng ảnh đầu vào đủ lớn để cải thiện hiệu suất của mạng.
Kitada đã thực hiện phương pháp này để phân loại bệnh ung thư tế bào hắc tố đạt hiệu quả
87,2%. Gessert [10] sử dụng phương pháp tinh chỉnh DenseNet [11], SeNet [12] và ResNext
[13] để phân loại bệnh da với hiệu suất đạt được là 85,1%. Một phương pháp nữa Milton [14]
sử dụng phân loại dựa trên NASNet-5-Large [15], InceptionResNetV2 [16], SENet154 và
InceptionV4 để phân loại bệnh da người, mô hình của Milton thu được độ chính xác là 73% và
kết quả tốt nhất đạt được theo cấu trúc PNASNet-5-Large là 76%.
Các lớp cơ bản trong một mạng CNN bao gồm: Lớp tích chập (Convolutional), Lớp kích
hoạt phi tuyến ReLU (Rectified Linear Unit), lớp lấy mẫu (Pooling) và Lớp kết nối đầy đủ
(Fully-connected), được thay đổi về số lượng và cách sắp xếp để tạo ra các mô hình huấn luyện
phù hợp cho từng bài toán khác nhau.
Lớp tích chập là thành phần quan trọng nhất trong mạng CNN, cũng là nơi thể hiện tư
tưởng xây dựng sự liên kết cục bộ thay vì kết nối toàn bộ các điểm ảnh. Các liên kết cục bộ
này được tính toán bằng phép tích chập giữa các giá trị điểm ảnh trong một vùng ảnh cục bộ
với các bộ lọc có kích thước nhỏ.
Lớp kích hoạt phi tuyến ReLu được xây dựng với ý nghĩa đảm bảo tính phi tuyến của mô
hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính qua các lớp Tích
chập. Lớp Kích hoạt phi tuyến nói chung sử dụng các hàm kích hoạt phi tuyến như ReLU hoặc
sigmoid, tanh để giới hạn phạm vi biên độ cho phép của giá trị đầu ra. Trong số các hàm kích
hoạt này, hàm ReLU được chọn do cài đặt đơn giản, tốc độ xử lý nhanh mà vẫn đảm bảo được
tính toán hiệu quả. Cụ thể, phép tính toán của hàm ReLU chỉ đơn giản là chuyển tất cả các giá
trị âm thành giá trị 0.
Thông thường, lớp ReLU được áp dụng ngay phía sau lớp Tích chập, với đầu ra là một
ảnh mới có kích thước giống với ảnh đầu vào, các giá trị điểm ảnh cũng hoàn toàn tương tự trừ
các giá trị âm đã bị loại bỏ.
52
Lớp lấy mẫu (Pooling), thường được đặt sau lớp Tích chập và lớp ReLU để làm giảm
kích thước kích thước ảnh đầu ra trong khi vẫn giữ được các thông tin quan trọng của ảnh đầu
vào. Việc giảm kích thước dữ liệu có tác dụng làm giảm được số lượng tham số cũng như tăng
hiệu quả tính toán. Lớp lấy mẫu cũng sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong
ảnh tương tự như lớp Tích chập, và thực hiện phép lấy mẫu thay vì phép tích chập – tức là ta
sẽ chọn lưu lại một giá trị duy nhất đại diện cho toàn bộ thông tin của vùng ảnh đó.
Lớp kết nối đầy đủ được thiết kế hoàn toàn tương tự như trong mạng nơ-ron truyền thống,
tức là tất cả các điểm ảnh được kết nối đầy đủ với node trong lớp tiếp theo. So với mạng nơ-
ron truyền thống, các ảnh đầu vào của lớp này đã có kích thước được giảm bớt rất nhiều, đồng
thời vẫn đảm bảo các thông tin quan trọng cho việc nhận dạng. Do vậy, việc tính toán nhận
dạng sử dụng mô hình truyền thẳng đã không còn phức tạp và tốn nhiều thời gian như trong
mạng nơron truyền thống.
2. PHƯƠNG PHÁP LUẬN
2.1 Mạng CNN nhận dạng bệnh da
Hình 1. Sơ đồ khối mạng CNN nhận dạng bệnh da
archive.com. Database này đã được kiểm nghiệm và sử dụng rộng rãi trong nhiều bài báo khoa
học.
Tiền xử lý: hình ảnh thu thập được sẽ hiệu chỉnh lại kích thước tùy thuộc vào chất lượng
ảnh nhằm giúp cho hệ thống hoạt động ổn định hơn. Ảnh mẫu bệnh da trong ISIC 2018 có kích
thước mặc định là 600x450 pixels, ảnh có kích thước càng lớn thì qua mạng CNN sẽ có hiệu
quả tốt hơn, tuy nhiên đòi hỏi máy tính phải có cấu hình cao và sẽ mất rất nhiều thời gian, do
đó để tiết kiệm thời gian mà vẫn đạt được hiệu quả cao nhất nên trong bài toán này ảnh đầu
vào sẽ giảm kích thước ảnh xuống 150x100 pixels. Sau khi hiệu chỉnh lại kích thước, ảnh sẽ
được chuẩn hóa các giá trị pixel sao cho mỗi pixel sẽ có giá trị từ 0 đến 1.
Mạng CNN: là một trong những mô hình Deep Learning tiên tiến giúp chúng ta xây dựng
được một hệ thống phân loại bệnh da người với hiệu quả tối ưu. Thay vì sử dụng CNN truyền
thống, tác giả sẽ sử dụng một kỹ thuật mới vô cùng mạnh mẽ giúp giảm lượng tham số mô hình
trong mạng CNN mà vẫn đáp ứng đầy đủ các yêu cầu trong việc học các features của ảnh đó
là Separable Convolutions.
53
Kết quả phân loại bệnh: Sau khi nhận dạng được mẫu ảnh bệnh da, kết quả được hiển thị
trên máy tính bằng phần mềm Visual Studio Code.
2.2 Tiền xử lý
Sử dụng 02 phương pháp: định lại kích cỡ ảnh và chuẩn hóa ảnh.
Khi giữ ảnh tại cùng kích thước vật lý thì ảnh trở nên sắc nét hơn và chi tiết hơn nếu độ
phân giải càng cao. Tuy nhiên dung lượng ảnh sẽ lớn làm ảnh hưởng đến tốc độ quá trình xử
lý, cho nên để nâng cao tốc độ xử lý ảnh ta có thể định lại kích thước ảnh mà không làm ảnh
hưởng đến kết quả xử lý ảnh.
Hình 2. Ảnh sau tiền xử lý định lại kích cỡ ảnh
Đối với các dữ liệu hình ảnh thông thường, giá trị pixel là các số nguyên có giá trị từ 0 đến
255. Nếu các giá trị đầu vào này lớn thì sẽ dẫn đến mạng CNN hoạt động không tối ưu, không
đáp ứng được các yêu cầu về thời gian thực. Do đó cần phải chuẩn hóa các giá trị pixel sao cho
mỗi pixel có giá trị từ 0 đến 1 để giúp mạng CNN hoạt động tốt hơn mà vẫn đảm bảo các bức
ảnh được hiển thị như thông thường. Để làm được điều này bằng cách chia tất cả giá trị pixel
cho giá trị lớn nhất đó là 255.
2.3 Mạng CNN
Lớp tích chập: Kernel sẽ trượt trên ảnh đầu vào, ma trận hình thành sẽ là ma trận lớp
tích chập. Các giá trị pixel của ma trận được tô sáng sẽ được nhân với các giá trị pixel tương
ứng của kernel và sau đó lấy mức trung bình.
Hình 3. Tích chập lần 1 ảnh đầu vào với kernel
Giá trị tích chập 1 = 0.11
Làm tương tự, với stride = 1 tính tương tự các giá trị tích chập tiếp theo.
54
Bộ tuyến tính được tinh chỉnh: Bộ tuyến tính được tinh chỉnh (ReLu) đang được sử dụng
khá nhiều trong những năm gần đây khi huấn luyện các mạng nơ-ron. ReLU đơn giản lọc các
giá trị < 0. Nhìn vào công thức chúng ta dễ dàng hiểu được cách hoạt động của nó. Một số ưu
điểm khá vượt trội của nó so với Sigmoid và Tanh:
Tốc độ hội tụ nhanh hơn hẳn. ReLU có tốc độ hội tụ nhanh gấp 6 lần Tanh (Krizhevsky et
al.). Điều này có thể do ReLU không bị bão hoà ở 2 đầu như Sigmoid và Tanh.
Tính toán nhanh hơn. Tanh và Sigmoid sử dụng hàm exp và công thức phức tạp hơn ReLU
rất nhiều do vậy sẽ tốn nhiều chi phí hơn để tính toán.
Tuy nhiên ReLU cũng có một nhược điểm: Với các node có giá trị nhỏ hơn 0, qua ReLU
activation sẽ thành 0, hiện tượng đấy gọi là “Dying ReLU”. Nếu các node bị chuyển thành 0
thì sẽ không có ý nghĩa với bước linear activation ở lớp tiếp theo và các hệ số tương ứng từ
node đấy cũng không được cập nhật với gradient descent. => Leaky ReLU ra đời.
Khi learning rate lớn, các trọng số (weights) có thể thay đổi theo cách làm tất cả neuron
dừng việc cập nhật.
(1)
f(x) = max (0,x)
Mục đích của lớp ReLu là đưa ảnh một mức ngưỡng, ở đây là 0. Để loại bỏ các giá trị âm
không cần thiết mà có thể sẽ ảnh hưởng cho việc tính toán ở các lớp sau đó.
Lớp lấy mẫu lớn nhất: thực hiện chức năng làm giảm chiều không gian của đầu vào và
giảm độ phức tạp tính toán của mô hình, ngoài ra lớp này còn giúp kiểm soát hiện tượng
overffiting. Thông thường, lớp lấy mẫu lớn nhất có nhiều hình thức khác nhau tùy theo yêu cầu
bài toán, tuy nhiên lớp này thường được sử dụng nhằm giữ lại chi tiết quan trọng hay hiểu ở
trong bài toán này chính giữ lại pixel có giá trị lớn nhất.
(2)
Yki j = max Xkp q
Với (p,q) ∈ Rij
Trong đó ngõ ra của lớp lấy mẫu lớn nhất tương ứng với đặc trưng ( feature map) được
ký hiệu ykij, xkpq biểu hiện cho phần tử tại vị trí (p,q) trong vùng lấy giá trị lớn nhất thuộc Rij.
Ý nghĩa của lớp lấy mẫu lớn nhất là lấy giá trị lớn nhất trong vùng đầu vào và số lượng
nơ-ron giảm đi một nửa. Trong mạng CNN có nhiều bản đồ đặc trưng và mỗi bản đồ đặc trưng
khác nhau sẽ có lớp lấy mẫu tương ứng.
Lớp kết nối đầy đủ: Sau khi ảnh được truyền qua nhiều lớp tích chập và lớp lấy mẫu lớn
nhất thì model đã học được tương đối các đặc điểm của ảnh thì tensor ngõ ra của lớp cuối cùng,
kích thước H*W*D, sẽ được chuyển về 1 vector kích thước (H*W*D).
Sau đó ta dùng các fully connected layer để kết hợp các đặc điểm của ảnh để ra được output
của model. Cập nhật trọng số ngõ ra:
∆푊(2,1) = 푛(푑푝,푘 − 표푝,푘)푆(푛푒푡푝(2,푘)푥푝(1,푗)
(3)
푘,푗
Cập nhật trọng số giữa ngõ vào và các nốt ẩn:
)
(
)
(
1
푤(1,0) = 푛 ∑((푑푝,푘 − 표푝,푘)푆(푛푒푡푝(,푘푤푘,푗 )푆(푛푒푡푝,푗))푥푝,푖
2
2,1
(4)
푗,푖
푘
Hàm mục tiêu (Loss funtion) là hàm Mean Square Error (MSE):
55
1
1
푁
푁
푛=1 ||푦푛 − 푦̂푛||22
=
푛=1 ||푦푛 − 푎푛퐿 ||22
(
)
∑
∑
퐽 푊, 푏, 푋, 푌 =
(5)
푁
푁
Hàm Softmax: Là một trong những hàm kình điển trong học máy để phân loại đối tượng
dựa vào vector đặc trưng đã được tính toán của các lớp trước đó. Hàm Softmax tạo ra số lớp
nơ-ron tương ứng với số bệnh đầu vào mà bài toán yêu cầu.
Chúng ta cần một mô hình xác suất sao cho với mỗi input x, ai thể hiện xác suất để input
đó rơi vào class i. Vậy điều kiện cần là các ai phải dương và tổng của chúng bằng 1. Để có thể
thỏa mãn điều kiện này, chúng ta cần nhìn vào mọi giá trị zi và dựa trên quan hệ giữa các zi này
để tính toán giá trị của ai. Ngoài các điều kiện ai lớn hơn 0 và có tổng bằng 1, chúng ta sẽ thêm
một điều kiện cũng rất tự nhiên nữa, đó là: giá trị zi=wiTx càng lớn thì xác suất dữ liệu rơi vào
class i càng cao.
Điều kiện cuối cùng, tổng các ai bằng 1 có thể được đảm bảo nếu:
exp(푧푖)
푎푖 =
(6)
퐶
∑
푗=1 exp(푧푖)
Lúc này, ta có thể giả sử rằng:
(
|
)
푃 푦푘 = ꢀ 푥푘; 푊 = 푎푖
(7)
Trong đó, P(y=i|x;W) được hiểu là xác suất để một điểm dữ liệu x rơi vào class thứ i nếu
biết tham số mô hình (ma trận trọng số) là W.
2.4 Thuật toán ma trận nhầm lẫn
Sau khi huấn luyện mạng CNN, cần có một phương pháp để đánh giá hiệu quả thực tế của
mạng huấn luyện. Do đó, bài báo sử dụng thuật toán ma trận nhầm lẫn để xác định hiệu suất
của quá trình phân loại bệnh da.
Giả sử với bài toán có 10 điểm dữ liệu trong tập kiểm thử với các nhãn thực sự được mô
tả bởi y_true = [0, 0, 0, 0, 1, 1, 1, 2, 2, 2]. Giả sử bộ phân lớp chúng ta đang cần đánh giá dự
đoán nhãn cho các điểm này là y_pred = [0,1, 0, 2, 1, 1, 0, 2, 1, 2]. Bản chất ma trận nhầm lẫn
thể hiện có bao nhiêu điểm dữ liệu thực sự thuộc vào một class, và được dự đoán là rơi vào
một class. Xem hình 4.
Hình 4. Thuật toán ma trận nhầm lẫn
Trong đó với giá trị tại hàng thứ i, cột thứ j là số lượng điểm lẽ ra thuộc vào class i nhưng
lại được dự đoán là thuộc vào class j. Tổng các phần tử trong toàn ma trận này chính là số điểm
trong tập kiểm thử. Các phần tử trên đường chéo của ma trận là số điểm được phân loại đúng
của mỗi lớp dữ liệu. Từ đây có thể suy ra accuracy chính bằng tổng các phần tử trên đường
chéo chia cho tổng các phần tử của toàn ma trận.
3. KẾT QUẢ VÀ THẢO LUẬN
Trong phần này, bài báo sẽ trình bày các kết quả chạy code mô phỏng các trường hợp 03
bệnh, 04 bệnh và 05 bệnh. Một mạng CNN có thể bị ảnh hưởng bởi rất nhiều yếu tố như ảnh
56
đầu vào, việc lựa chọn số lớp tích chập, kích thước kernel, lớp kết nối đầy đủ, bản đồ đặc trưng
do đó trong mỗi trường hợp, bài báo sẽ thay đổi các thông số của mạng CNN như: số lớp tích
chập (03 lớp và 04 lớp), kích thước kernel (kernel 3,3 và kernel 5,5), giá trị bản đồ đặc trưng
(32, 64, 128, 256).
Sau khi có kết quả huấn luyện, sử dụng ma trận nhầm lẫn để đánh giá hiệu suất của mạng
CNN về phân loại 05 loại bệnh da được đánh số tương ứng:
1: Bệnh ung thư tế bào.
2: Bệnh viêm màng sừng.
3: Bệnh u da lành tính.
4: Bệnh nốt ruồi hắc tố.
5: Bệnh ung thư tế bào hắc tố.
3.1 Mạng CNN nhận dạng bệnh da với 04 lớp tích chập
Trường hợp 1: nhận dạng 03 bệnh với kernel (3,3)
Hình 5. Kết quả huấn luyện nhận dạng 03 bệnh da với kernel (3,3)
Kết quả huấn luyện nhận dạng 03 bệnh với kernel (3,3) trong trường hợp 1 đạt kết quả khá
cao, tuy nhiên nếu chỉ dựa vào kết quả này vẫn chưa thể xác định được độ chính xác của mô
hình CNN, do đó cần phải kiểm tra thực tế bằng ma trận nhầm lẫn.
Hình 6. Kết quả đánh giá phân loại 03 bệnh với kernel (3,3)
Kết quả đánh giá mô hình CNN bằng ma trận nhầm lẫn với bệnh 1 đạt độ chính xác 98,4%,
bệnh 2 là 100%, bệnh 3 là 97,2%. Tuy nhiên vẫn còn sai số với bệnh 1 là 1,6% và với bệnh 3
là 2,8%.
Trường hợp 2: nhận dạng 03 bệnh với kernel (5,5)
57
Hình 7. Kết quả huấn luyện nhận dạng 03 bệnh da với kernel (5,5)
Trong trường hợp 2, mạng CNN vẫn nhận dạng 03 bệnh tuy nhiên có thay đổi giá trị kernel
(5,5). Dễ dàng nhận thấy biểu đồ Test Acc trong trường hợp 2 đã không còn ổn định như trường
hợp 1, mặc dù kết quả cuối cùng cũng đạt đến 98%.
Hình 8. Kết quả đánh giá phân loại 03 bệnh với kernel (5,5)
Kết quả đánh giá bằng ma trận nhầm lẫn cho thấy trong trường hợp 2, bệnh 2 vẫn đạt kết
quả tuyệt đối trong khi đó kết quả kiểm tra với bệnh 1 và bệnh 3 lần lượt là 97,3% và 97,8%.
Trường hợp 3: nhận dạng 04 bệnh với kernel (3,3)
Hình 9. Kết quả huấn luyện nhận dạng 04 bệnh da với kernel (3,3)
Khi tăng số lượng bệnh cần nhận dạng lên 04 bệnh thì kết quả huấn luyện mạng CNN
không còn đạt hiệu quả cao như trường hợp 1 và trường hợp 2. Biểu đồ Test Acc chỉ đạt hiệu
quả 97%.
58
Hình 10. Kết quả đánh giá phân loại 04 bệnh với kernel (3,3)
Từ kết quả đánh giá ma trận nhầm lẫn, trong trường hợp 4 bệnh với kernel (3,3) bệnh 2 đã
không đạt được kết quả tuyệt đối như trường hợp 1 và trường hợp 2 nữa. Thay vào đó kết quả
được chia đều cho cả 4 bệnh tương ứng bệnh 1: 96,2%, bệnh 2: 95,4%, bệnh 3: 96,4% và bệnh
4: 95,8%.
Trường hợp 4: nhận dạng 04 bệnh với kernel (5,5)
Hình 11. Kết quả huấn luyện nhận dạng 04 bệnh da với kernel (5,5)
Kết quả huấn luyện mạng CNN với 04 bệnh da sử dụng kernel (5,5) cho thấy giá trị Test
Acc đã giảm xuống còn 95% và độ dao động của Test Acc lớn hơn rất nhiều so với trường hợp
3, có lúc giá trị Test Acc chỉ đạt 85%.
Hình 12. Kết quả đánh giá phân loại 04 bệnh với kernel (5,5)
Trường hợp 5: nhận dạng 05 bệnh với kernel (3,3)
59
Hình 13. Kết quả huấn luyện nhận dạng 05 bệnh da với kernel (3,3)
Khi mạng CNN càng phức tạp (số lượng đầu vào tăng 05 loại bệnh da) thì kết quả huấn
luyện giảm. Trong trường hợp này giá trị Test Acc chỉ đạt 93%.
Hình 14. Kết quả đánh giá phân loại 05 bệnh với kernel (3,3)
Từ kết quả kiểm tra thực tế bằng ma trận nhầm lẫn, khả năng phân loại chính xác với bệnh
1 là 93,2%, bệnh 2: 92,9%, bệnh 3: 93,6%, bệnh 4: 92,4%, bệnh 5: 93,7%.
Trường hợp 6: nhận dạng 05 bệnh với kernel (5,5)
Hình 15. Kết quả huấn luyện nhận dạng 05 bệnh da với kernel (5,5)
Trong trường hợp nhận dạng 05 bệnh với kernel (5,5), giá trị Test Acc đã giảm xuống còn
92% và nếu tăng Epoch thì giá trị Test Acc đang có xu hướng giảm. Giá trị Test Acc giảm thấp
nhất xuống chỉ còn 81%.
60
Hình 16. Kết quả đánh giá phân loại 05 bệnh với kernel (5,5)
3.2 Mạng CNN nhận dạng bệnh da với 03 lớp tích chập
Trường hợp 7: nhận dạng 03 bệnh với kernel (3,3)
Hình 17. Kết quả huấn luyện nhận dạng 03 bệnh da với kernel (3,3)
Mô hình mạng CNN trong trường hợp 7 đến trường hợp 12 chỉ sử dụng 03 lớp tích chập,
tuy nhiên trong trường hợp nhận dạng 03 bệnh với kernel (3,3) giá trị Test Acc vẫn đạt hiệu
quả cao, gần như tuyệt đối.
Hình 18. Kết quả đánh giá phân loại 03 bệnh với kernel (3,3)
Trường hợp 8: nhận dạng 03 bệnh với kernel (5,5)
61
Hình 19. Kết quả huấn luyện nhận dạng 03 bệnh da với kernel (5,5)
Hình 20. Kết quả đánh giá phân loại 03 bệnh với kernel (5,5)
Trường hợp 9: nhận dạng 04 bệnh với kernel (3,3)
Hình 21. Kết quả huấn luyện nhận dạng 04 bệnh da với kernel (3,3)
Hiệu quả của mô hình CNN sử dụng 03 lớp tích chập trong trường hợp này đã giảm khá
nhiều so với mô hình CNN sử dụng 04 lớp tích chập được trình bày ở trên. Hiệu quả Test Acc
chỉ còn 92%.
62
Hình 22. Kết quả đánh giá phân loại 04 bệnh với kernel (3,3)
Trường hợp 10: nhận dạng 04 bệnh với kernel (5,5)
Hình 23. Kết quả huấn luyện nhận dạng 04 bệnh da với kernel (5,5)
Hình 24. Kết quả đánh giá phân loại 04 bệnh với kernel (5,5)
Trường hợp 11: nhận dạng 05 bệnh với kernel (3,3)
63
Hình 25. Kết quả huấn luyện nhận dạng 05 bệnh da với kernel (3,3)
Hình 26. Kết quả đánh giá phân loại 05 bệnh với kernel (3,3)
Trường hợp 12: nhận dạng 05 bệnh với kernel (5,5)
Hình 27. Kết quả huấn luyện nhận dạng 05 bệnh da với kernel (5,5)
Hình 28. Kết quả đánh giá phân loại 05 bệnh với kernel (5,5)
64
3.3 Nhận xét
Bài báo đã sử dụng mạng CNN để phát hiện và phân loại 05 bệnh da người trong tập ảnh
ISIC 2018 chia làm 12 trường hợp, thông qua các kết quả chạy huấn luyện dễ dàng nhận thấy
hiệu suất của quá trình huấn luyện phụ thuộc vào các thông số của mạng CNN như số lớp tích
chập, kích thước kernel, tính đặc trưng, số bệnh đầu vào để phân loại.
Trong kết quả thu được, khi sử dụng 04 lớp tích chập có hiệu suất huấn luyện cao hơn so
với 03 lớp tích chập dù cho có thay đổi các thông số mạng còn lại như kích thước kernel, feature
maps, số bệnh đầu vào phân loại.
Khi so sánh kết quả trong cùng một mạng CNN, thì mạng CNN sử dụng kernel (3,3) sẽ
cho kết quả tốt hơn mạng CNN sử dụng kernel (5,5), điều này được thể hiện rõ trong kết quả
huấn luyện mạng ở trường hợp 1, 2 và trường hợp 7,8. Giá trị Test Acc trong mạng CNN sử
dụng kernel (3,3) luôn cao hơn, ổn định hơn trong mạng CNN sử dụng kernel (5,5).
4. KẾT LUẬN
Bài báo đã thực hiện huấn luyện và phân loại bệnh da người sử dụng mạng nơ-ron tích
chập, mô phỏng thuật toán trên phần mềm Visual Studio Code. Dữ liệu sử dụng trong luân văn
với hơn 1000 ảnh bệnh da thu thập từ tập ảnh ISIC 2018 với 05 loại bệnh như ung thư tế bào,
viêm màng sừng, u da lành tính, nốt ruồi hắc tố, ung thư tế bào hắc tố. Ảnh bệnh da đầu vào
được tiền xử lý để giảm kích thước giúp ảnh có kích thước nhỏ gọn hơn, được chuẩn hóa các
giá trị pixels từ 0 đến 1 để qua mạng CNN hoạt động hiệu quả, giúp phân loại bệnh chính xác
và đáp ứng yêu cầu về thời gian thực. Bài báo cũng tiến hành huấn luyện và phân loại bệnh
trong các trường hợp 03 bệnh, 04 bệnh, 05 bệnh với sự thay đổi của các thông số mạng CNN
như thay đổi số lớp tích chập, kích thước kernel, giá trị đặc trưng nhằm từ đó tìm ra các thông
số lựa chọn tối ưu nhất cho mạng CNN. Trong quá trình huấn luyện, mạng CNN bài báo xây
dựng cũng đã đạt được kết quả huấn luyện cao nhất là 97%.
Tuy nhiên vẫn còn một số vấn đề cần cải thiện như mỗi loại bệnh da đầu vào khoảng 200
ảnh, tổng số ảnh dùng trong nghiên cứu chỉ khoảng 1000 ảnh, số ảnh này đều được lấy từ tập
ảnh ISIC 2018 do đó nếu lấy một ảnh bệnh da từ nguồn internet hoặc ảnh chụp từ các thiết bị
camera đưa vào mạng CNN để phân loại thì chưa đạt được hiệu quả cao. Trong tương lai, cần
xây dựng và thu thập tập ảnh đầu vào phong phú hơn, không chỉ riêng trong tập ảnh ISIC 2018
mà nên xây dựng tập ảnh từ các nguồn thu thập khác nhất là tập ảnh bệnh da thực tế tại các
bệnh viện. Số lượng ảnh càng nhiều hiệu suất mạng CNN càng được cải thiện.
65
TÀI LIỆU THAM KHẢO
[1] TOBIAS, L., A. DUCOURNAU, F. ROUSSEAU, G. MERCIER and R. FABLET,
“Convolutional Neural Networks for object recognition on mobile devices: Acase study”. In: 23rd
International Conference on Pattern Recognition (ICPR). Cancun: IEEE, 2016.
[2] GUO, S., S. CHEN and Y. LI, “Face recognition based on convolutional neural network and
support vector machine”. In: IEEE International Conference on Information and Automation
(ICIA). Ningbo: IEEE, 2016.
[3] Patrik KAMENCAY, Miroslav BENCO, Tomas MIZDOS, Roman RADIL, “A New Method for
Face Recognition Using Convolutional Neural Network”, Digital Image Processing And
Computer Graphics, 2017
[4] M. A. Al-Masni, M. A. Al-antari, M.-T. Choi, S.-M. Han, and T.-S. Kim, “Skin lesion
segmentation in dermoscopy images via deep full resolution convolutional networks,” Computer
methods and programs in biomedicine, vol. 162, pp. 221–231, 2018.
[5] N. Nida, A. Irtaza, A. Javed, M. H. Yousaf, and M. T. Mahmood, “Melanoma lesion detection
and segmentation using deep region based convolutional neural network and fuzzy c-means
clustering,” International journal of medical informatics, vol. 124, pp. 37–48, 2019.
[6] S. Guo and Z. Yang, “Multi-channel-resnet: an integration framework towards skin lesion analysis,”
Informatics in Medicine Unlocked, vol. 12, pp. 67–74, 2018.
[7] N. Ibtehaz and M. S. Rahman, “Multiresunet: Rethinking the u-net architecture for multimodal
biomedical image segmentation,” arXiv preprint arXiv:1902.04049, 2019.
[8] S. Kitada and H. Iyatomi, “Skin lesion classification with ensemble of squeeze-and-excitation
networks and semi-supervised learning,” arXiv preprint arXiv:1809.02568, 2018.
[9] Y. Tokozume, Y. Ushiku, and T. Harada, “Between-class learning for image classification,” in
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018, pp.
5486–5494.
[10] N. Gessert, T. Sentker, F. Madesta, R. Schmitz, H. Kniep, I. Baltruschat, R. Werner, and A.
Schlaefer, “Skin lesion diagnosis using ensembles, unscaled multi-crop evaluation and loss
weighting,” arXiv preprint arXiv:1808.01694, 2018.
[11] G. Huang, Z. Liu, L. Van Der Maaten, and K. Q. Weinberger, “Densely connected convolutional
networks,” in Proceedings of the IEEE conference on computer vision and pattern recognition,
2017, pp. 4700–4708.
[12] J. Hu, L. Shen, and G. Sun, “Squeeze-and-excitation networks,” in Proceedings of the IEEE
conference on computer vision and pattern recognition, 2018, pp. 7132–7141.
[13] S. Xie, R. Girshick, P. Dollar, Z. Tu, and K. He, “Aggregated residual transformations for deep
neural networks,” in Proceedings of the IEEE conference on computer vision and pattern
recognition, 2017, pp. 1492–1500.
[14] M. A. A. Milton, “Automated skin lesion classification using ensemble of deep neural networks
in isic 2018: Skin lesion analysis towards melanoma detection challenge,” arXiv preprint
arXiv:1901.10802, 2019.
[15] B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, “Learning transferable architectures for scalable
image recognition,” in Proceedings of the IEEE conference on computer vision and pattern
recognition, 2018, pp. 8697–8710.
[16] C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi, “Inception-v4, inception-resnet and the
impact of residual connections on learning,” in Thirty-First AAAI Conference on Artificial
Intelligence, 2017.
66
Thông tin liên hệ tác giả chính (người chịu trách nhiệm bài viết):
Họ tên: Hoàng Đình Phương
Đơn vị: Công an Quận 12 – TP.HCM
Điện thoại: 0985252728
67
68
BÀI BÁO KHOA HỌC
THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ
Bài báo khoa học của học viên
có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn
Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ
Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam.
Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý
của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.
ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN!
Thực hiện theo MTCL & KHTHMTCL Năm học 2019-2020 của Thư viện Trường Đại học
Sư phạm Kỹ thuật Tp. Hồ Chí Minh.
Bạn đang xem tài liệu "Mạng nơron tích chập cho phân loại bệnh da người", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
mang_noron_tich_chap_cho_phan_loai_benh_da_nguoi.pdf

