Mạng nơ-ron nhân tạo (neural networks) là gì dạ? Cụ thể hơn là RNNs ý

by admin

Đội bóng gồm mấy cầu thủ nhí mà ông đang huấn luyện cho giải đấu vừa mới thắng lớn, và ông đang hỏi tụi nhỏ muốn pizza hay burger hơn. Đứa nào cũng bắt đầu hú hét ra trò với món ăn mà tụi nhỏ muốn, còn ông thì sẽ quyết định bằng cách coi cái nào được gọi tên to nhất.
Về cơ bản thì đây là cách mạng nơ-ron nhân tạo hoạt động nhưng ở nhiều tầng lớp khác nhau. Những nút mạng ở lớp đầu tiên sẽ nhận dữ liệu đầu vào, mỗi nút sẽ nhận dạng một thuộc tính nhất định và sẽ hú lên khi tra ra được nó, thuộc tính càng rõ ràng thì chúng sẽ hét to dữ dội luôn.
Giờ thì ông có một đống nút đang hét lên “Màu tối quá nè!”, “Có màu đỏ kìa!”, “Nó tròn nè ông ơi” với những âm lượng khác nhau. Các lớp tiếp theo sẽ lắng nghe và dựa trên những gì nhận được, tụi nó sẽ hét tiếp về những đặc tính phức tạp hơn. “U là trời nó có mặt!”, “Còn có lông nữa!”, cứ như vậy cho đến lớp cuối cùng, nó sẽ kêu “Nó là một con mèo đó!”.
Điều thần kì nhất là không ai bảo tụi nó khi nào phải hét lên, vì chúng dựa trên phản hồi. Mấy cầu thủ nhí của ông ăn burger xong, và vài đứa bị ốm bệnh ra đấy. Thế là tuần tới, tụi nó không đòi burger nữa, hoặc không hét to như trước. Chúng học được rằng burger không phải là một sự lựa chọn xịn xò, và có xu hướng tránh xa burger luôn.
Một mạng lưới được huấn luyện với cách na ná như vậy. Ông cho nó một đống ảnh về mèo và về những thứ không phải mèo. Nếu mạng cho ra kết quả đúng, các nút được tăng cường để thực hiện y chang vậy khi gặp những tình huống tương tự, Nếu sai, chúng sẽ không được khuyến khích làm như thế. Ban đầu thì kết quả sẽ gần như hoàn toàn ngẫu nhiên, nhưng nếu ông thiết kế đúng, mạng sẽ ngày càng tốt hơn khi các nút được điều chỉnh. Nhiều khi ông sẽ có mấy mạng nơ-ron nhân tạo mà con người còn không hiểu chính xác nữa ý.


Ví dụ ở trên theo tui thì chả liên quan gì tới mạng nơ-ron nhân tạo nhân tạo nên không có ích mấy, để tui thử mở rộng ý dựa trên nó coi sao ha:
Tưởng tượng ông đang nhìn một vật thế nào đó đi, con mèo chẳng hạn. Trên đó ghi những đặc điểm mà một vật thể có, ví dụ như “bốn chân”, “nhiều lông”, “màu nâu”, “có ria”, vân vân và mây mây. Giờ thì ông muốn làm một cái máy, để đưa vào danh sách những đặc điểm, nó sẽ nhận diện xem vật thể đó là gì.
Cách đơn giản nhất để thiết kế cái máy trên khá là dễ dàng để suy đoán: đưa danh sách liệt kê hết những thuộc tính của tất cả những vật thể tồn tại trên đời, và để máy kiểm tra coi danh sách nào phù hợp với mớ miêu tả mà ông liệt kê cho con mèo. Tất nhiên, nó sẽ hoạt động, nhưng quá trời việc phải thực hiện để dựng một cái máy như thế. Thế là ông có ý tưởng, “Ờm, tụi đối tượng mà mình đưa cho máy để nhận diện có điểm chung nhiều dễ sợ á, sao mình lại lập danh sách riêng cho từng đứa thế nhở?”
Thế là, thay vào đó, ông sẽ có những cái máy nhỏ hơn chỉ đưa ra một câu hỏi thôi. Ví dụ nè, sẽ có một thằng kiểm tra xem “có phải là động vật không”, nó sẽ nhận ra nếu “đang thở” hoặc “có nhịp tim” hoặc cái gì đấy tương tự trong dữ liệu đầu vào, và kêu lên “đây là động vật đó”. Và một cái máy khác sẽ kiểm tra xem “có phải là động vật có vú không”, nó sẽ yêu cầu cái máy hồi nãy xem nếu đã là động vật thì tiến hành kiếm thuộc tính “có lông”. Một vài máy sẽ kiểm tra danh sách đặc tính được đưa vào, một số khác thì sẽ tìm kiếm câu trả lời chúng hỏi từ những cái máy khác, và sẽ có những đứa làm cả hai công việc luôn. Cuối cùng, chỉ bằng việc máy hỏi máy, ông sẽ có một cái máy cuối cùng đưa ra câu trả lời “Đúng rùi, là mèo đấy ông”
Tất nhiên, ngay cả việc thiết kế những cái máy nhỏ hơn cũng ngốn kha khá công sức khi phân loại đủ thứ đối tượng, thế là ông để nó tự xây luôn bằng cách sử dụng các phỏng đoán ngẫu nhiên để nhận biết các thuộc tính, cho tới khi ông có cả một hệ thống dang làm việc. Điều này có thể dẫn tới việc sinh ra những cái máy nhỏ hơn nữa, giống như sẽ có một cái sẽ hỏi “Nó có 2 chân, 2 tay và lông mũi ngắn hơn 3.5cm không?”, nhưng công việc nhìn chung thì vẫn tương tự như mô hình nhận biết mèo mà tui mới đề cập ở trên.
Được rồi, bây giờ sẽ nói đến Mạng thần kinh hồi quy (Recurrent Neural Network), đơn giản thôi: nguyên lí thì giống như tui đã nói ở trên, nhưng những cái máy nhỏ sẽ đặt câu hỏi từ danh sách câu trả lời đã có. Dễ hiểu hơn thì, trong nhận diện giọng nói, một máy nào đó sẽ đi thăm một cái máy “có tiếng ow trong đó hay không” và hỏi “điều trước đó ổng nói có phải là một tiếng ow đúng không?”
(Thêm một điều mà tui không đề cập đến là những máy xử lí có cấp độ thấp hơn sẽ chỉ đơn thuần trả lời đúng hay sai mà thôi, nhưng không phải lúc nào cũng đúng với mọi mạng nơ-ron nhân tạo)


