Convolutional Neural Network CNNs – Mạng nơ-ron tích chập là một trong những mô hình Deep Learning 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 ca
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
MỘT SỐ VẤN ĐỀ VỀ CHỌN LỌC
THỊ GIÁC MÁY TÍNH
NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,
Sinh viên thực hiện : Phạm Xuân Thường - 19000492
Hoàng Nghĩa Phong - 19000460 Đinh Trọng Phúc - 19000462
Hà Nội - 2022
Trang 3LỜI MỞ ĐẦU
Deep Learning là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu Deep Learning được ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tựnhiên
Hiện nay rất nhiều các bài toán nhận dạng sử dụng deep learning để giải quyết do deep learning có thể giải quyết các bài toán với số l ợng lớn, kích thước đầu vào lớn với hiệu ƣnăng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống
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ácmá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
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning 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.Bài báo cáo , chúng em đi vào nghiên cứu về mạng neural cũng như mạng Convolution (tích chập) cũng như ý tưởng của mô hình Nội dung bài báo cáo bao gồm 3 chương
Chương 1: Mạng neural và mạng neural tích chập
Chương 2: Tổng quan về nhận dạng biển số xe
. Chương 3: Áp dụng mạng neural tích chập trong nhận dạng ký
Trang 4CHƯƠNG 1.
TỔNG QUAN VỀ MẠNG NƠ RON
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP 1.1 Nơ ron nhân tạo
1.1.1 Lịch sử của nơ ron nhân tạo
Vào năm 1943, nhà thần kinh học Warren McCulloch đã cùng nhà toán học WalterPitts đã viết một cuốn sách về cách mạng thần kinh hoạt động Và họ đã thực hiện môphỏng một mạng thần kinh đơn giản trên một mạch điện [9]
Vào năm 1949, Donald Hebb đã viết cuốn sách Organization of Behavior Điểm
nhấn chính là mạng thần kinh nào được sử dụng nhiều sẽ được tăng cường
Vào năm 1959, David Hubel và Torsten Wiesel đã xuất bản cuốn sách Receptive fields of single neurons in the cat’s striate cortex, miêu tả về phản ứng của các tế bào thần
kinh thị giác trên loài mèo, cũng như cách loài mèo ghi nhớ và nhận diện hình dạng trênkiến trúc vỏ não của nó
Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10]
Vào năm 1989, Yann LeCun đã áp dụng thuật toán học cho mạng nơ ron theo kiểulan truyền ngược vào kiến trúc mạng nơ ron tích chập của Fukushima Sau đó vài năm,LeCun đã công bố LeNet-5 [13] Có thể nói, LeNet-5 là một trong những mạng nơ rontích chập sơ khai nhất, tuy nhiên các dấu ấn của nó vẫn tồn tại tới ngày nay, có thể thấythông qua một số thành phần thiết yếu mà các mạng nơ ron tích chập của ngày nay vẫnđang sử dụng
Trang 51.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học
Hình 1.2: Hình ảnh một nơ ron sinh học [14]
Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, trong đó:
Thân nơ ron: là nơi xử lý các tín hiệu được đưa vào;
Tua gai thần kinh: là nơi nhận các xung điện vào trong nơ ron;
Sợi trục thần kinh: là nơi đưa tín hiệu ra ngoài sau khi được xử lý bởi nơ
ron;
Khớp thần kinh: vị trí nằm giữa tua gai thần kinh và sợi trục thần kinh, đây
là điểm liên kết đầu ra của nơ ron này với đầu vào của nơ ron khác
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo
Dựa vào cấu tạo của một nơ ron sinh học, các nhà khoa học nghiên cứu và lập trình
đã đưa ra kiến trúc của một nơ ron nhân tạo:
Hình 1.3: Công thức của một nơ ron nhân tạo [41]
Trang 6Mạng nơ ron nhân tạo có thể mô tả đơn giản lại như sau:
Trong đó:
Hình 1.4: Hình ảnh một nơ ron nhân tạo
Danh sách các đầu vào: Là các thuộc tính đầu vào của một nơ ron Số
lượng thuộc tính đầu vào thường nhiều hơn một, do dữ liệu thô đầu vàothường là một vector nhiều chiều, hoặc nhiều nơ ron tầng trước kết nối tớimột nơ ron tầng sau
Trọng số liên kết: Các liên kết được thể hiện độ mạnh yếu qua một giá trị
được gọi là trọng số liên kết Kết hơp với các đầu truyền, tín hiệu đến các
nơ ron nhân tạo khác sẽ được tính bằng ;
Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế
Trang 7Hàm tổng: Tổng các tích của các đầu vào với trọng số liên kết mô phỏng
các khớp kết nối Sau đó đi qua hàm tính tổng để tính ra giá trị trước khiđưa vào hàm truyền;
Thiên lệch (b): Độ lệch được đưa vào sau khi khi tính toán xong hàm tổng,
tạo ra giá trị cuối cùng trước khi đưa vào hàm truyền Mục đích của việcthêm vào thiên lệch nhằm dịch chuyển chức năng của hàm kích hoạt sangtrái hoặc phải, giúp ích khi mạng được huấn luyện Hình ảnh vị trí thiênlệch được thêm vào trong mạng nơ ron thực tế
Hình ảnh huấn luyện khi có và không có thiên lệch:
Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch
Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau
Hàm kích hoạt (Activation functions): Hàm này được sử dụng để tính toán giá trị của đầu ra dựa vào giá trị của hàm Tổng
Trang 81.1.4 Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo
về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm
Trang 10hợp cho việc huấn luyện từ dữ liệu chuẩn Tuy nhiên, điều này khiến hàm RELU không ánh xạ các giá trị âm một cách thích hợp.
Trang 111.2 Mạng nơ ron nhân tạo
1.2.1 Giới thiệu mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giảithuật lập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộcác sinh vật sống Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập
dữ liệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lạichứa nhiều nơ ron Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kếtđược biểu hiện qua trọng số liên kết
Lập trình thông thường có thể làm được rất nhiều phần mềm lớn, như tính toán môphỏng các vụ nổ hạt nhân trong siêu máy tính ở các phòng thí nghiệm, hoặc tái hiện các tếbào ở cấp độ phân tử để phân tích các thử nghiệm thuốc Một siêu máy tính có thể tínhtoán được nhiều tỉ phép tính trên giây, tuy nhiên lập trình thông thường lại gặp khó khăntrong việc nhận ra các mẫu đơn giản, ví dụ như nhận diện mặt người, điều mà một bộ nãosinh học xử lý nhanh và chính xác hơn nhiều
Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được ápdụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giảiquyết được Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xuthế trên nhiều lĩnh vực
1.2.2 Một số kiểu mạng nơ ron
Có hai kiểu mạng nơ ron chính: mạng nơ ron truyền thằng (feedforward neuralnetwork) và mạng nơ ron hồi quy (recurrent neural network)
Mạng truyền thẳng và hồi quy được minh họa như sau:
Hình 1.13: Mạng nơ ron truyền thẳng
Trang 12Dễ thấy, ở mạng nơ ron truyền thẳng, các nơ ron trong tầng ẩn đều được kếtnối với các nơ ron trong tầng Do có nhiều tầng ẩn nên chúng ta có thể thấy rằng mạngn
truyền thẳng kéo dài trong không gian, và là không có bất kỳ đường tuần hoàn (cyclicpath) nào nằm trong mạng Mạng nơ ron truyền thẳng rất phổ biến hiện nay
Hình 1.14: Mạng nơ ron hồi quy
Một loại khác là mạng nơ ron hồi quy Không giống như mạng nơ ron truyềnthẳng, mạng nơ ron hồi quy có ít nhất một đường dẫn tuần hoàn Chúng ta có thể thấy nó
ở hình minh họa phía trên Vì có một đường dẫn tuần hoàn, nên mạng nơ ron hồi quy cóthể gây ra vòng lặp vô cực Tuy nhiên, mạng nơ ron tuần hoàn có một ứng dụng quantrọng là chúng có thể nhận diện cho các giai đoạn thời gian khác nhau, như hình minh họasau:
Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy
Như ví dụ trên, có một nút A kết nối với nút B và một chu kỳ đến chính nút A.Mạng nơ ron hồi quy không xử lý đường dẫn tuần hoàn và các kết nối cùng một lúc.Mạng nơ ron hồi quy giả sử rằng đầu ra của nút A trong thời gian là đầu vào của nút Bn
và nút A trong thời gian n + 1 Vì vậy, ngoài tính chất kéo dài trong không gian khi kết nốivới các tầng nơ ron tiếp theo, mạng nơ ron hồi quy cũng nằm sâu trong thời gian Vì vậy,các mạng nơ ron hồi quy có thể mô hình hóa các hệ thống thay đổi theo bối cảnh Ví dụ:mạng nơ ron hồi quy thường được sử dụng trong xử lý ngôn ngữ theo ngữ cảnh Mạng
Trang 13nơ ron hồi quy có thể xử lý các phụ thuộc xa (long-term dependencies) theo mốc thời gian, ví dụ như mạng bộ nhớ dài-ngắn (Long Short Term Memory networks).
1.2.3 Mạng nơ ron lan truyền ngược
1.2.3.1 Tổng quan về mạng nơ ron lan truyền ngược
Giải thuật lan truyền ngược được mô tả ngắn gọn như sau:
1 Bước 1: Lan truyền Giai đoạn lan truyền có hai bước, lan truyền tiến và lantruyền ngược Bước lan truyền tiến là nhập dữ liệu huấn luyện vào cácmạng nơ ron và tính toán đầu ra Sau đó, dựa vào kết quả đầu ra, so sánh với
dữ liệu huấn luyện Chúng ta có thể sử dụng lan truyền ngược để cập nhậtngược lại trọng số lại cho các nơron trong các tầng trước đó
2 Bước 2: Cập nhật trọng số Mạng cập nhật các giá trị của trọng số của nơron theo lỗi của kết quả đầu ra
3 Bước 3: Lặp hai bước trên Lặp lại bước một và hai cho đến khi sai số tốithiểu Sau đó kết thúc khóa huấn luyện
1.2.3.2 Cách thức lan truyền ngược
1 Sử dụng để biểu diễn đầu vào cho nút của lớp
2 Sử dụng cho trọng số từ nút của lớp đến nút của lớp
3 Sử dụng được biểu diễn cho độ lệch của nút của lớp
4 Sử dụng đại diện cho đầu ra của nút của lớp
5 Sử dụng đại diện cho đầu ra mong muốn, dựa trên tập huấn luyện được sửdụng
6 Sử dụng là hàm kích hoạt, sử dụng Sigmoid cho hàm kích hoạt
Để có được lỗi tối thiểu, hàm chi phí được tính toán với công thức như sau:
lớp vàTrong đó x là đầu vào dữ liệu huấn luyện và là đầu ra mong muốn L là tổng số
y L là đầu ra của mạng nơ ron tương ứng với đầu vào x Để đạo hàm dễ dàng, taj
Trang 14nhân tổng của (4) với một hằng số 1/2.
Để tìm ra mức tối thiểu Trước tiên, ta tính toán các đạo hàm riêng của hàm chi phí đối với bất kỳ trọng số nào, với công thức sau:
Có hai trường hợp: Nút là một nút đầu ra hoặc trong một tầng ẩn Trong trường hợp ở tầng đầu ra, trước tiên chúng ta tính đạo hàm chênh lệch:
Phương trình cuối cùng dựa trên quy tắc chuỗi Nút là nút duy nhất có trọng sốnên các giá trị khác sẽ bằng 0 Và là đầu ra của hàm kích hoạt (hàm Sigmoid) Do
đó, phương trình mới thu được là:
Trong đó L
k sự kết hợp tuyến tính của tất cả các đầu vào của nút j trong tầng L vớicác trọng số Hàm sigmoid là đạo hàm có dạng sau:
x
Trang 15để biểu diễn nút của tầng Do vậy, phương trình mới thu được là:
Ta xem xét các nút của tầng ẩn Ở lớp ngay trước lớp đầu ra Áp dụng đạohàm riêng một phần trên trọng số cho hàm chi phí Các trọng số cho các nút của tầng ẩnnày:
Trang 16Vì có một tổng trên tầng Do thay đổi của các trọng số cho các nút của cáctầng ẩn sẽ ảnh hưởng đến đầu ra mạng nơ ron Do đó, áp dụng quy tắc chuỗi (chain rule):
Sau đó, đạo hàm theo quy tắc chuỗi:
Dòng thứ 2 của (14) dựa vào đầu vào của là sự kết hợp tuyến tính giữa các đầu
ra của nút của lớp trước với trọng số Vì đạo hàm không liên quan đến nút của lớp L
Do đó, ta đơn giản hóa đạo hàm dựa trên quy tắc chuỗi:
Chuyển thành Do đó phương trình trở thành:
Ta xét 2 trường hợp:
Trang 17Đối với tầng đầu ra nút k: , trong đó:
Đối với tầng ẩn nút j: , trong đó:
Áp dụng quy trình tương tự Ví dụ, Tính đạo hàm riêng cho độ lệch của nút k tronglớp cuối cùng và thu được:
Bước 3: Đối với mỗi nút ở tầng ẩn, ta thực hiện phép tính:
Trang 18Bước 4: Cập nhật các trọng số và thiên lệch như sau:
Giả thiết:
Áp dụng:
Tham số trong thuật toán được gọi là tốc độ học tập Thuật toán này lặp lại chođến khi đạt sai số tối thiểu hoặc dưới ngưỡng chấp nhận được để hoàn thành quá trình huấn luyện
1.3 Mạng nơ ron tích chập
1.3.1 Khái niệm về mạng nơ ron tích chập
Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt Mạng nơron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay Hầu hết các hệthống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lýnhanh và độ chính xác cao Trong mạng nơ ron truyền thống, các tầng được coi là mộtchiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: chiều cao,chiều rộng và chiều sâu (Hình 1.11) Mạng nơ ron tích chập có hai khái niệm quan trọng:kết nối cục bộ và chia sẻ tham số Những khái niệm này góp phần giảm số lượng trọng sốcần được huấn luyện, do đó tăng nhanh được tốc độ tính toán
Hình 1.16: Các tầng (layer) trong CNN là 3 chiều
Trang 19Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20]
1.3.2 Mô hình mạng nơ ron tích chập
Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập:
1 Tầng tích chập;
2 Tầng gộp (pooling layer);
3 Tầng được kết nối đầy đủ (fully-connected)
Tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thựchiện tích chập nhiều lần trên tầng trước Tầng gộp có thể làm giảm kích thước mẫu trêntừng khối 2x2 của tầng trước đó Ở các mạng nơ ron tích chập, kiến trúc mạng thườngchồng ba tầng này để xây dựng kiến trúc đầy đủ Ví dụ minh họa về một kiến trúc mạng
nơ ron tích chập đầy đủ:
Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19]
Trang 201.3.2 Xây dựng mạng nơ ron tích chập
1.3.2.1 Mạng được kết nối cục bộ
Trong xử lý hình ảnh, thông tin của hình ảnh là các điểm ảnh (pixel) Nếu sử dụngmạng được kết nối đầy đủ, chúng ta sẽ có rất nhiều tham số Ví dụ, một hình ảnh RGB cókích thước 512x512 pixel sẽ có 786432 (= 512 x 512 x 3) tham số đầu vào Vì vậy, nếuchúng ta sử dụng kiến trúc mạng nơ ron trong hình sau:
Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ
Hình trên cho thấy nếu áp dụng mạng nơ ron được kết nối đầy đủ, toàn bộ kiến trúcmạng sẽ cần tính toán hơn 3 triệu nơ ron Số lượng lớn các nơ ron làm cho toàn bộ quátrình học rất chậm và dẫn đến quá tải so với khả năng tính toán của máy tính hiện tại.Qua một vài nghiên cứu về xử lý ảnh, các nhà nghiên cứu nhận thấy rằng các tínhnăng trong một hình ảnh thường là cục bộ, và các nhà nghiên cứu chú ý đến các tính năngcấp thấp đầu tiên khi xử lý ảnh Vì vậy, kiến trúc mạng có thể chuyển mạng được kết nốiđầy đủ sang mạng được kết nối cục bộ, nhằm làm giảm độ phức tạp của tính toán Đây làmột trong những ý tưởng chính trong CNN Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron
tầng ẩn
Giống như xử lý hình ảnh thông thường, chúng ta có thể kết nối cục bộ một khốivuông ma trận với nơ ron Kích thước khối thông thường là 3x3, 5x5, hoặc 7x7 Ý nghĩavật lý của khối giống như một cửa sổ trượt (cửa sổ trượt là một trong những phương pháp
Trang 21xử lý ảnh) Bằng cách đó, số lượng tham số có thể giảm xuống rất nhỏ nhưng không gây
ra giảm hoặc mất thông tin, vì hình ảnh thông thường thường có tính lặp trong khônggian Để trích xuất nhiều thông tin hơn, các mạng nơ ron kết nối khối cùng với một nơ ronkhác Độ sâu trong các tầng là số lần chúng ta kết nối một khu vực với các nơ ron khácnhau Ví dụ, mạng kết nối cùng một khu vực với 5 nơ ron khác nhau Vì vậy, độ sâu lànăm trong tầng mới Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.21: Ví dụ về lớp tích chập
Trong thực tế, có thể kết nối tất cả thông tin độ sâu (ví dụ: kênh 3 RGB) với nơ rontiếp theo vì kết nối là cục bộ trong không gian và có chiều sâu đầy đủ Tuy nhiên ở ví dụnày chỉ kết nối thông tin cục bộ về chiều cao và chiều rộng Vì vậy, có thể có
các tham số trong hình trên cho nơ ron sau lớp màu xanh nếu chúng ta sử dụng cửa sổ Biến thứ nhất và thứ hai là chiều cao và chiều rộng của kích thước cửa sổ và biến thứ ba là độ sâu của lớp
Ví dụ này di chuyển cửa sổ bên trong hình ảnh và làm cho tầng tiếp theo cũng có chiều cao và chiều rộng, và là một hai chiều Ví dụ: nếu chúng ta di chuyển cửa sổ 1 pixelmỗi lần, gọi là bước nhảy là 1, trong một hình ảnh và kích thước cửa sổ là
sẽ có các nơ ron ở tầng tiếp theo Có thể thấy rằng, kíchthước đã giảm từ 32 xuống 28 Vì vậy, để bảo toàn kích thước, chúng ta thêm phần trống vào đường viền Quay lại ví dụ trên, nếu chúng ta đệm với 2 pixel, có
các nơ ron ở lớp tiếp theo để giữ kích thước chiều cao và chiều rộng Như ví dụ trên, nếu chúng ta sử dụng kích thước cửa sổ w, chúng ta sẽ có 1 vùngđược tích chập với kích cỡ của cửa sổ mới là pixel Thông tin đường viền sẽ không ảnh hưởng nhiều vì những giá trị đó chỉ được sử dụng một lần