Mạng nơ-ron (neural network) là gì? Chúng hoạt động như thế nào? | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Mạng nơ-ron (neural network) là gì? Chúng hoạt động như thế nào?

Chia sẻ kiến thức 15/02/2022

Nếu bạn theo dõi tin tức công nghệ, chắc hẳn bạn đã bắt gặp khái niệm Mạng nơ-ron (neural network). Ví dụ, vào năm 2016, mạng nơ-ron AlphaGo của Google đã đánh bại một trong những kỳ thủ cờ vây chuyên nghiệp giỏi nhất trên thế giới. Nhưng chính xác thì mạng nơ-ron là gì? Nó hoạt động như thế nào?

1. Máy tính như một bộ não

Các nhà khoa học thần kinh hiện đại thường  nói về bộ não như một loại máy tính. Mạng nơ-ron nhằm mục đích làm điều ngược lại: xây dựng một máy tính hoạt động giống như một bộ não.

Tất nhiên, chúng ta mới chỉ hiểu sơ qua về các chức năng cực kỳ phức tạp của bộ não, nhưng bằng cách tạo ra một mô phỏng đơn giản về cách bộ não xử lý dữ liệu, chúng ta có thể xây dựng một loại máy tính hoạt động rất khác so với một loại máy tính tiêu chuẩn.

Bộ xử lý máy tính xử lý dữ liệu theo thứ tự (serial processing). Chúng thực hiện nhiều thao tác trên một tập dữ liệu, mỗi lần một thao tác. Xử lý song song (“xử lý nhiều luồng cùng một lúc”, hay còn gọi là parallel processing) làm tăng đáng kể tốc độ của máy tính bằng cách sử dụng nhiều bộ xử lý nối tiếp.

Trong hình ảnh bên dưới, ví dụ xử lý song song yêu cầu năm bộ xử lý khác nhau:

Mạng nơ-ron nhân tạo (được gọi để phân biệt với mạng nơ-ron thực tế trong não) có cấu trúc khác về cơ bản. Nó có tính kết nối cao. Điều này cho phép nó xử lý dữ liệu rất nhanh, học hỏi từ dữ liệu đó và cập nhật cấu trúc bên trong của chính nó để cải thiện hiệu suất.

Mức độ kết nối cao đã tạo ra một số tác động đáng kinh ngạc. Ví dụ, mạng nơ-ron rất tốt trong việc nhận ra các mẫu (pattern) rất khó nhận ra trong dữ liệu.

2. Khả năng học hỏi

Khả năng học hỏi của mạng nơ-ron là sức mạnh lớn nhất của nó. Với kiến ​​trúc máy tính tiêu chuẩn, một lập trình viên phải phát triển một thuật toán cho máy tính biết phải làm gì với dữ liệu đến để đảm bảo rằng máy tính đưa ra phản hồi chính xác.

Phản hồi đầu vào-đầu ra có thể đơn giản như “khi nhấn phím A, hiển thị ‘A’ trên màn hình” hoặc phức tạp như thực hiện các thống kê phức tạp. Mạng nơ-ron không cần loại thuật toán đó. Thông qua các cơ chế học tập, về cơ bản nó có thể thiết kế các thuật toán của riêng mình để đảm bảo chúng hoạt động chính xác.

Điều quan trọng cần lưu ý là bởi vì mạng nơ-ron là các chương trình phần mềm được viết trên các máy sử dụng phần cứng xử lý nối tiếp (serial processing) tiêu chuẩn, công nghệ hiện tại vẫn còn đặt ra nhiều giới hạn. Trên thực tế, việc xây dựng phiên bản phần cứng của mạng nơ-ron hoàn toàn là một vấn đề hoàn toàn khác.

3. Từ tế bào thần kinh đến nút

Giờ đây chúng ta đã có một số hiểu biết cơ bản về cách mạng nơ-ron hoạt động, chúng ta có thể bắt đầu xem xét một số chi tiết cụ thể. Cấu trúc cơ bản của mạng nơ-ron nhân tạo trông như sau:

Mỗi vòng tròn được gọi là một “nút” (node) và nó mô phỏng một nơ-ron duy nhất. Ở bên trái là các nút đầu vào (input), ở giữa là các nút ẩn (hidden) và bên phải là các nút đầu ra (output).

Về cơ bản, các nút đầu vào chấp nhận các giá trị đầu vào, có thể là số nhị phân 1 hoặc 0, một phần của giá trị màu RGB, trạng thái của quân cờ hoặc bất kỳ thứ gì khác. Các nút này đại diện cho thông tin chảy vào mạng.

Mỗi nút đầu vào được kết nối với một số nút ẩn (đôi khi với tất cả các nút ẩn, đôi khi với một tập hợp con). Các nút đầu vào lấy thông tin mà chúng được cung cấp và chuyển nó sang lớp ẩn.

Ví dụ: một nút đầu vào có thể gửi một tín hiệu nếu nó nhận được 1 và không hoạt động nếu nó nhận được 0. Mỗi nút ẩn có một ngưỡng: nếu tất cả các đầu vào của nó tổng hợp lại đạt đến một giá trị nhất định, nó sẽ kích hoạt.

>>> Xem thêm: Mạng nơ-ron mới nhất của OpenAI tạo ra hình ảnh từ mô tả bằng văn bản

4. Từ Synapse đến Connection

Mỗi kết nối (connection), tương đương với synapse thần kinh (nơi tiếp xúc giữa hai nơron, mà thông qua đó cho phép các nơron truyền đi thông tin qua lại lẫn nhau), cũng có một trọng số cụ thể, cho phép mạng tập trung nhiều hơn vào hoạt động của một nút cụ thể. Đây là một ví dụ:

Như bạn có thể thấy, trọng số của kết nối B cao hơn kết nối A và C. Giả sử nút ẩn 4 sẽ chỉ kích hoạt nếu nó nhận được tổng đầu vào là 2 hoặc lớn hơn. Điều đó có nghĩa là nếu 1 hoặc 3 tự kích hoạt thì 4 sẽ không được kích hoạt, nhưng 1 và 3 cùng nhau sẽ kích hoạt nút. Nút 2 cũng có thể tự kích hoạt nút thông qua kết nối B.

Hãy lấy thời tiết làm ví dụ thực tế. Giả sử bạn thiết kế một mạng nơ-ron đơn giản để xác định xem có nên cảnh báo bão mùa đông hay không.

Sử dụng các kết nối và trọng lượng ở trên, nút 4 chỉ có thể kích hoạt nếu nhiệt độ dưới 0 F và gió trên 30 MPH hoặc sẽ kích hoạt nếu có hơn 70% khả năng là tuyết. Nhiệt độ sẽ được đưa vào nút 1, gió đến nút 3 và khả năng tuyết rơi vào nút 2. Bây giờ nút 4 có thể tính đến tất cả những điều này khi xác định tín hiệu nào sẽ gửi đến lớp đầu ra.

5. Tốt hơn Logic đơn giản

Tất nhiên, chức năng này có thể đơn giản được thực hiện với các cổng logic AND/OR đơn giản. Nhưng các mạng nơ-ron phức tạp hơn, như mạng dưới đây, có khả năng thực hiện các hoạt động phức tạp hơn đáng kể.

Các nút của lớp đầu ra hoạt động theo cách tương tự như các nút của lớp ẩn: các nút đầu ra tính tổng đầu vào từ lớp ẩn và nếu chúng đạt đến một giá trị nhất định, các nút đầu ra sẽ kích hoạt và gửi các tín hiệu cụ thể. Vào cuối quá trình, lớp đầu ra sẽ gửi một tập hợp các tín hiệu cho biết kết quả của đầu vào.

Mặc dù mạng được hiển thị ở trên là đơn giản, nhưng mạng nơ-ron sâu có thể có nhiều lớp ẩn và hàng trăm nút.

6. Sửa lỗi

Quá trình này, cho đến nay, tương đối đơn giản. Nhưng nơi mạng lưới thần kinh thực sự tỏa sáng là trong học tập. Hầu hết các mạng nơ-ron sử dụng một quá trình được gọi là backpropagation (lan truyền ngược), quá trình này sẽ gửi tín hiệu ngược lại qua mạng.