Để tui thử giải thích nhé.
Mạng nơ-ron nhân tạo là một mô hình tính toán được lấy cảm hứng từ não bộ con người, dù không giống hoàn toàn bản gốc.
Não bộ là một mạng lưới với những tế bào được liên kết với nhau gọi là nơ-ron. Mỗi nơ-ron sẽ nhận dữ liệu từ những nơ-ron khác. Nếu tín hiệu từ những nơ-ron đầu vào đủ mạnh, chúng sẽ được kích hoạt để gửi tín hiệu tới những nơ-ron ở cấp độ thấp hơn. Não chúng ta học bằng cách tạo và phá hủy liên kết giữa các nơ-ron, và thay thế dựa trên độ mạnh liên kết đã tồn tại.
Mạng nơ-ron nhân tạo thì đơn giản hơn hàng real một chút, nhưng vẫn chung một nguyên lí hoạt động thôi. Một mạng nhân tạo lấy đầu vào ở dạng dữ liệu số. Và chúng sẽ được truyền qua nhiều lớp nơ-ron khác nhau. Mỗi nơ-ron bổng sung thêm dữ liệu từ lớp ở trên, và gửi tiếp tới những lớp thấp hơn. Và sau đó thì lớp cuối cùng sẽ đưa ra kết quả.
Mạng sẽ học tập thông qua một quá trình được gọi là lan truyền ngược. Để huấn luyện một mạng lưới, ông phải đưa ra các ví dụ đầu vào cũng như là kết quả tương ứng với mỗi mẫu. Lan truyền ngược sẽ thay đổi độ mạnh của liên kết giữa các nơ-ron riêng lẻ để giảm thiếu sai số giữa đầu ra mẫu (“kiểu như là đầu ra phải là cái này nè”) và với kết quả thật khi mạng xử lí với tham số là mẫu đầu vào.
Sau nhiều lần được huấn luyện như vậy, mạng đã có thể định hình các liên kết (hay gọi là “trọng số”) để nó đưa ra kết quả đầu ra tương ứng với dữ liệu được đưa vào.
Ví dụ đơn giản, một mạng nơ-ron nhân tạo có thể học để nhận biết con bò bằng cách nhìn một loạt các bức ảnh. Một số sẽ chứa con bò, một số thì không. Những bức ảnh sẽ trở thành dữ liệu số (dưới dạng pixel) và đưa vào lớp đầu iên. Kết quả đầu ra từ lớp dưới cùng sẽ có cường độ tín hiệu có thể được hiểu là “đúng, là bò đó” hoặc “ê, không phải bò đâu”. Nếu mạng làm đúng, nghĩa là các liên kết đã hỗ trợ đúnglàm hỏng kết luận sẽ mạnh hơnyếu đi dựa trên đó.
Về mạng thần kinh hồi quy (RNN) có chung một khái niệm tương tự, chỉ mở rộng thêm một chút. Các nơ-ron không chỉ xử lý đầu vào từ lớp bên trên mà còn liên kết với chính chúng để ghi nhớ trạng thái trước đó và dữ liệu trước đó. Có rất nhiều nơ-ron chuyên biệt khác nhau như bộ nhớ ngắn hạn (LSTMs), bộ nhớ cổng (GRUs), vân vân, để thực hiện chúng thì khá phức tạp.
Hi vọng có ích ha? Tui rất sẵn lòng để giải thích bất kỳ chi tiết nào nếu ông thích. Tự dưng mới nhận ra cái câu trả lời này không có nghĩa gì cho một đứa trẻ năm tuổi nhưng tui hi vọng mấy nhóc thanh niên không có nền công nghệ kỹ thuật có thể hiểu được.

You may also like

Leave a Comment