Mạng nơron (NEURAL NETWORK)

Một phần của tài liệu Lập trình thi công và phát triển robot nhện iot (internet of thing) (Trang 34)

2.5.1. Giới thiệu

Mạng noron nhân tạo (Artifical Neural Networks) mô phỏng lại mạng noron sinh học là một cấu trúc khối gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau trong đ các liên kết giữa các noron quyết định chức n ng của mạng.

Các đặc trưng cơ bản của mạng nơ ron:

Gồm một tập các đơn vị x l (các noron nhân tạo) Trạng thái kích hoạt hay đầu ra của đơn vị x l

Liên kết Wgiữa các đơn vị. Xét tổng quát m i liên kết được định ngh a b i một trọng số jk cho ta biết hiệu ứng mà tín hiệu của đơn vị j c trên đơn vị k.

Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị từ đầu vào. Một hàm kích hoạt hay hàm chuyển (activation function transfer function) xác định mức độ kích hoạt khác dựa trên mức độ kích hoạt hiện tại.

Một đơn vị điều ch nh (độ lệch) (bias offset) của m i đơn vị. Phương pháp thu thập thông tin (luật học - learning rule).

2.5.2. Các thành phần cơ bản của mạng nơ ron

Đơn vị x l : c n được gọi là một nơron hay một nút (node) thực hiện một công việc rất đơn giản: n nhận tín hiệu vào từ các đơn vị phía trước hay một nguồn bên ngoài và s dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác. M i đơn vị j c thể c một hoặc nhiều đầu vào: x0 x1 x2 … xn nhưng ch c một đầu ra zj. Một đầu vào tới một đơn vị c thể là dữ liệu từ bên ngoài mạng.

Hình 2.23. Đơn vị xử lý (Processing Unit)

Trong đ :

xi : các đầu vào

wji : các trọng số tương ứng với các đầu vào θj : độ lệch (bias)

aj : đầu vào mạng (net-input) zj : đầu ra của nơron

g(x): hàm chuyển (hàm kích hoạt).

Trong một mạng nơron c ba kiểu đơn vị:

Các đơn vị đầu vào (Input units) nhận tín hiệu từ bên ngoài Các đơn vị đầu ra (Output units) g i dữ liệu ra bên ngoài

Các đơn vị ẩn (Hidden units) tín hiệu vào (input) và ra (output) của n trong mạng.

Hàm kết hợp: m i một đơn vị trong một mạng kết hợp các giá trị đưa vào n thông qua các liên kết với các đơn vị khác sinh ra một giá trị gọi là net input. Hàm thực hiện nhiệm vụ này gọi là hàm kết hợp (combination function) được định ngh a b i một luật lan truyền cụ thể. Trong phần lớn các mạng nơron chúng ta giả s rằng m i một đơn vị cung cấp một bộ cộng như là đầu vào cho đơn vị mà n c liên kết. Tổng đầu vào đơn vị j đơn giản ch là tổng trọng số của các đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay độ lệch (bias) θj :

aj in wjixi θj

Trường hợp wji > 0 nơron được coi là đang trong trạng thái kích thích. Tương tự nếu như wji < 0 nơron trạng thái kiềm chế. Chúng ta gọi các đơn vị với luật lan truyền như trên là các sigma units. Trong một vài trường hợp ta c ng c thể s dụng các luật lan truyền phức tạp hơn. Rất nhiều hàm kết hợp s dụng một "độ lệch" hay "ngưỡng" để tính net input tới đơn vị. Đối với một đơn vị đầu ra tuyến tính thông thường θj được chọn là hằng số và trong bài toán xấp x đa thức θj = 1.

Hàm kích hoạt: phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách s dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's activation). Loại trừ khả n ng đơn vị đ thuộc lớp ra giá trị kích hoạt được đưa vào một hay nhiều đơn vị khác. Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định do đ thường được gọi là các hàm bẹp (squashing). Các hàm kích hoạt hay được s dụng là: hàm đồng nhất (Linear function Identity function ) Hàm bước nhị phân (Binary step function Hard limit function) hàm sigmoid (Sigmoid function) ….

Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu diễn sự phi tuyến vào trong mạng. L do là hợp thành của các hàm đồng nhất là một hàm đồng nhất. Mặc d vậy nhưng n mang tính chất phi tuyến (ngh a là khả n ng biểu diễn các hàm phi tuyến) làm cho các mạng nhiều tầng c khả n ng rất tốt trong biểu diễn các ánh xạ phi tuyến. Tuy nhiên đối với luật học lan truyền ngược hàm phải khả vi (differentiable) và sẽ c ích nếu như hàm được g n trong một khoảng nào đ . Do vậy hàm sigmoid là lựa chọn thông dụng.

