Trí tuệ nhân tạo tính toán và ứng dụng trong ngành tài nguyên và môi trường – Mạng nơ ron nhân tạo
Bài số 1. Mạng nơ ron nhân tạo
TS Nguyễn Dư Khang
Tóm tắt:
Trí tuệ nhân tạo (TTNT) là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào. Trong cuộc cách mạng công nghiệp 4.0 hiện nay, trí tuệ nhân tạo được xem là cốt lõi để phát triển. Trí tuệ nhân tạo được chia thành hai trường phái tư duy: TTNT truyền thống và TTNH tính toán. Về vấn đề này, tác giả trình bày trong nhiều kỳ về một số phương pháp chính của TTNT tính toán như: mạng nơ ron nhân tạo (neural network), hệ mờ (Fuzzy system), cây quyết định (dicision tree),… Khác với các tài liệu liên quan khác, tác giả sẽ trình bày một cách dễ hiểu cho các độc giả mới làm quen với lĩnh vực này, các công thức tính toán sẽ được chứng minh cụ thể và cuối cùng đưa ra các thuật toán chi tiết để áp dụng vào từng trường hợp cụ thể, đặc biệt đối với một số lĩnh vực của ngành tài nguyên môi trường, trong đó có lĩnh vực đo đạc, bản đồ và viễn thám.
Từ khoá: Mạng nơ ron, nơ ron, khớp nối.
Sự phát triển của mạng nơ ron nhân tạo được lấy cảm hứng từ mạng nơ ron sinh học. Đó là ý tưởng xây dựng cấu trúc mạng và sử dụng các thuật toán theo nguyên tắc hoạt động của bộ não. Song, để đạt được sự tương tự tuyệt đối là không thể, kiến thức của chúng ta về bộ não còn giới hạn và ít có khả năng tìm thấy quy luật chính xác để điều khiển nó.
Trước hết, ta tìm hiểu khái niệm cơ bản về cơ chế hoạt động của mạng nơ ron sinh học. Tiếp theo, sẽ đề cập đến những khái niệm cơ bản về mạng nơ ron nhân tạo.
- Mạng nơ ron sinh học
Mạng nơ ron sinh học, mà bậc cao là hệ thần kinh của con người được cấu tạo bởi các yếu tố được gọi là tế bào (nơ ron) thần kinh có cấu trúc và chức năng hoạt động phức tạp đáng kinh ngạc. Khoảng 1011 nơ ron thần kinh tham gia vào gần 1015 kết nối truyền tải có độ dài đến hơn một mét. Mỗi nơ ron có nhiều đặc tính chung với các bộ phận của cơ thể, nhưng có khả năng hoàn toàn riêng của nó như: tiếp nhận, xử lý và truyền tín hiệu điện hóa theo các dây thần kinh và tạo thành một hệ thống thông tin liên lạc của bộ não.
Hình 1 cho thấy cấu trúc của một cặp tế bào thần kinh sinh học điển hình. Xung quanh cơ thể tế bào là các dây thần kinh trục, tiếp theo là các dây thần kinh nhánh mở rộng. Cặp tế bào thần kinh này được kết nối tại một điểm, gọi là khớp nối. Các tín hiệu đầu vào nhận được qua khớp nối, truyền vào cơ thể tế bào thần kinh. Ở đây, chúng được tổng hóa, ngoài ra, một số tín hiệu đầu vào có xu hướng kích thích tế bào thần kinh, một số khác ngăn chặn kích thích của nó.
Cơ thể tế bào
Nhánh
Dây trục
Khớp nối
Hình 1. Cấu trúc của một cặp tế bào thần kinh sinh học.
Khi tổng kích thích trong cơ thể tế bào thần kinh vượt quá một ngưỡng nhất định, tế bào thần kinh được kích thích, gửi tín hiệu dọc theo dây trục đến tế bào thần kinh khác. Trong mạng chức năng cơ bản này có nhiều biến chứng và các ngoại lệ, vì thế, hầu hết các mạng nơ ron nhân tạo chỉ mô hình hóa những thuộc tính đơn giản.
- Mạng nơ ron nhân tạo
Mạng nơ ron (neural network) – là một chuỗi các nơ ron được nối với nhau bằng các khớp nối. Mô hình tổng quát như hình 2, trong đó hình tròn là các nơ ron, đoạn thẳng là các khớp nối. Mạng nơ ron có khả năng không chỉ phân tích thông tin đầu vào, cho kết quả đầu ra, mà còn tái hiện những thông tin đã qua mạng từ bộ nhớ của mình. Nói cách khác, mạng nơ ron là một công cụ giải đoán bằng máy của bộ não con người.
Nơ ron (neuron) được mô phỏng như tính chất của tế bào thần kinh sinh học ở mức xấp xỉ đầu tiên. Nó là đơn vị tính toán, có chức năng thu nhận thông tin, thực hiện các phép tính đơn giản và chuyển thông tin đi tiếp.
Khớp nối (synapse) là sự kết nối giữa hai nơ ron. Khớp nối có một tham số là trọng số, nhờ nó mà thông tin đầu vào được thay đổi khi chuyển tiếp từ nơ ron này đến nơ ro khác.
Lớp vào Các lớp ẩn Lớp ra
x1
x2
.
.
.
xn
1
Hình 2. Mô hình tổng quát của mạng nơ ron.
Mạng nơ ron gồm các lớp: lớp vào thu nhận thông tin (màu xanh lục), các lớp ẩn xử lý trung gian thông tin (màu đỏ) và lớp ra xử lý thông tin đưa ra kết quả cuối cùng (màu xanh lam).
Các nơ ron trong mạng, tương ứng với các lớp có nơ ron vào, nơ ron ẩn và nơ ron ra. Trong phần lớn các mạng nơ ron được bổ sung nơ ron chuyển vị hay nơ ron bias (màu vàng) nhằm mục đích làm tăng tính khả năng tách biệt tín hiệu ra ở các lớp.
Đối với những mạng nơ ron đơn giản có thể không có các lớp ẩn hoặc/và không có các nơ ron chuyển vị.
Mỗi nơ ron có dữ liệu đầu vào (input data) và dữ liệu đầu ra (output data), đối với các nơ ron của lớp vào input = output, nghĩa là không thực hiện xử lý thông tin. Riêng nơ ron chuyển vị luôn luôn có tín hiệu đầu vào và đầu ra bằng 1 và chúng không có khớp nối đầu vào.
Cơ chế hoạt động của nơ ron trong mạng không có nơ ron chuyển vị mô tả ở hình 3. Ký hiệu tập hợp các tín hiệu đầu vào là véc tơ X = (x1, x2,…, xn)T, trong đó, n – là số tín hiệu đầu vào. Mỗi tín hiệu đầu vào xi có một trọng số là wi (i = 1 ÷ n). Ký hiệu véc tơ trọng số là W = (w1, w2,…, wn).
x1 x2 … xn | w1 w2 wn | Σ I F O |
Hình 3. Cơ chế hoạt động của nơ ron nhân tạo.
Tín hiệu đầu vào của nơ ron (trừ nơ ron vào và nơ ron chuyển vị) xác định theo công thức:
n
I = W.X = Σ xi wi . (1)
i=1
Tín hiệu đầu ra xác định theo công thức: O = F(I), (2)
trong đó, F – là hàm kích hoạt, bảo đảm sao cho đầu ra O của các nơ ron có giá trị trong khoảng [0, 1] hoặc [-1, 1].
Có rất nhiều dạng hàm kích hoạt, những dạng cơ bản nhất là hàm dạng bước (step), hàm dấu (sign), hàm logic (sigmoid) và hàm tang hyperbol (hyperbolic tangent).
Hàm dạng bước:
1 nếu x ≥ 0
F(x) = step(x) = (3)
0 nếu x < 0
Hàm dấu:
1 nếu x ≥ 0
F(x) = sign(x) = (4)
-1 nếu x < 0
Hàm sigmoid có dạng (hình 4, a):
F(x) = sigmoid(x) = 1/(1 + e-x), (5)
đây là hàm kích hoạt phổ biến nhất, có khoảng giá trị [0, 1].
Đạo hàm của hàm này có dạng: F’(x) = F(x).(1 – F(x)). (6)
Hàm tang hyperbol có dạng (hình 4, b):
F(x) = th(x) = (e2x – 1)/(e2x + 1), (7)
chỉ sử dụng khi các giá trị trong mạng nơ ron bao gồm cả số âm (-) và số dương (+). Hàm này có giá trị trong khoảng [-1, 1]. Nếu trong mạng nơ ron chỉ có số dương, không nên sử dụng hàm kích hoạt này, bởi vì sẽ làm yếu đi kết quả hoạt động của mạng.
Đạo hàm của hàm này có dạng: F’(x) = 1 – F(x)2. (8)
| O | I | O | I |
Hình 4. Các dạng hàm kích hoạt. a) Hàm sigmoid; b) Hàm tang hyperbol
Khi bổ sung nơ ron chuyển vị vào mạng, các nơ ron ẩn và nơ ron ra được có thêm khớp nối, nghĩa là thêm các tham số trọng số. Véc tơ đầu vào mở rộng có dạng: X’ = (x1, x2,…, xn, 1)T và véc tơ trọng số mở rộng: W’ = (w1, w2,…, wn, wn+1).
Khi đó, tín hiệu đầu vào của các nơ ron (trừ nơ ron vào và nơ ron chuyển vị) có dạng:
n
I = W’. X’ = Σ xi wi + wn+1. (9)
i=1
Từ công thức (9), thấy rằng, bổ sung nơ ron chuyển vị nhằm mục đích dịch chuyển đồ thị của hàm kích hoạt sang trái hoặc sang phải. Điều này cho phép làm tăng tính khả tách của các tín hiệu đầu vào và đầu ra.
Như vậy, mạng nơ ron chỉ hoạt động khi có ma trận trọng số của các khớp nối (mỗi lớp có một véc tơ trọng số đầu vào và một véc tơ trọng số đầu ra). Để xác định ma trận trọng số cần phải huấn luyện mạng.
Huấn luyện mạng là quá trình tạo ra một chuỗi các dữ liệu, dùng để vận hành mạng nơ ron. Mạng được huấn luyện để một tập hợp dữ liệu đầu vào, qua quá trình xử lý đưa ra được các kết quả như mong muốn ở đầu ra. Tập hợp các dữ liệu đầu vào, cũng như các kết quả đầu ra được biểu diễn dưới dạng véc tơ. Huấn luyện được thực hiện bằng cách lần lượt đưa véc tơ đầu vào và đồng thời điều chỉnh trọng số tương ứng với mỗi lần xử lý theo một quy trình cụ thể. Trong quá trình huấn luyện, các véc tơ trọng số dần dần được điều chỉnh sao cho mỗi véc tơ đầu vào tạo ra được một véc tơ đầu ra như mong muốn.
Huấn luyện mạng được chia thành huấn luyện có giám sát (học có thầy) và huấn luyện không giám sát (học không thầy).
Huấn luyện có giám sát thực hiện khi đối với mỗi véc tơ đầu vào tồn tại véc tơ đầu ra, đại diện được cho mục tiêu như mong muốn và chúng được tạo thành một cặp. Thường trong mạng được huấn luyện cho một số cặp như vậy. Giả sử từ véc tơ đầu vào, tính toán véc tơ đầu ra của mạng, so sánh với véc tơ đầu ra mong muốn để xác định sai số. Nếu sai số vượt quá giới hạn cho phép cần huấn luyện lại mạng thông qua điều chỉnh các trọng số của nó theo một thuật toán bảo đảm sai số nhỏ nhất. Quá trình được lặp lại đến khi sai số trong hạn sai cho phép hoặc số vòng lặp đạt giới hạn.
Vòng lặp hay kỷ nguyên (epoch) – là phép đếm, được tăng lên mỗi lần khi mạng nơ ron được một lần huấn luyện.
Sai số – là đại lượng phản ánh độ sai lệch của kết quả thu được và kết quả mong đợi. Nó được xác định sau mỗi vòng lặp và cần phải có giá trị giảm dần. Nếu điều này không xảy ra, có nghĩa là đã có sự nhầm lẫn trong quá trình huấn luyện mạng. Sai số có thể tính theo nhiều cách, trong đó có ba dạng chính thường được sử dụng là:
- Sai số bình phương trung bình (Mean Squared Error – MSE):
m
MSE = Σ (yi – Oi)2 /m, (10)
i =1
trong đó, Oi và yi – là kết quả tính toán và kết quả mong đợi của nơ ron i lớp ra; m – là số nơ ron của lớp ra.
- Sai số trung phương (Root MSE):
Root MSE = √MSE . (11)
- Sai số Arctan bình phương trung bình:
m
Arctan = Σ arctan2(yi – Oi)/m. (12)
i =1
Về nguyên lý, tính toán sai số trong tất cả các trường hợp là như nhau, song, thường sử dụng hơn cả là sai số MSE, bởi vì nó giữ được sự cân bằng trong tính toán. Sau mỗi vòng lặp, xác định sai số, nếu sai số lớn hơn giới hạn cho phép, quá trình huấn luyện mạng được lặp lại đến khi thỏa mãn yêu cầu.
Huấn luyện không giám sát thực hiện khi mỗi véc tơ đầu vào cho một véc tơ đầu ra, không cần so sánh với mục tiêu xác định trước, do vậy, véc tơ đầu vào là dữ liệu duy nhất để huấn luyện mạng. Quá trình huấn luyện bằng cách điều chỉnh các trọng số của mạng sao cho véc tơ đầu ra phù hợp, tức là đối với các véc tơ đầu vào có đủ độ tương đồng sẽ cho cùng một kết quả đầu ra. Như vậy, trên cơ sở được huấn luyện, mạng nơ ron sẽ thực hiện được nhiệm vụ nhóm các véc tơ đầu vào thành các lớp.
- Chức năng của mạng nơ ron nhân tạo
Mạng nơ ron được sử dụng để giải quyết các vấn đề phức tạp đòi hỏi tính toán, phân tích giống như những tính toán mà bộ não con người thực hiện. Các chức năng cơ bản của mạng nơ ron nhân tạo được ứng dụng rộng rãi trong nhiều lĩnh vực, đối với ngành tài nguyên và môi trường có thể là:
Phân loại – là phân chia các dữ liệu theo tham số. Ví dụ, phân loại sử dụng đất đai, phân loại rừng, phân loại các khu vực có tiềm năng về tài nguyên khoáng sản, phân loại mức độ ô nhiễm môi trường, hạn hán, xâm nhập mặn,… Công việc này có thể thực hiện bởi một mạng nơ ron nhân tạo, phân tích thông tin về dữ liệu đã có, về hiện trạng, hiện tượng trên bề mặt khu vực nghiên cứu,…
Dự báo – là khả năng dự báo bước tiếp theo. Ví dụ, dự báo thời tiết theo các tín hiệu như thời gian trong năm, nhiệt độ, độ ẩm, tốc độ gió, độ cao và độ dày của mây và các thông tin khác; dự báo sạt lở đường bở (biển, sông,…) theo các tín hiệu như dòng chảy, độ cao sóng, cơ lý đất đá và các thông tin khác; dự báo sạt lở, lũ quét,… trong lục địa; dự báo trong nông nghiệp (tăng trưởng cây trồng, sâu bệnh, sản lượng,…); dự báo lưu lượng nước của các sông, hồ; v.v.
Nhận dạng – hiện nay, được ứng dụng rộng rãi nhất của mạng nơ ron nhân tạo. Ví dụ, nhận dạng các khoanh vi sinh thái đặc trưng dựa vào hình dáng, kích thước, vị trí tương hỗ với môi trường xung quanh và các thông tin khác. Nhận dạng bằng nơ ron nhân tạo được sử dụng nhiều nhất trong các lĩnh vực của trí tuệ nhân tạo truyền thống, như nhận dạng chữ viết, hình ảnh, giọng nói, v.v.
Trong các bài báo tiếp theo, tác giả sẽ giới thiệu về các hàm số và tham số cốt lõi của mạng nơ ron nhân tạo. Sau đó sẽ giới thiệu chi tiết các thuật toán huấn luyện mạng nơ ron nhân tạo cùng với các ứng dụng cụ thể trong một số lĩnh vực của ngành tài nguyên và môi trường.