Trước khi các nhà lập trình triển khai một mạng nơ-ron, nó sẽ trải một giai đoạn huấn luyện, trong đó nó nhận được một tập hợp các đầu vào với các kết quả đã biết. Ví dụ, một lập trình viên có thể dạy mạng nơ-ron nhận dạng hình ảnh. Đầu vào có thể là hình ảnh một chiếc ô tô và đầu ra chính xác sẽ là từ “ô tô”.

Lập trình viên cung cấp hình ảnh làm đầu vào và xem những gì xuất hiện từ các nút đầu ra. Nếu mạng phản hồi bằng “máy bay”, lập trình viên sẽ thông báo cho máy tính biết rằng đó là không chính xác.

Sau đó, mạng thực hiện các điều chỉnh đối với các kết nối của chính nó, thay đổi trọng số của các liên kết khác nhau giữa các nút. Hành động này được hướng dẫn bởi một thuật toán học tập (learning algorithm) cụ thể được thêm vào mạng. Mạng tiếp tục điều chỉnh trọng lượng kết nối cho đến khi nó cung cấp đầu ra chính xác.

Giải thích trên đã được đơn giản hóa, nhưng mạng nơ-ron có thể học các hoạt động phức tạp cao bằng cách sử dụng các nguyên tắc tương tự.

>>> Xem thêm: 6 lợi ích Trí tuệ nhân tạo (AI) mang đến cho ngành Xây dựng

7. Cải tiến liên tục

Ngay cả sau khi đào tạo, backpropagation vẫn tiếp tục – và đây là lúc các mạng nơ-ron trở nên thực sự tuyệt vời. Chúng tiếp tục học hỏi khi chúng được sử dụng, tích hợp thông tin mới và thực hiện các chỉnh sửa đối với trọng lượng của các kết nối khác nhau, ngày càng trở nên hiệu quả hơn trong nhiệm vụ của chúng.

Điều này có thể đơn giản như nhận dạng hình ảnh hoặc phức tạp như chơi cờ vây.

Bằng cách này, mạng nơ-ron luôn thay đổi và cải tiến. Và điều này có thể có những tác động đáng ngạc nhiên, dẫn đến các mạng ưu tiên những thứ mà một lập trình viên sẽ không nghĩ là ưu tiên.

Ngoài quy trình được nêu ở trên, được gọi là học có giám sát (supervised learning), còn có một phương pháp khác: học không giám sát (unsupervised learning).

Trong tình huống này, mạng nơ-ron lấy một đầu vào và cố gắng tạo lại chính xác đầu vào này trong đầu ra của chúng, sử dụng phương pháp backpropagation để cập nhật các kết nối của chúng. Điều này nghe có vẻ vô nghĩa, nhưng bằng cách này, các mạng học cách trích xuất các tính năng hữu ích và tổng quát hóa các tính năng đó để cải thiện mô hình của chúng.

8. Vấn đề về độ sâu

Backpropagation là một cách rất hiệu quả để dạy mạng nơ-ron khi chúng chỉ có một vài lớp. Khi số lượng lớp ẩn tăng lên, hiệu quả của việc backpropagation sẽ giảm xuống. Đây là một vấn đề đối với các mạng sâu. Sử dụng backpropagation, chúng thường không hiệu quả hơn các mạng đơn giản.

Các nhà khoa học đã đưa ra một số giải pháp cho vấn đề này, các chi tiết cụ thể của chúng khá phức tạp và nằm ngoài phạm vi của phần giới thiệu này. Điều mà nhiều giải pháp trong số này cố gắng làm, nói một cách dễ hiểu, là giảm độ phức tạp của mạng bằng cách huấn luyện nó “nén” (compress) dữ liệu.

Để làm điều này, mạng học cách trích xuất một số lượng nhỏ hơn các đặc điểm nhận dạng của đầu vào, cuối cùng trở nên hiệu quả hơn trong các tính toán của nó. Trên thực tế, mạng đang khái quát hóa và trừu tượng hóa, giống như cách mà con người học.

