Mạng nơron: Cấu trúc

Nếu bạn nhớ lại từ đơn vị Cross Crosses, vấn đề phân loại sau đây là phi tuyến tính:

Cốt truyện Cartesian. Trục x truyền thống được gắn nhãn 'x1' Trục y truyền thống được gắn nhãn ' x2' Các chấm màu xanh dương chiếm góc phần tư phía tây bắc và đông nam; các chấm màu vàng chiếm các góc phần tư phía tây nam và đông bắc.

Hình 1. Bài toán về phân loại phi tuyến tính.

"NonLinear" nghĩa là bạn không thể dự đoán chính xác nhãn có mô hình nào \(b + w_1x_1 + w_2x_2\) Trước đây, chúng ta đã xem xét các tính năng chéo như một phương pháp có thể để lập mô hình cho các vấn đề phi tuyến tính.

Bây giờ, hãy xem xét tập dữ liệu sau:

Tập dữ liệu chứa nhiều màu cam và nhiều chấm màu xanh dương. Rất khó để xác định một mẫu nhất quán, nhưng các chấm màu cam mơ hồ tạo thành hình xoắn ốc và các chấm màu xanh dương có thể tạo thành một xoắn ốc khác.

Hình 2. Bài toán khó phân loại phi tuyến tính.

Tập dữ liệu hiển thị trong Hình 2 không thể được giải bằng mô hình tuyến tính.

Để xem mạng nơron có thể giúp giải quyết các vấn đề không tuyến tính như thế nào, hãy bắt đầu bằng cách biểu diễn mô hình tuyến tính dưới dạng biểu đồ:

Ba vòng tròn màu xanh dương trong một hàng được kết nối bằng các mũi tên với một vòng tròn màu xanh lục ở phía trên

Hình 3. Mô hình tuyến tính dưới dạng biểu đồ.

Mỗi vòng tròn màu xanh dương biểu thị tính năng đầu vào, còn vòng tròn màu xanh lục biểu thị tổng trọng số của các giá trị đầu vào.

Chúng tôi có thể thay đổi mô hình này như thế nào để cải thiện khả năng xử lý các vấn đề phi tuyến tính?

Lớp ẩn

Trong mô hình được biểu thị bằng biểu đồ sau, chúng tôi đã thêm một "lớp ẩn" giá trị trung gian. Mỗi nút màu vàng trong lớp ẩn là một tổng trọng số của các giá trị nút nhập màu xanh lam. Kết quả là tổng trọng số của các nút màu vàng.

Ba vòng tròn màu xanh dương trong một hàng có gắn nhãn

Hình 4. Biểu đồ mô hình hai lớp.

Mô hình này có tuyến tính không? Có – dữ liệu đầu ra vẫn là một kiểu kết hợp tuyến tính giữa các dữ liệu đầu vào.

Trong mô hình được biểu diễn bằng biểu đồ sau, chúng tôi đã thêm một lớp ẩn phụ thứ hai.

Ba vòng tròn màu xanh dương trong một hàng có gắn nhãn

Hình 5. Biểu đồ mô hình ba lớp.

Mô hình này có còn tuyến tính không? Tất nhiên là có. Khi biểu thị dữ liệu đầu ra dưới dạng hàm của dữ liệu đầu vào và đơn giản hoá, bạn sẽ chỉ nhận được tổng trọng số khác của các dữ liệu đầu vào. Tổng này sẽ không mô hình hiệu quả bài toán phi tuyến tính trong Hình 2.

Hàm kích hoạt

Để lập mô hình bài toán phi tuyến tính, chúng ta có thể trực tiếp đưa ra một bài toán phi tuyến tính. Chúng ta có thể pipeline từng nút ẩn của lớp thông qua một hàm phi tuyến tính.

Trong mô hình được biểu thị bằng biểu đồ sau, giá trị của mỗi nút trong Lớp ẩn 1 được một hàm phi tuyến tính chuyển đổi trước khi được chuyển vào các tổng trọng số của lớp tiếp theo. Hàm phi tuyến tính này được gọi là hàm kích hoạt.

Giống như hình trước, ngoại trừ một hàng các vòng tròn màu hồng có gắn nhãn &g/39;Lớp biến đổi phi tuyến tính#39; đã được thêm vào giữa hai lớp ẩn.

Hình 6. Biểu đồ mô hình ba lớp có chức năng kích hoạt.

Hiện tại, chúng tôi đã thêm chức năng kích hoạt, việc thêm lớp có tác động mạnh hơn. Việc xếp chồng các tuyến tính phi tuyến tính cho phép chúng tôi mô hình hoá mối quan hệ rất phức tạp giữa dữ liệu đầu vào và dữ liệu đầu ra được dự đoán. Tóm lại, mỗi lớp cần tìm hiểu hiệu quả một hàm phức tạp hơn ở cấp đầu vào thô. Nếu bạn muốn phát triển trực quan hơn về cách hoạt động của tính năng này, hãy xem bài đăng tuyệt vời trên blog của Chris Olah'3.

Hàm kích hoạt phổ biến

Hàm kích hoạt sigmoid sau đây sẽ chuyển đổi tổng trọng số thành một giá trị nằm trong khoảng từ 0 đến 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

Sau đây là một cốt truyện:

Hàm sigmoid

Hình 7. Chức năng kích hoạt Sigmoid.

Hàm kích hoạt đơn vị tuyến tính chỉnh sửa sau (hay gọi ngắn gọn là ReLU) thường hoạt động tốt hơn một chút so với hàm mượt mà như sigmoid, đồng thời cũng dễ tính toán hơn.

$$F(x)=max(0,x)$$

Ưu điểm của ReLU dựa trên những phát hiện thực nghiệm, có thể là do ReLU có nhiều khả năng phản hồi hữu ích hơn. Phản hồi của sigmoid không tương đối nhanh.

Hàm kích hoạt ReLU

Hình 8. Hàm kích hoạt ReLU.

Trên thực tế, bất kỳ hàm toán học nào đều có thể đóng vai trò là hàm kích hoạt. Giả sử rằng \(\sigma\) đại diện cho hàm kích hoạt của chúng tôi (Relu, Sigmoid, hoặc bất cứ thứ gì khác). Do đó, giá trị của một nút trong mạng được tính theo công thức sau:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

TensorFlow hỗ trợ nhiều chức năng kích hoạt ngay lập tức. Bạn có thể tìm thấy các chức năng kích hoạt này trong danh sách trình bao bọc cho hoạt động mạng nơron nguyên gốc của TensorFlow. Mặc dù vậy, bạn vẫn nên bắt đầu bằng ReLU.

Tóm tắt

Mô hình của chúng tôi hiện có tất cả các thành phần chuẩn về những gì mọi người thường có ý nghĩa khi họ nói "mạng nơron":

  • Một tập hợp các nút, tương tự như các nơ-ron, được sắp xếp theo lớp.
  • Một tập hợp trọng số thể hiện sự kết nối giữa từng lớp mạng nơron và lớp bên dưới. Lớp bên dưới có thể là một lớp mạng nơron khác hoặc một số lớp khác.
  • Một tập hợp thành kiến, mỗi định dạng một nút.
  • Một hàm kích hoạt giúp chuyển đổi kết quả của mỗi nút trong một lớp. Các lớp khác nhau có thể có các chức năng kích hoạt khác nhau.

Lưu ý: mạng nơ-ron không phải lúc nào cũng tốt hơn các tính năng chéo, nhưng mạng nơron cung cấp một giải pháp thay thế linh hoạt hoạt động hiệu quả trong nhiều trường hợp.