[ML] Bài 6. Bình minh của mạng nơ-ron nhân tạo – Cấu Trúc Perceptron

Mạng nơ-ron nhân tạo (Artificial Neural Network – ANN) là một mô hình tính toán được lấy cảm hứng từ cấu trúc và chức năng của hệ thần kinh, đặc biệt là não bộ con người. ANN gồm nhiều đơn vị xử lý đơn giản (gọi là nơ-ron) được kết nối với nhau, có khả năng học hỏi từ dữ liệu và cải thiện hiệu suất theo thời gian. Mạng nơ-ron nhân tạo được sử dụng rộng rãi trong nhiều lĩnh vực như nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, dự đoán chuỗi thời gian và nhiều ứng dụng khác trong lĩnh vực trí tuệ nhân tạo.

ANN bao gồm nhiều loại kiến trúc và mô hình khác nhau, mà trong nội dung bài viết này tôi sẽ chỉ tập trung giải thích về hai dạng đơn giản, là nền tảng đầu tiên của ANN: Perceptron và Perceptron đa lớp (Multilayer Perceptron – MLP).

Hình 1. Sơ sánh giữa nơ-ron sinh học so với nơ-ron nhân tạo: (a) một nơ-ron sinh học; (b) một nơ-ron nhân tạo – Perceptron; (c) mạng nơ-ron sinh học; và (d) Mạng Perception Đa lớp – MLP  (Nguồn: Suzuki K., 2013).

1. Bình minh của mạng nơ-ron nhân tạo

            Năm 1854, George Boole viết cuốn sách “An Investigation of the Laws of Thoughts, On Which Are Founded the Mathematical Theory of Logic and Probabilities” đặt nền móng cho đại số Boolean – một hệ thống toán học quan trọng trong việc biểu diễn và thao tác các phép toán logic. Những phân tích về biểu thức logic trong công trình này không chỉ trở thành nền tảng trung tâm cho máy tính kỹ thuật số mà còn đóng vai trò then chốt trong sự phát triển của thiết kế mạch số và khoa học máy tính.

Sự phát triển của logic và máy tính tiếp tục với những đóng góp quan trọng:

  • 1936: Alan Turing giới thiệu khái niệm “Turing Machine”, một mô hình toán học cho máy tính, đặt nền móng cho lý thuyết tính toán.
  • 1945: John von Neumann đề xuất kiến trúc máy tính được lưu trữ chương trình, tạo cơ sở cho các máy tính hiện đại.
  • 1950-1960: Các ngôn ngữ lập trình cấp cao như FORTRAN, COBOL, và LISP được phát triển cho phép lập trình viên viết mã phức tạp hơn.

Đầu thế kỷ 20, khi máy tính còn chưa phát triển và việc lưu trữ dữ liệu quá đắt đỏ so với tiêu chuẩn hiện nay thì phương pháp tiếp cận logic là một cách hiệu quả để giải quyết vấn đề. Mỗi vấn đề sẽ được các lập trình viên giải quyết bằng cách viết một chương trình khác nhau, và vấn đề càng lớn, chương trình phần mềm đó càng lớn. Ví dụ một chương trình máy tính “Sắp xếp một danh sách các phần tử” sẽ có phần nhập liệu để đưa vào bộ nhớ máy tính một danh sách các phần tử, tiến hành sắp xếp bằng cách đổi chỗ các phần tử trong danh sách ban đầu khi một điều kiện nào đó được thỏa mãn, từ đó đưa ra đầu ra là một mảng dữ liệu mới có trật tự tăng dần hoặc giảm dần. Hay một chương trình máy tính “Quản lý sinh viên” cho phép người dùng đăng nhập, đọc dữ liệu đã được lưu trữ và tiến hành các thao tác thêm, sửa, xóa dữ liệu theo nhu cầu của người dùng.

           Nhìn chung để giải quyết vấn đề dựa vào logic thì bài toán phải được định nghĩa cụ thể, các điều kiện, quy tắc phải được lập trình viên đưa vào một cách tường minh. Phương pháp này đòi hỏi lập trình viên phải chỉ định chính xác từng bước để giải quyết vấn đề. Tuy nhiên, theo thời gian các bài toán ngày càng trở nên phức tạp khiến yêu cầu về sự tường minh đó cũng trở nên khó khăn hơn. Thêm vào đó, ngày nay năng lực của máy tính và dữ liệu lớn (Big Data) trở nên vô cùng dồi dào. Sự phát triển này dẫn đến sự chuyển đổi từ phương pháp lập trình truyền thống sang các phương pháp học máy – một phương pháp học từ dữ liệu. Thay vì phải phát triển các chương trình máy tính riêng biệt cho từng vấn đề cụ thể, chúng ta có thể sử dụng các thuật toán học tập từ dữ liệu để tạo ra các mô hình có khả năng giải quyết nhiều loại vấn đề khác nhau một cách linh hoạt và hiệu quả.


