Câu trả lời:
Gần như bắt buộc phải có chức năng kích hoạt khác biệt, trừ khi, tất nhiên, bạn có một giải pháp thay thế để đào tạo mạng bằng cách truyền lại lỗi .
Không, không cần thiết phải có chức năng kích hoạt. Trong thực tế, một trong những chức năng kích hoạt phổ biến nhất, bộ chỉnh lưu , không khác biệt ở mức 0!
Điều này có thể tạo ra các vấn đề với việc học, vì độ dốc số được tính gần một điểm không khác biệt có thể không chính xác. Phần "kinks" trong các bài giảng này thảo luận về vấn đề này.
Tôi không biết câu trả lời đầy đủ về việc liệu đây có phải là vấn đề trong thực tế hay không và mọi người xung quanh họ như thế nào. Có nhiều cách để tránh nhận các gradient không chính xác này đối với một số hàm không khác biệt, như các ghi chú bài giảng mà tôi đã thảo luận ở trên đã đề cập.
Mặc dù "chạy" một mạng thần kinh có thể được thực hiện với bất kỳ chức năng kích hoạt nào, chúng ta thường muốn huấn luyện nó - tức là điều chỉnh các tham số của nó để kết quả sẽ gần hơn với những gì chúng ta mong muốn.
Điều này thường được thực hiện bằng cách sao lưu ngược và các biến thể của độ dốc gốc , đòi hỏi sự tồn tại của một gradient - tức là, yêu cầu chức năng kích hoạt phải khác biệt. Việc điều chỉnh từng tham số được tính từ độ dốc của (các) chức năng kích hoạt mà tham số này ảnh hưởng, vì vậy nếu bạn không thể lấy được độ dốc thì không thể sử dụng phương pháp này.
Hãy đi qua điểm câu hỏi của bạn từng điểm.
Không, nó không phải là bất kỳ sự ép buộc nào để có thể khác biệt. Chúng tôi sử dụng Re-Lu có điểm không khác biệt ở mức 0. Nhưng đây chỉ là trường hợp tầm thường, vì điểm 0 sẽ không bao giờ đạt được trừ khi chúng tôi hết điểm chính xác để biểu thị số lượng cực kỳ ít.
Vì vậy, hãy lấy một ví dụ khác, thuật toán học tập Perceptron . Trong thuật toán này, không có cách nào thỏa đáng để đánh giá hiệu suất của một giải pháp cụ thể. Vì vậy, chúng tôi không có chức năng chi phí. Nhưng chúng ta vẫn có thể đạt được một giải pháp, mặc dù có thể không phải là tốt nhất. Tôi sẽ đi đến điểm tại sao nó không được sử dụng sau này.
NN có thể được coi rộng rãi như là các hàm xấp xỉ chức năng. Thông thường, bạn cung cấp cho nó một số hàm liên tục, NN điều chỉnh nó bằng cách kéo dài, dịch chuyển, làm biến dạng các phần của hàm đó bằng cách chỉ thay đổi và chỉ các tham số của hàm chứ không phải bản chất của hàm, tức là nó sẽ phân rã thành cùng loại của một loạt Fourier như trước đây, chỉ có sự khác biệt về pha và biên độ. Bạn cũng có thể thiết kế NN trên các dòng của câu đố tìm kiếm ngẫu nhiên. Bạn cung cấp cho mỗi nút của a, giả sử một lớp ẩn NN một phần của hàm được xấp xỉ tức là giữa một số khoảng-a < x < b
Nói. Nói trọng lượng kết nối cho mỗi lớp đầu ra là cố định. Bạn chỉ có thể thay đổi một phần của chức năng (ieparts bị hỏng như ghép hình từ một hàm gần đúng) mà bạn muốn cung cấp cho một nút, từ hộp các bộ phận cố định của bạn. Vì vậy, bạn thấy, trong trường hợp này, NN sẽ thử hầu hết tất cả các kết hợp cung cấp các phần khác nhau cho các nút khác nhau cho đến khi hàm hoàn toàn gần đúng. Vì vậy, bạn thấy, đây cũng có thể là một loại học tập cho NN mà không có bất kỳ chức năng liên tục.
Những lợi thế chính của chức năng khác biệt là toán học đằng sau nó. Bạn có thể dễ dàng xử lý lượng dữ liệu khổng lồ chỉ bằng toán học đơn giản. 1000 năm lý thuyết toán học có thể được áp dụng để xác minh hoạt động của NN của bạn, dự đoán cách thức hoạt động của nó, chọn thuật toán tốt nhất. Trong các chức năng kích hoạt không phân biệt riêng biệt, bạn không có cách dự đoán thực tế nào sẽ là kết quả cuối cùng.
Nói trong một vấn đề như thế này, nếu bạn áp dụng thuật toán học tập tri giác., Bạn có cách nào thực tế để dự đoán ranh giới quyết định cuối cùng sẽ nằm ở đâu không? Trong khi đó, nếu bạn huấn luyện nó bằng các phương pháp liên tục, bạn có thể dễ dàng vẽ đồ thị hàm chi phí so với trọng số, kiểm tra cực tiểu toàn cầu, lấy các trọng số sẽ là các trọng số cuối cùng. Vì vậy, chúng tôi dễ dàng giải quyết nó bằng cách vẽ đồ thị (phương pháp ma trận xác định cũng tồn tại).
Vậy tại sao nó lại có lợi thế?
-> Câu trả lời cuối cùng dễ dàng dự đoán (nếu tập dữ liệu tương đối nhỏ).
-> Dễ dàng vẽ biểu đồ và trực quan hóa hoạt động của NN và điều chỉnh siêu tham số cho phù hợp.
-> Dễ dàng áp dụng các công cụ toán học đã được kiểm tra thời gian để kiểm tra / đánh giá hiệu quả của thuật toán của bạn.
-> Không có thay đổi đột ngột về lỗi và do đó, trọng lượng của bạn cũng sẽ không thay đổi đột ngột do các bài đọc đi lạc.
Đây là tất cả những lợi thế tôi có thể nghĩ ra và tôi đang kiện có nhiều hơn nữa. Tất cả các công cụ này không có sẵn cho các thuật toán rời rạc, nếu bạn nghĩ (không thể đưa ra trực giác đầy đủ - quá dài).
Tôi đã đưa ra một số trực giác hơn ở đây:
Mục đích của chức năng kích hoạt trong Mạng nơ-ron là gì?
Vui lòng thêm bất cứ điều gì tôi bỏ lỡ bằng cách chỉnh sửa câu trả lời.
Hi vọng điêu nay co ich!
Như đã nói, chức năng Kích hoạt gần như khác biệt trong mọi mạng lưới thần kinh để tạo thuận lợi cho Đào tạo cũng như để tính toán xu hướng đối với một kết quả nhất định khi một số tham số được thay đổi. Nhưng tôi chỉ muốn chỉ ra rằng Hàm đầu ra không cần phải khác biệt trong mọi trường hợp. Chúng ta có thể có các nút đầu ra không sigmoid (ngưỡng giới hạn cứng) nhưng vẫn huấn luyện chúng với backpropagation và giảm độ dốc.