CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Mạng nơ ron nhân tạo 1.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ải thuậ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ại chứ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. [13] 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ính toá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ăn trong 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ão sinh 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 áp dụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải quyết được. Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu thế trên nhiều lĩnh vực.2 Kiến trúc mạng nơ ron nhân tạo Một mạng Neural nhân tạo có cấu trúc như sau: Tng hp các án, khóa lun, tiu lun, chuyên và lun vn tt nghip i hc v các chuyên ngành: Kinh t, Tài Chính & Ngân Hàng, Công ngh thông tin document, khoa luan, tieu luan, 123 20 of 98. 8 Tầng lớp đầu vào (Input Layer): giá trị các node chính là số lượng đặc trưng của dữ liệu đầu vào khi đưa vào mô hình.
Chúng ta thấy giá trị đầu vào là n thuộc tính/đặc trưng. [14] Tầng lớp ẩn (Hidden Layer): có số node ẩn thường không được xác định, thường do kinh nghiệm của người thiết kế hoặc qua quá trình thử nghiệm nhiều lần mà có được. Tuy nhiên thực tế nếu số lượng node ẩn quá nhiều thì mạng sẽ học chậm, còn nếu số node quá ít thì mạng sẽ không rút trích đủ các thông tin cần thiết trên các đặc trưng. Từ đó hiệu quả của mô hình sẽ không được chính xác.
Số lượng các lớp ẩn ở đây có thể một hoặc nhiều lớp ẩn tùy thuộc vào tính chất cũng như độ phức tạp của dữ liệu. Tầng đầu ra (Output layer): giá trị các số node chính là số lượng nhãn đầu ra mà chúng ta mong muốn. Ví dụ như trong tập dữ liệu của chúng ta có tổng cộng 5 nhãn, thì đầu ra của chúng ta tại lớp này chính là một lớp ẩn với 5 phần tử tương ứng với năm nhãn. 1: Minh họa về mạng neural nhân tạo Ngoài ra chúng ta còn một số thông tin liên quan đến mạng trí tuệ nhân tạo như : • Hàm tổng (Summing function): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó.
Tng hp các án, khóa lun, tiu lun, chuyên và lun vn tt nghip i hc v các chuyên ngành: Kinh t, Tài Chính & Ngân Hàng, Công ngh thông tin document, khoa luan, tieu luan, 123 21 of 98. 9 • Ngưỡng (còn gọi là độ lệch - bias): Ngưỡng này thường được đưa vào như một thành phần của hàm tổng. • Hàm kích hoạt (Activation function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi neural. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng.2 Mạng nơ ron tích chập (Convolutional Neural Networks) 1.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ột chiề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. 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. CNN được dùng trong trong nhiều bài toán như nhân dạng ảnh, phân tích video, ảnh MRI, hoặc cho bài các bài của lĩnh vự xử lý ngôn ngữ tự nhiên,và hầu hết đều giải quyết tốt các bài toán này. Tng hp các án, khóa lun, tiu lun, chuyên và lun vn tt nghip i hc v các chuyên ngành: Kinh t, Tài Chính & Ngân Hàng, Công ngh thông tin document, khoa luan, tieu luan, 123 22 of 98.2 Mô hình mạng nơ ron tích chập Một kiến trúc CNN bao gồm các lớp: convolution layer, pooling layer và fully connected layer. Ở giữa các lớp convolution và pooling thường có các hàm kích hoạt phi tuyến.
Ảnh khi đưa vào mạng sẽ được lan truyền qua tầng convolution layer, giá trị tính được từ các tầng convolution sẽ đi qua một hàm kích hoạt, sau đó giá trị này sẽ được lan truyền qua pooling layer. Cuối cùng ảnh sẽ được lan truyền đến tầng fully connected layer và đi qua hàm kích hoạt Softmax, thường thì cuối cùng sẽ thu được một vector chứa xác suất phần trăm thuộc về các lớp đối với các bài toán phân loại. Ví dụ minh họa về một kiến trúc mạng nơ ron tích chập đầy đủ: Hình 1. 3: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[15] ❖ Convolution layer Convolution layer là lớp quan trọng nhất và cũng là lớp đầu tiên của của mô hình CNN.
Lớp này có chức năng chính là phát hiện các đặc trưng có tính không gian hiệu quả. Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ filters, và receptive field, feature map. Conv layer nhận đầu vào là một ma trận 3 chiều và một bộ filters cần phải học. Bộ filters này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập (convolution) giữa bộ filter và phần tương ứng trên bức ảnh.
Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng mà một neuron có thể nhìn thấy để đưa ra quyết định, và mà trận cho ra bởi quá trình này được gọi là feature map. Khi đưa ảnh vào mạng, bộ filter sẽ quét qua toàn bộ ảnh cho nên các đặc trưng cơ bản của ảnh như là góc, cạnh, màu sắc và texture sẽ được mạng phát hiện ra bất kể nó nằm ở vị trí nào trong ảnh. Do đó tầng convolution được xem như là một bộ Tng hp các án, khóa lun, tiu lun, chuyên và lun vn tt nghip i hc v các chuyên ngành: Kinh t, Tài Chính & Ngân Hàng, Công ngh thông tin document, khoa luan, tieu luan, 123 23 of 98. 11 trích chọn đặc trưng (feature detector) vì nó có chức năng chính là phát hiện đặc trưng cụ thể của bức ảnh đầu vào.
[16] Khi áp dụng phép tính tích chập cho xử lý hình ảnh, người ta nhận thấy rằng kỹ thuật tích chập này sẽ giúp biến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương tự như bộ phát hiện nhằm phát hiện ra các đặc trưng như cạnh, hướng, .4 minh họa cho việc áp dụng phép tính tích chập trên ảnh và cho ra kết quả là một bản đồ đặc trưng - feature map. Cụ thể hơn, tích chập sẽ trích xuất đặc trưng của ảnh đầu vào qua các vùng ảnh nhỏ. Các vùng này được gọi là Local Receptive Field (LRF). Tích chập sẽ tính toán trên các LRF chồng lấp lên nhau.
Độ chồng lắp này phụ thuộc vào hệ số trượt S (stride) của từng kiến trúc mạng cụ thể. Nếu sử dụng với hệ số trượt S = α, thì tương ứng LRF (bằng kích thước với kernel) sẽ dịch chuyển α đơn vị pixel sau mỗi lần tích chập. 4: Minh họa cách thức tính chập của một ảnh RGB và ma trận kernel Ảnh đầu vào sau khi thực hiện quá trình tích chập sẽ thu được bản đồ đặc trưng, số LRF ở ảnh đầu vào sẽ tương ứng với số neural ở feature map và kernel sẽ là trọng số liên kết mỗi LRF với một neural ở bản đồ đặc trưng. Lớp tích chập có thể chứa một hoặc nhiều feature map.
Nếu lớp tích chập có K feature map, thì ta nói lớp conv này có độ sâu là k. Để hình dung rõ hơn về quá trình này, sau đây sẽ minh họa quá trình trích xuất đặc trưng từ ảnh đầu vào cụ thể như sau: thực hiện xử lý tính giá Tng hp các án, khóa lun, tiu lun, chuyên và lun vn tt nghip i hc v các chuyên ngành: Kinh t, Tài Chính & Ngân Hàng, Công ngh thông tin document, khoa luan, tieu luan, 123 24 of 98. 12 trị đầu ra của một ảnh có kích thước W1×H1×D1 (W1 và H1 lần lượt là chiều rộng và chiều cao của ảnh và D1 là chiều sâu hay thực chất là giá trị tại 3 kênh màu tương ứng của ảnh RGB). khi đó, một Conv như một cửa sổ trượt (sliding window, còn được gọi là kernel, filter hay feature detector) với kích thước F ×F - giả sử trong trường ta sử dụng K filter.
Trong quá trình xử lý, mỗi filter sẽ được tính toán với tất cả các LRF trong hình và S = α. Trong một số trường hợp để cân bằng giữa số bước di chuyển và kích thước của ảnh, người ta đã chèn thêm P pixel với một giá trị màu được gán (thông thường là 0) xung quanh viền của ảnh. sau cùng ta thu được ma trận đầu ra (feature map) với kích thước W2 ×H2 ×D2. 5: Mô phỏng quá trình tích chập trong CNN ❖ Các tham số của lớp tích chập – Convolutional Layer: Các tham số cơ bản của tầng convolution chính là kích thước filter, stride và padding.
Trong đó quan trọng nhất chính là kích thước bộ filter, vì nó tỉ lệ thuận với số tham số cần học tại mỗi tầng convolution và là tham số quyết định receptive field của tầng này. Kích thước filter phổ biến thường dùng là 3x3. Thông thường chúng ta nên chọn kích thước filter nhỏ, vì các lý do sau: o Rút trích được các đặc trưng có tính cục bộ cao. o Phát hiện được các đặc trưng nhỏ.
o Rút trích đa dạng đặc trưng, hữu ích cho các tầng sau.