Sau quá trình học hỏi này, mạng có thể lược bỏ các nút và kết nối mà nó cho là ít quan trọng hơn. Điều này làm cho mạng hiệu quả hơn và việc học trở nên dễ dàng hơn.

>>> Xem thêm: Xe ô tô tự lái là gì? Xe ô tô tự lái hoạt động như thế nào

9. Ứng dụng của mạng nơ-ron

Các mạng nơ-ron mô phỏng cách bộ não học bằng cách sử dụng nhiều lớp nút – đầu vào, ẩn và đầu ra – và chúng có thể học cả trong các tình huống có giám sát và không giám sát. Các mạng phức tạp có thể trừu tượng hóa và khái quát hóa, làm cho chúng hiệu quả hơn và có khả năng học hỏi tốt hơn.

Chúng ta có thể sử dụng những hệ thống này để làm gì?

Về lý thuyết, chúng ta có thể sử dụng mạng nơ-ron cho hầu hết mọi thứ. Và có thể bạn đã sử dụng chúng mà không nhận ra. Ví dụ, chúng rất phổ biến trong nhận dạng giọng nói và hình ảnh, vì chúng có thể học cách chọn ra những đặc điểm cụ thể mà âm thanh hoặc hình ảnh có điểm chung.

Vì vậy, khi bạn hỏi Siri trạm xăng gần nhất ở đâu, iPhone của bạn sẽ đưa đoạn âm thanh đó qua mạng nơ-ron để hiểu những gì bạn đang nói. 

Xe ô tô tự lái có thể sử dụng mạng nơ-ron để xử lý dữ liệu hình ảnh, do đó tuân theo các quy tắc đường bộ và tránh va chạm. Mạng nơ-ron có thể giúp robot học cách hoàn thành nhiệm vụ một cách hiệu quả. Máy tính có thể học chơi các trò chơi như cờ vua, cờ vây. Nếu bạn đã từng nói chuyện với một chatbot, có khả năng nó đang sử dụng mạng nơ-ron để đưa ra các phản hồi thích hợp.

Tìm kiếm trên internet có thể được hưởng lợi rất nhiều từ mạng nơ-ron, vì mô hình xử lý song song hiệu quả cao có thể xử lý nhiều dữ liệu một cách nhanh chóng. Mạng nơ-ron cũng có thể tìm hiểu thói quen của bạn để cá nhân hóa kết quả tìm kiếm của bạn hoặc dự đoán những gì bạn sẽ tìm kiếm trong tương lai gần. Mô hình dự đoán này rõ ràng sẽ rất có giá trị đối với các nhà tiếp thị (và bất kỳ ai khác cần dự đoán hành vi phức tạp của con người).

Khả năng nhận dạng hình ảnh, dự đoán thị trường chứng khoán, tìm đường, xử lý dữ liệu lớn, phân tích chi phí y tế, dự báo bán hàng, trò chơi điện tử AI … là những khả năng gần như vô tận. Khả năng mạng nơ-ron học các mẫu, khái quát hóa và dự đoán thành công hành vi khiến chúng có giá trị trong vô số tình huống.

10. Tương lai của mạng nơ-ron

Mạng nơ-ron đã phát triển từ các mô hình rất đơn giản đến các mô phỏng học tập phức tạp. Chúng có trong điện thoại, máy tính bảng của chúng ta và chạy nhiều dịch vụ web mà chúng ta sử dụng. Ngoài ra có rất nhiều hệ thống học máy khác.

Nhưng mạng nơ-ron, vì sự tương đồng của chúng với não người, là một trong những mạng hấp dẫn nhất. Khi chúng ta tiếp tục phát triển và tinh chỉnh các mô hình, không có gì nói trước được chúng sẽ có khả năng gì trong tương lai. 

Dịch từ: https://www.makeuseof.com/tag/what-are-neural-networks/

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm bài viết:

Đại học trực tuyến? Tại sao nên chọn học đại học trực tuyến thay vì đại học offline?

5 điều có thể bạn chưa biết về học lập trình trực tuyến FUNiX

Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn

FUNiX đào tạo lập trình trực tuyến cung cấp nhân sự tập đoàn FPT

5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!