1. Trang chủ
  2. » Luận Văn - Báo Cáo

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,

31 3 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

Tiêu đề 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
Tác giả Phạm Xuân Thường, Hoàng Nghĩa Phong, Đinh Trọng Phúc
Trường học Đại học khoa học tự nhiên, Đại học Quốc gia Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 4,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

LỜ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 4

CHƯƠ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 5

1.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 6

Mạ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 7

Hà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 8

1.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 10

hợ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 11

1.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 12

Dễ 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 13

nơ 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 14

nhâ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 16

Vì 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 18

Bướ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 19

Hì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 20

1.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 21

xử 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

Ngày đăng: 29/06/2023, 10:12

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w