Hàm mục tiêu: để huấn luyện một mạng và xét xem n thực hiện tốt đến đâu ta cần xây dựng một hàm mục tiêu (hay hàm giá) để cung cấp cách thức đánh giá khả n ng hệ thống một cách không nhập nhằng. Việc chọn hàm mục tiêu là rất quan trọng b i vì hàm này thể hiện các mục tiêu thiết kế và quyết định thuật toán huấn luyện nào c thể được áp dụng. Để phát triển một hàm mục tiêu đo được chính xác cái chúng ta muốn không phải là việc dễ dàng. Một vài hàm cơ bản được s dụng rất rộng rãi. Một trong số chúng là hàm tổng bình phương l i (sum of squares error function). Trong các ứng dụng thực tế

21 nếu cần thiết c thể làm phức tạp hàm số với một vài yếu tố khác để c

Trong đ :

thể kiểm soát

h

p: số thứ tự m u trong tập huấn luyện i : số thứ tự của đơn vị đầu ra

tpi và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng cho đơn vị đầu ra thứ i trên m u thứ p.

2.6. Mạng nơ ron tích chập (CNN)2.6.1. Giới thiệu 2.6.1. Giới thiệu

Convolutional Neural Networks (CNN) hay mạng nơ rơn tích chập là là mô hình học sâu hàng đầu cho thị giác máy tính. Thị giác máy tính đã tr nên tốt đến mức n hiện đang đánh bại con người một số nhiệm vụ nhất định và CNN đ ng vai tr chính trong câu chuyện thành công này. CNN được s dụng để đánh giá đầu vào thông qua các tích chập. Đầu vào được tích hợp với một bộ lọc (filter). Sự tích chập này d n đến mạng để phát hiện các cạnh và các đặc trưng thấp các lớp sớm hơn nông hơn và các đặc trưng phức tạp các lớp sâu hơn của mạng. CNN được s dụng kết hợp với các lớp gộp (pooling layers) và chúng thường c các lớp được kết nối đầy đủ (fully connected layers)

cuối. Chạy lan truyền về phía trước như trong mạng nơ ron vanilla và giảm thiểu hàm loss thông qua truyền ngược để huấn luyện CNN. [1-2]

Phân loại hình ảnh là nhiệm vụ lấy hình ảnh đầu vào và xuất ra tên (mèo ch ..) hoặc xác suất của tên được miêu tả đúng nhất trong hình. Hình 2.24. cho thấy đối với con người k n ng nhận biết là một trong những k n ng chúng ta học được từ khi chúng ta được sinh ra và là một k n ng xuất hiện tự nhiên và dễ dàng khi trư ng thành. Thậm chí không cần suy ngh hai lần chúng ta c thể xác định nhanh ch ng và liền mạch môi trường chúng ta đang c ng như các đối tượng xung quanh chúng ta. Khi chúng ta nhìn thấy một hình ảnh hoặc ch khi chúng ta nhìn vào thế giới xung quanh chúng ta hầu hết chúng ta c thể mô tả ngay lập tức cảnh đ và đưa cho m i đối tượng một cái tên mà không hề nhận ra. Những kỹ n ng này c thể nhanh ch ng nhận ra các m u khái quát

h a từ kiến thức trước và thích nghi với các môi trường hình ảnh khác nhau là những kỹ n ng mà chúng ta không chia sẻ với các anh bạn máy m c của chúng ta.

Hình 2.24. Máy tính nhìn thấy một mảng pixel giá trị của một tấm ảnh

Khi một máy tính nhìn thấy một hình ảnh (lấy một hình ảnh làm đầu vào) n sẽ thấy một mảng các giá trị pixel. T y thuộc vào độ phân giải và kích thước của hình ảnh n sẽ thấy một dãy số 32 x 32 x 3 (Số 3 đề cập đến các giá trị RGB hay c 3 kênh). M i con số này được cho một giá trị từ 0 đến 255 mô tả cường độ pixel tại điểm đ . Những con số này nhìn thì vô ngh a đối với chúng ta khi thực hiện phân loại hình ảnh lại là đầu vào duy nhất mà máy tính c thể hiểu được. Ý tư ng là bạn cung cấp cho máy tính mảng số và n sẽ xuất ra các số mô tả xác suất tên hình ảnh của một tấm ảnh nhất định. Ví dụ : 0.8 là con ch 0.05 là con chim …