Hình 2. Mô hình mạng Perception được đề xuất bởi Rosenblatt năm 1957 (Hình minh họa nguồn: javatpoint.com)

Bộ não con người, với khả năng nhận dạng mẫu mạnh mẽ, đã trở thành nguồn cảm hứng cho các nhà nghiên cứu trí tuệ nhân tạo. Những hiểu biết về cơ chế hoạt động của não bộ, như công trình của Alan Hodgkin, Andrew Huxley về truyền tín hiệu thần kinh, và Bernard Katz về sự chuyển đổi tín hiệu tại các khớp thần kinh, đã góp phần quan trọng trong việc phát triển mạng nơ-ron nhân tạo.

Sự tương đồng giữa mạng nơ-ron nhân tạo và não bộ con người bao gồm:

  • Cấu trúc kết nối: Cả hai đều sử dụng mạng lưới các đơn vị xử lý (nơ-ron) kết nối với nhau.
  • Học thích nghi: Cả hai đều có khả năng học và thay đổi dựa trên kinh nghiệm.
  • Xử lý song song: Thông tin được xử lý đồng thời bởi nhiều đơn vị.

Một bước ngoặt quan trọng đến từ Frank Rosenblatt tại Đại học Cornell vào năm 1957. Ông đã phát minh ra “Perceptron”, một mạng đơn giản bắt chước cấu trúc hệ thống thị giác của con người để nhận dạng mẫu tự động. Đây được coi là tiền thân của các mạng nơ-ron nhân tạo hiện đại, mở ra một kỷ nguyên mới trong lĩnh vực trí tuệ nhân tạo và học máy.

Từ Perceptron, mạng nơ-ron nhân tạo đã phát triển qua nhiều giai đoạn:

  • Mạng Perceptron đa lớp (MLP): Giải quyết hạn chế của Perceptron đơn lớp.
  • Mạng nơ-ron tích chập (CNN): Đột phá trong xử lý hình ảnh.
  • Mạng nơ-ron hồi quy (RNN) và LSTM: Hiệu quả trong xử lý dữ liệu chuỗi.
  • Transformer: Cách mạng hóa xử lý ngôn ngữ tự nhiên.

2. Cấu trúc mạng Perceptron

Perceptron là một trong những mô hình cơ bản nhất trong lĩnh vực học máy, nhưng chính sự đơn giản đó đã giúp nó trở thành nền tảng quan trọng để hiểu các khái niệm phức tạp hơn trong mạng nơ-ron và trí tuệ nhân tạo.

Perceptron là mạng mô phỏng lại mạng lưới thần kinh một nơ-ron. Perceptron có một tầng đầu vào và một tập hợp các kết nối giữa những đơn vị đầu vào với đơn vị đầu ra. Các đầu vào được nhân với trọng số tương ứng, sau đó các giá trị này được cộng lại. Tổng này sau đó được đưa qua một hàm kích hoạt, thường là một hàm bậc (step function), để quyết định đầu ra.

Công thức toán học cơ bản của Perceptron:

y=f(w1x1+w2x2+...+wnxn)y = f(w_1x_1 + w_2x_2 + … + w_nx_n)

