Bạn có thể đã nghe nói rằng các mạng thần kinh là "các hàm xấp xỉ chức năng phổ quát ". Về bản chất, định lý Cybenko nói rằng đối với bất kỳ chức năng ánh xạ hàm nào thành thực, bạn có thể ước chừng nó bằng một mạng thần kinh với các hàm kích hoạt sigmoid. Trên thực tế, hóa ra các mạng thần kinh cho phép bạn tính toán bất kỳ chức năng nào có thể tính toán được bằng máy Turing (tức là bất cứ điều gì bạn có thể viết một thuật toán để tính toán). Thật không may, những bằng chứng này chỉ nói rằng đối với một số cấu hình hữu hạn của các nơ-ron và trọng lượng, bạn có thể tính gần đúng bất kỳ chức năng nào.
Lý thuyết là tất cả tốt đẹp và bẩn thỉu, nhưng câu hỏi của bạn dường như đi sâu hơn về cách thực sự mã hóa tính toán của một số chức năng thành một tập hợp các nơ-ron và trọng lượng. Để minh họa, hãy xem xét một ví dụ đơn giản - độc quyền hoặc. XOR có hai đầu vào, vượt qua các đầu vào đó. Khi một và chỉ một trong các đầu vào được kích hoạt, thì nút đầu ra được kích hoạt. Với cả hai hoặc không có đầu vào nào được kích hoạt, thì nút đầu ra không được kích hoạt.
Lưu ý rằng ba nút ẩn làm những việc khác nhau. Hầu hết các nút bên trái và bên phải hầu hết chỉ đơn giản là thông qua kích hoạt các nút đầu vào tôn trọng. Tế bào thần kinh giữa có hai đầu vào và bằng cách nào đó phủ nhận chúng nếu cả hai đều bật. Sự kết hợp thông minh và kết hợp lại các yếu tố đầu vào này về cơ bản là cách thức hoạt động trong một mạng lưới thần kinh được thực hiện.
Rõ ràng đối với các chức năng phức tạp hơn, việc kết hợp và kết hợp lại phải được thực hiện theo những cách thông minh và phức tạp hơn, nhưng thực chất đây là những gì xảy ra ở mức độ thấp. Điều điên rồ là đây thực sự là tất cả những gì bạn cần để tính toán bất kỳ hàm tính toán nào! Sau đó, một lần nữa, máy turing cũng trở nên đơn giản ...
Vấn đề là chúng ta không thực sự có cách tạo ra mạng lưới thần kinh một cách kỳ diệu để tính toán một số chức năng tùy ý. Bằng chứng chỉ cho chúng ta biết rằng có một số mạng ngoài kia có thể làm điều đó. Khi chúng tôi đào tạo các mạng lưới thần kinh, chúng tôi chỉ đơn giản là cố gắng tìm một mạng khá gần.
Trong bối cảnh nhận dạng hình ảnh, bạn có thể tưởng tượng các mẫu mã hóa vào mạng. Ví dụ: để nhận ra số '1', bạn có thể tưởng tượng một nút ẩn dự kiến một cột pixel hầu hết hoặc được kích hoạt, với các pixel lân cận sẽ bị tắt. Nút ẩn này có thể khá tốt trong việc nhận ra một đường thẳng trong cột cụ thể đó. Đặt đủ các thứ này lại với nhau và chẳng mấy chốc bạn đã có một loạt các nút thực hiện nó ở những vị trí đủ của hình ảnh mà nếu tôi hiển thị mạng một, các nút ẩn đường thẳng đủ sẽ được kích hoạt, biểu thị '1'. Vấn đề tất nhiên trở thành khái quát hóa mạng để nó có thể nhận ra một tập hợp đầu vào khác nhau.
Hy vọng rằng điều này sẽ giúp bạn hiểu ít nhiều các khái niệm về cách một mạng lưới thần kinh có thể thực hiện các tính toán. Tuy nhiên, bạn đã đạt được một điểm khá quan trọng đối với các mạng thần kinh: nói chung khó có thể hiểu được tại sao mạng lại tạo ra một đầu ra cụ thể, đặc biệt là khi bạn xem xét điều đó như nhận dạng hình ảnh, các mạng nói chung đủ lớn để con người có một thời gian khó khăn để hiểu từng bộ phận chuyển động của máy. Làm phức tạp thêm vấn đề là nói chung hầu hết các mạng thần kinh không thực sự có một nút ẩn duy nhất cho mỗi tính năng nhỏ mà mạng có thể tìm hiểu về dữ liệu. Thay vào đó, việc phát hiện thứ gì đó như một đường thẳng để phân loại số '1' sẽ diễn ra theo cách không tập trung trên nhiều nút ẩn. Các thuật toán khác,
Nếu bạn đang tìm kiếm đọc nhiều hơn, tôi khuyên bạn nên đọc qua hướng dẫn này tại ai rác. Nó hướng dẫn bạn qua những điều cơ bản về cách thức hoạt động của một mạng lưới thần kinh và thậm chí đưa ra một ví dụ mã đơn giản để có được các mạng lưới thần kinh để điều khiển xe tăng hướng tới mục tiêu. Tuy nhiên, hướng dẫn này không đề cập đến việc truyền ngược, đây là cách phổ biến nhất để đào tạo mạng lưới thần kinh, và thay vào đó sử dụng một thuật toán di truyền đơn giản. Khi anh ấy bắt đầu nói về di truyền học, tôi đoán bạn có thể ngừng đọc ...