Những gì chúng tôi muốn máy tính làm là c thể phân biệt giữa tất cả các hình ảnh được đưa ra và tìm ra các đặc trưng độc nhất làm cho một con ch thành một con ch hoặc làm cho một con mèo thành một cozn mèo. Đây là quá trình diễn ra trong tiềm thức của chúng ta. Khi chúng ta nhìn vào hình ảnh của một con ch chúng ta c thể phân loại n như vậy là do bức ảnh c các đặc điểm nhận dạng như c lông hoặc 4 chân. Theo cách tương tự máy tính c thể thực hiện phân loại hình ảnh bằng cách tìm kiếm các đặc trưng cấp thấp như cạnh và đường cong sau đ xây dựng các khái niệm trừu tượng hơn thông qua một loạt các lớp tích chập. Đây là một tổng quan chung về những gì một CNN làm.

2.6.2. Cấu trúc của mạng nơ rơn tích chập

Tất cả các mô hình CNN đều theo một kiến trúc tương tự. Để đạt được tính n ng mà chúng ta đã đề cập mạng CNN chuyển đổi x l hình ảnh thông qua một số lớp như trong hình 2.25.

Hình 2.25. Cấu trúc của mạng CNN nhiều lớp

(http: enews.agu.edu.vn index.php?option=com_content&view=article&id=18577&Itemid=128)

Trong đ :

Lớp tích chập (Convolutional Layer): được d ng để phát hiện các đặc trưng ảnh. Lớp phi tuyến tính (Non-Linearity Layer): tính phi tuyến cho hệ thống.

Lớp tổng hợp (Pooling-lấy m u xuống): để giảm thiểu số lượng trọng số và kiểm soát vượt lố (overfiting).

Lớp làm phẳng (Flattening Layer): chuẩn bị dữ liêu cho mạng thần kinh nơ ron cổ điển.

Lớp kết nối đầy đủ (Fully-Connected Layer): mạng nơ ron tiêu chuẩn được d ng để phân loại.

2.6.3. Lớp tích chập (Convolutional Layer)

Trong hình 2.26 phía bên trái là đầu vào của lớp chập ví dụ hình ảnh đầu vào. Bên phải là bộ lọc tích chập (convolution filter) c n được gọi là kernel hay mặt nạ tích chập chúng ta sẽ s dụng các thuật ngữ này thay thế cho nhau. Đây được gọi là tích chập 3x3 do hình dạng của bộ lọc. Khối xây dựng chính của CNN là lớp chập. Tích chập là một phép toán để hợp nhất hai bộ thông tin lại với nhau. Trong trường hợp này tích chập được áp dụng trên dữ liệu ngõ vào bằng bộ lọc tích chập để tạo ra một bản đồ đặc trưng như trong Hình 2.27. và Hình 2.28.

Hình 2.26. Ngõ vào và mặt nạ của CNN. (a) Ngõ vào 7x7 (b) Bộ lọc tích chập 3x3

Hình 2.27. Phép nhân tích chập của CNN

Hình 2.28. Kết quả của phép tích chập. (a) Bức ảnh ngõ vào (b) Feature map của ảnh sau khi tích chập

Công thức toán học của phép tích chập được biểu diễn trong công thức (2.3)

2 5

h כ

Trong đ : I là ngõ vào input

Chúng ta thực hiện thao tác tích chập bằng cách trượt bộ lọc này qua bức ảnh ngõ vào. Tại m i vị trí chúng tôi thực hiện phép nhân ma trận phần t và tính tổng kết quả Tổng này đi vào bản đồ đặc điểm (feature map). V ng màu đỏ nơi hoạt động tích chập diễn ra được gọi là trường tiếp nhận (Hình 2.27.). Do kích thước của bộ lọc là 3x3 nên trường tiếp nhận c ng là 3x3. Một vấn đề quan trọng trước khi chúng ta hình dung phép tích chập là gì. Chúng ta thực hiện nhiều phép nhân tích chập trên một ngõ vào m i ngõ vào s dụng một bộ lọc khác nhau và d n đến một bản đồ đặc điểm riêng biệt. Sau đ chúng ta xếp tất cả các bản đồ tính n ng này lại với nhau và điều đ tr thành ngõ ra cuối

c ng của lớp tích chập. Hay n i cách khác chiều sâu (depth) của ngõ ra bằng với số bộ lọc (fillter) và bằng với số bản đồ đặc điểm (feature map).

Trong Hình 2.29 nếu chúng ta s dụng 10 bộ lọc khác nhau chúng ta sẽ c 10 bản đồ đặc trưng c kích thước 32x32x1 và xếp chúng dọc theo chiều sâu sẽ cho chúng ta đầu ra cuối c ng của lớp chập. Thể tích của ngõ ra lớp chập 32x32x10 được hiện thị dưới dạng hộp lớn màu xanh phía bên phải. Lưu rằng chiều cao và rộng của bản đồ đặc điểm không thay đổi và v n là 32. Đ là do phần đệm (padding) mà chúng tôi sẽ giải thích phần sau. Trong hình 2.30. chúng ta c thể thấy được 2 bản đồ đặc điểm được xếp chồng lên nhau theo chiều sâu. Phép tích chập được thực hiện độc lập và kết quả là các bản đồ đặc điểm là rời rạc.