Trong đó:

  • w1,w2,...,wn w_1, w_2, …, w_n  là trọng số.
  • x1,x2,...,xnx_1, x_2, …, x_n là các giá trị đầu vào.
  • ff   là hàm kích hoạt, ví dụ như hàm bậc: f(x)={1neˆˊx00neˆˊx<0f(x) = \begin{cases} 1 & \text{nếu } x \geq 0 \\ 0 & \text{nếu } x < 0 \end{casHàm kích hoạt này đảm bảo rằng Perceptron sẽ đưa ra kết quả nhị phân, chẳng hạn như 0 hoặc 1, làm cho nó có thể hoạt động như một cổng logic.

Perceptron vs. Hồi quy Logistic

Hình 3. Sơ sánh giữa Perception và Hồi quy Logistic.

Dưới đây là bảng so sánh giữa mạng Perceptron và hồi quy Logistic:

Perceptron Hồi quy Logistic
Cấu trúc mạng
Sử dụng hàm kích hoạt bậc (step function) để phân loại nhị phân. Sử dụng hàm sigmoid để tính xác suất và phân loại.
Khả năng xử lý dữ liệu phi tuyến Chỉ xử lý được các bộ dữ liệu tuyến tính phân tách. Xử lý tốt hơn với dữ liệu gần như tuyến tính, nhưng vẫn gặp khó khăn với dữ liệu phi tuyến.
Phương pháp học và tối ưu hóa Điều chỉnh trọng số dựa trên lỗi phân loại. Sử dụng thuật toán gradient descent để tối ưu hóa hàm lỗi (entropy chéo).
Khả năng dự đoán xác suất Không đưa ra xác suất, chỉ dự đoán 0 hoặc 1. Cung cấp dự đoán xác suất, cho biết khả năng thuộc về một lớp cụ thể.
Khả năng hội tụ và độ ổn định Có thể không hội tụ nếu dữ liệu không tuyến tính phân tách. Hội tụ ngay cả khi dữ liệu không hoàn toàn tuyến tính phân tách, ổn định hơn.
Ứng dụng Phù hợp cho các bài toán đơn giản với dữ liệu tuyến tính. Phù hợp cho các bài toán phân loại nhị phân yêu cầu dự đoán xác suất, dữ liệu phức tạp hơn.

3. Quá Trình Huấn Luyện Perceptron

Trong công thức cơ bản của mạng Perceptron, trọng số là thước đo ảnh hưởng của mỗi đầu vào đối với quyết định cuối cùng của đơn vị đầu ra. Nhưng làm thế nào chúng ta có thể tìm thấy một tập hợp các trọng số có thể phân loại chính xác đầu vào?

Đối với trường hợp đặc biệt của hai đầu vào, có thẻ vẽ các đầu vào trên biểu đồ hai chiều. Mỗi đầu vào là một điểm trong biểu đồ và hai trọng số trong mạng tạo nên một đường thẳng. Mục đích của việc học là di chuyển đường thẳng đó sao cho nó tách biệt hoàn toàn các ví dụ âm và dương. Đối với ba đầu vào, không gian của các đầu vào là ba chiều, và Perceptron chỉ định một mặt phẳng phân tách các ví dụ huấn luyện âm và dương. Nguyên tắc tương tự được giữ trong trường hợp tổng quát nhiều chiều.

Vẻ đẹp của thuật toán học Perceptron là nó đảm bảo tìm thấy một tập hợp các trọng số một cách tự động nếu tập hợp các trọng số đó tồn tại và nếu các đủ các ví dụ. Rosenblatt đã chứng minh định lý hội tụ Perceptron vào năm 1957. Việc “học tập” này diễn ra dần dần sau mỗi ví dụ trong tập dữ liệu huấn luyện và đầu ra được so sánh với câu trả lời đúng. Nếu câu trả lời là chính xác, không có thay đổi nào được thực hiện với các trọng số. Nhưng nếu câu trả lời của nó không đúng (kết quả dự đoán là 1 nhưng lẽ ra phải là 0, hoặc ngược lại), thì sau đó các trọng số sẽ được thay đổi từng chút một để lần sau với cùng một đầu vào, nó sẽ tiến gần hơn tới câu trả lời đúng.

Perceptron được huấn luyện bằng cách điều chỉnh các trọng số dựa trên lỗi giữa giá trị dự đoán và giá trị thực tế. Quá trình huấn luyện thường sử dụng một thuật toán gọi là “Thuật toán điều chỉnh trọng số” hoặc thuật toán lan truyền ngược (backpropagation) trong các mạng nơ-ron sâu.

Công thức cập nhật trọng số của một Perceptron đơn giản là:

wi=wi+Δwiw_i = w_i + \Delta w_

Trong đó:

  • wiw_i là trọng số cũ.
  • Δwi\Delta w_i là sự thay đổi trọng số, được tính bằng cách sử dụng sai số dự đoán và tốc độ học (learning rate).

Δwi=η(yy^)xi

    • η\eta là tốc độ học.
    • yy là giá trị đầu ra thực tế.
    • y^\hat{y} là giá trị dự đoán từ perceptron thường là giá trị nhị phân: 0 hoặc 1)
    • xix_i là giá trị đầu vào thứ ii.

Cuối cùng, nếu có một giải pháp khả thi, trọng số sẽ ngừng thay đổi, có nghĩa là Perceptron đã phân loại chính xác tất cả các ví dụ trong tập huấn luyện. Tuy nhiên, cũng có trường hợp rơi vào tình huống mà ta gọi là “Mô hình quá khớp” (overfitting) nghĩa là mạng chỉ đơn giản ghi nhớ các ví dụ cụ thể đã biết trong tập huấn luyện, mà không có khả năng khái quát hóa cho những cái mới. Khái quát hóa là một khái niệm quan trọng vì trong thực thế cuộc sống, chúng ta hiếm khi thấy cùng một vật thể theo cùng một cách, hoặc gặp phải 1 tình huống y nguyên như trước đây đã gặp. Nhưng nếu chúng ta có thể khái quát từ kinh nghiệm trước đó sang các tình huống mới, thì chúng ta có thể xử lý một loạt các vấn đề trong thế giới thực.

Để tránh rơi vào tình huống overfitting trên, điều quan trọng là phải có một tập dữ liệu khác, được gọi là tập kiểm tra, không được sử dụng để huấn luyện mạng, mà chỉ được dùng để đánh giá khả năng khái quát hóa với các ví dụ mới chưa được biết của mô hình mạng sau khi được huấn luyện.


4. Mạng Perceptron Đa lớp – MLP

Mặc dù Perceptron đơn giản là một mô hình nền tảng quan trọng, nó có một số hạn chế. Một trong những hạn chế lớn nhất là nó chỉ có thể phân loại các bộ dữ liệu tuyến tính phân tách được. Điều này có nghĩa là nếu không thể phân tách các lớp bằng một đường thẳng (hoặc mặt phẳng trong không gian đa chiều), perceptron sẽ không thể học được. Để khắc phục điều này, chúng ta cần sử dụng các mô hình phức tạp hơn, chẳng hạn như Mạng Perceptron đa lớp (Multilayer Perceptron – MLP).

Để vượt qua hạn chế của perceptron trong việc phân loại các bộ dữ liệu không tuyến tính, mạng nơ-ron đa lớp (MLP) đã được phát triển. MLP gồm nhiều lớp perceptron kết nối với nhau: một lớp đầu vào, một hoặc nhiều lớp ẩn, và một lớp đầu ra.

Mỗi lớp trong MLP có vai trò xử lý thông tin một cách phức tạp hơn, cho phép mạng học các mối quan hệ phi tuyến tính giữa đầu vào và đầu ra. Thuật toán lan truyền ngược (backpropagation) là chìa khóa để huấn luyện các mạng nơ-ron này. Nó hoạt động bằng cách truyền tín hiệu lỗi từ đầu ra trở lại qua các lớp, cập nhật các trọng số một cách hiệu quả.

Hình 4. Mô hình mạng Perception Đa lớp.

Lan Truyền Ngược (Backpropagation)

Thuật toán lan truyền ngược được sử dụng để tính toán sự chênh lệch giữa giá trị đầu ra dự đoán và giá trị đầu ra thực tế trong MLP. Sau đó, thuật toán điều chỉnh các trọng số của từng perceptron trong mạng để giảm sai số. Điều này giúp mạng có thể học được các hàm phi tuyến tính và trở nên mạnh mẽ hơn trong việc phân loại và dự đoán.

  • 1. Khởi tạo trọng số WijkW_{ij}^k: Trong đó, là nơ-ron từ lớp trước, là nơ-ron từ lớp tiếp theo, và là chỉ số lớp.
  • 2. Với mỗi điểm dữ liệu xix_i     trong tập dữ liệuD={xi,yi}D = \{x_i, y_i\}:
    • a. Truyền xix_i q   qua mạng nơ-ron (quá trình forward pass).
    • b. Tính toán hàm lỗi L(yi,yi^L(y_i, \hat{y_i})          giữa đầu ra dự đoán yi^\hat{y_i}  và giá trị thực yiy_i.
    • c. Sử dụng quy tắc chuỗi (chain rule) để tính tất cả các đạo hàm của hàm lỗi đối với trọng số.
    • d. Cập nhật trọng số từ cuối mạng về đầu mạng bằng công thức:
      (Wijk)new=(Wijk)oldηLWijk(W_{ij}^k)_{\text{new}} = (W_{ij}^k)_{\text{old}} – \eta \cdot \frac{\partial L}{\partial W_{ij}^k

      Trong đó, η   là tốc độ học (learning rate).

  • 3. Lặp lại bước 2 cho đến khi hội tụ, tức là khi (Wijk)new(Wijk)old(W_{ij}^k)_{\text{new}} \approx (W_{ij}^k)_{\text{old}

Ưu điểm của thuật toán lan truyền ngược:

  • Hiệu quả trong việc học các mối quan hệ phi tuyến tính phức tạp.
  • Khả năng tự động trích xuất đặc trưng từ dữ liệu thô.
  • Linh hoạt và có thể áp dụng cho nhiều loại kiến trúc mạng nơ-ron khác nhau.

Hạn chế:

  • Có thể bị mắc kẹt trong cực tiểu cục bộ.
  • Đòi hỏi lượng dữ liệu lớn và tính toán nhiều để huấn luyện hiệu quả.
  • Khó giải thích các quyết định của mô hình (black-box nature).

Thuật toán lan truyền ngược đã mở ra kỷ nguyên mới cho việc huấn luyện mạng nơ-ron đa lớp và là nền tảng cho sự phát triển của deep learning trong những năm gần đây.


Tổng kết: Perceptron và MLP đánh dấu những bước tiến quan trọng trong lĩnh vực trí tuệ nhân tạo, chuyển từ phương pháp lập trình logic sang phương pháp học từ dữ liệu. Mặc dù có những hạn chế nhất định, MLP vẫn là một công cụ mạnh mẽ trong học máy và là nền tảng cho nhiều phát triển tiên tiến trong deep learning. Sự phát triển của MLP không chỉ mở ra khả năng giải quyết các vấn đề phức tạp mà còn thúc đẩy sự tiến bộ trong nhiều lĩnh vực ứng dụng.

@Hong-Quan Do

Các bài trong cùng chủ đề:

Bài 1: Học AI bắt đầu từ đâu?

Bài 2: Giới thiệu về Học máy

Bài 3: Mô hình hồi quy tuyến tính

Bài 4.1: Phân loại với hồi quy Logistic

Bài 4.2: Hồi quy Logistic cho phân loại đa lớp và Ứng dụng phân loại cảm xúc văn bản

Bài 5.1. Một ứng dụng của học không giám sát

Bài 5.2. Thuật toán K-Means và Ứng dụng phân cụm khách hàng

Bài 6. Bình minh của mạng nơ-ron nhân tạo – Cấu Trúc Perceptron

5/5 - (1 bình chọn)
Comments: 96