Hình 2.29. Thực hiện phép nhân tích chập ở ngõ vào

Hình 2.30. Phép tích chập cho ra 2 feature map ở 2 lớp độc lập 2.6.4. Phần đệm và mức trượt (Padding and Stride)

Sải bước (Stride) ch định mức độ chúng ta di chuyển bộ lọc tích chập m i bước Theo mặc định giá trị stride bằng 1. Chúng ta c thể t ng stride lên lớn hơn nếu chúng ta

muốn ít sự chồng chéo giữa các trường tiếp nhận. Điều này làm cho bản đồ đặc điểm nhỏ hơn do chúng ta đã bỏ qua các vị trí tiềm n ng (potential locations) trên ảnh. Theo hình 2.31. ta thấy bản đồ đặc trưng đã nhỏ hơn nếu ta chọn mức trượt (stride) bằng 2.

Hình 2.31. Kết quả của fearture map khi trượt mặt nạ 3x3 với mức trượt bằng 2 (a) Ảnh ngõ vào 7x7. (b) Bản đồ đặc điểm 3x3

Chúng ta thấy rằng kích thước của bản đồ đặc điểm nhỏ hơn đầu vào b i vì bộ lọc tích chập cần được chứa bên trong ngõ vào. Hình 2.32. cho thấy rằng nếu chúng ta muốn duy trì c ng một kích thước chúng ta c thể s dụng phần đệm (Padding) để bao quanh đầu ngõ vào bằng các số 0. Lúc trượt vào thì kích thước của feature map sẽ không đổi.

Hình 2.32. Thêm phần đệm 0 vào ngõ vào input

2.6.5. Lớp kích hoạt phi tuyến tính (Non-linearity Layers)

Mạng thần kinh của chúng ta sẽ hoạt động giống như một nhận thức duy nhất b i vì tổng của tất cả các lớp v n sẽ là một hàm tuyến tính c ngh a là đầu ra c thể được tính là sự kết hợp tuyến tính của các đầu ra. Sau m i lớp chập chúng ta thường c một lớp

phi tuyến tính. Lớp này c n được gọi là lớp kích hoạt vì chúng tôi s dụng một trong các chức n ng kích hoạt. Do nếu không c lớp kích hoạt (ReLU Sigmoid…) thì mạng đơn giản ch là kết hợp của các hàm tuyến tính như đã n i trên. Khi đ hàm hợp của nhiều hàm tuyến tính v n là hàm tuyến tính. Điều này khiến cho mạng chẳng khác gì một phép biến đổi tuyến tính cả. Trong khi đ ánh xạ giữa đầu vào tới đầu ra luôn là phi tuyến. T m lại cần d ng activation layer để c được một ánh xạ phi tuyến.

Trước đây các hàm phi tuyến như sigmoid và tan đã được s dụng nhưng h a ra hàm cho kết quả tốt nhất khi n i đến tốc độ huấn luyện của mạng thần kinh là hàm ch nh lưu (Rectifier function). Vì vậy lớp này thường được gọi là lớp ReLU n được d ng để loại bỏ tính tuyến tính bằng cách đặt các giá trị nhỏ hơn 0 thì sẽ bằng 0. Hàm ReLU được diễn tả là f(x) = max(0 x). Hình 2.33. cho thấy ứng dụng của n trong một Feature map. Trên hình ảnh thứ 2 của bản đồ đặc điểm các giá trị màu đen là giá trị âm và sau khi áp dụng chức của hàm ReLU các giá trị màu bị x a khỏi tấm ảnh.

Hình 2.33. Feature map sau khi qua lớp kích hoạt 2.6.6. Lớp tổng hợp (Pooling Layers)

Sau khi tích chập chúng ta cần thường thực hiện gộp để giảm kích thước. Điều này cho phép chúng tôi giảm số lượng tham số vừa rút ng n thời gian huấn luyện vừa chống vượt lố (overfiting). Lớp Pooling làm việc độc lập với từng Feature map giảm độ dài và độ rộng nhưng v n giữ nguyên độ sâu. Lớp Pooling phổ biến nhất là Max pooling tức là ch lấy giá trị lớn nhất trong c a sổ gộp. Trái với lớp tích chập lớp Pooling không hề c tham số. N trượt 1 c a số gộp qua đầu vào của n và ch lấy giá trị

Một phần của tài liệu Lập trình thi công và phát triển robot nhện iot (internet of thing) (Trang 34)

Tải bản đầy đủ (DOCX)

(65 trang)
w