Làm thế nào để hiểu được trực giác hình học của hoạt động bên trong của mạng lưới thần kinh?


8

Gần đây tôi đã nghiên cứu lý thuyết đằng sau ANN và tôi muốn hiểu "ma thuật" đằng sau khả năng phân loại đa lớp phi tuyến tính của họ. Điều này dẫn tôi đến trang web này , một công việc tốt để giải thích về mặt hình học làm thế nào đạt được sự gần đúng này.

Đây là cách tôi hiểu nó (trong 3D): Các lớp ẩn có thể được coi là xuất ra các hàm bước 3D (hoặc các hàm tháp) trông giống như sau:

Chức năng tháp

Tác giả nói rằng nhiều tòa tháp như vậy có thể được sử dụng để xấp xỉ các hàm tùy ý, ví dụ:

nhập mô tả hình ảnh ở đây

Điều này có vẻ có ý nghĩa, tuy nhiên việc xây dựng của tác giả khá khó khăn để cung cấp một số trực giác đằng sau khái niệm này.

Tuy nhiên, làm thế nào chính xác điều này có thể được xác nhận khi đưa ra một ANN tùy ý? Đây là những gì tôi muốn biết / hiểu:

  1. AFAIK phép gần đúng là một xấp xỉ trơn tru nhưng 'trực giác' này dường như cung cấp một xấp xỉ rời rạc, điều đó có đúng không?
  2. Số lượng các tòa tháp dường như dựa trên số lượng các lớp ẩn - các tòa tháp trên được tạo ra do kết quả của hai lớp ẩn. Làm cách nào tôi có thể xác minh điều này (với một ví dụ trong 3d) chỉ với một lớp ẩn duy nhất?
  3. n

Tôi thực sự muốn tìm hiểu khả năng xấp xỉ này trong không gian 3D cho bất kỳ chức năng 3D tùy ý rằng một ANN có thể xấp xỉ với một lớp ẩn duy nhất - Tôi muốn nhìn thấy cách xấp xỉ này ngoại hình để xây dựng một trực giác cho nhiều khía cạnh?

Đây là những gì tôi nghĩ rằng tôi có thể giúp:

  1. f(x1,x2)= =x12+x22+3
  2. (x1,x2)
  3. Đưa dữ liệu này vào ANN và trực quan hóa xấp xỉ bằng một lớp ẩn (với khoảng 2-6 nơ-ron).

Xây dựng này có đúng không? Điều này sẽ làm việc? Làm thế nào để tôi đi về làm điều này? Tôi chưa thành thạo với tuyên truyền ngược để tự mình thực hiện điều này và đang tìm kiếm sự rõ ràng và định hướng hơn về vấn đề này - các ví dụ hiện có cho thấy điều này sẽ là lý tưởng.


1
Có một bài đăng blog thực sự tốt về chủ đề này ở đây: colah.github.io/posts/2014-03-NN-Manifold-Topology
Sycorax nói rằng

@ user777 - Vâng, đó là liên kết "khác" của tôi cùng với liên kết trong bài đăng và vì một số lý do tôi quên liệt kê nó :)
Tiến sĩ

Câu trả lời:


8

Có hai bài viết gần đây về một số tính chất hình học của các mạng nơ ron sâu với các phi tuyến tuyến tính từng phần (bao gồm kích hoạt ReLU):

  1. Về số lượng các khu vực tuyến tính của mạng lưới thần kinh sâu của Montufar, Pascanu, Cho và Bengio.
  2. Về số lượng các vùng phản ứng của các mạng chuyển tiếp nguồn cấp dữ liệu sâu với các kích hoạt tuyến tính khôn ngoan của Pascanu, Montufar và Bengio.

Họ cung cấp một số lý thuyết và sự nghiêm ngặt cần thiết khi nói đến mạng lưới thần kinh.

Trung tâm phân tích của họ xung quanh ý tưởng rằng:

các mạng sâu có thể tách không gian đầu vào của chúng thành các vùng phản ứng tuyến tính theo cấp số nhân hơn so với các đối tác nông của chúng, mặc dù sử dụng cùng một số đơn vị tính toán.

Do đó, chúng ta có thể giải thích các mạng nơ ron sâu với các kích hoạt tuyến tính từng phần khi phân vùng không gian đầu vào thành một loạt các vùng và trên mỗi vùng là một số siêu mặt tuyến tính.

Trong đồ họa mà bạn đã tham chiếu, lưu ý rằng các nhóm (x, y) khác nhau có các siêu phẳng tuyến tính trên chúng (dường như là các mặt phẳng nghiêng hoặc các mặt phẳng). Vì vậy, chúng tôi thấy giả thuyết từ hai bài viết trên hoạt động trong đồ họa được tham chiếu của bạn.

Hơn nữa, họ nêu (nhấn mạnh từ các đồng tác giả):

các mạng sâu có thể xác định số lượng vùng lân cận đầu vào theo cấp số nhân bằng cách ánh xạ chúng tới đầu ra chung của một số lớp ẩn trung gian. Các tính toán được thực hiện trên các kích hoạt của lớp trung gian này được nhân rộng nhiều lần, một lần trong mỗi khu phố được xác định. Điều này cho phép các mạng tính toán các hàm tìm kiếm rất phức tạp ngay cả khi chúng được xác định với tương đối ít tham số.

Về cơ bản, đây là cơ chế cho phép các mạng sâu có các biểu diễn tính năng cực kỳ mạnh mẽ và đa dạng mặc dù có số lượng tham số ít hơn so với các đối tác nông của chúng. Đặc biệt, các mạng nơ ron sâu có thể tìm hiểu số mũ của các vùng tuyến tính này. Lấy ví dụ, Định lý 8 từ bài viết được tham chiếu đầu tiên, trong đó nêu rõ:

Ln0kkL-1kn0

Đây là một lần nữa cho các mạng thần kinh sâu với kích hoạt tuyến tính từng phần, như ReLUs chẳng hạn. Nếu bạn đã sử dụng các kích hoạt giống như sigmoid, bạn sẽ có các bề mặt siêu hình sin trông mượt mà hơn. Hiện nay, rất nhiều nhà nghiên cứu sử dụng ReLU hoặc một số biến thể của ReLU (ReLU bị rò rỉ, PReLU, ELU, RReLU, danh sách vẫn tiếp tục) vì cấu trúc tuyến tính piecewise của họ cho phép tạo độ dốc ngược tốt hơn so với các đơn vị sigmoidal có thể bão hòa tốt hơn khu vực tiệm cận) và tiêu diệt hiệu quả gradient.

Kết quả theo cấp số nhân này là rất quan trọng, nếu không thì tuyến tính từng phần có thể không thể biểu diễn một cách hiệu quả các loại hàm phi tuyến mà chúng ta phải học khi nói về thị giác máy tính hoặc các tác vụ học máy cứng khác. Tuy nhiên, chúng tôi có kết quả theo cấp số nhân này và do đó, các mạng sâu này có thể (về lý thuyết) có thể học tất cả các loại phi tuyến bằng cách xấp xỉ chúng với một số lượng lớn các vùng tuyến tính.

y= =f(x1,x2)

Nếu bạn muốn kiểm tra trực giác của mình, có rất nhiều gói học sâu tuyệt vời có sẵn trong những ngày này: Theano (Lasagne, No Learn và Keras được xây dựng trên nó), TensorFlow, một loạt các gói khác tôi chắc chắn tôi sẽ rời đi ngoài. Những gói học sâu này sẽ tính toán backpropagation cho bạn. Tuy nhiên, đối với một vấn đề quy mô nhỏ hơn như vấn đề bạn đã đề cập, thực sự nên tự mình viết mã backpropagation, chỉ cần thực hiện một lần và tìm hiểu cách kiểm tra độ dốc. Nhưng như tôi đã nói, nếu bạn chỉ muốn dùng thử và hình dung nó, bạn có thể bắt đầu khá nhanh với các gói học sâu này.

Nếu một người có thể đào tạo mạng đúng cách (chúng tôi sử dụng đủ điểm dữ liệu, khởi tạo mạng đúng cách, đào tạo tốt, thì đây là vấn đề hoàn toàn khác của chính nó), sau đó, một cách để hình dung những gì mạng của chúng tôi đã học, trong trường hợp này , một siêu mặt, là chỉ vẽ biểu đồ siêu mặt của chúng ta trên một lưới xy hoặc lưới và trực quan hóa nó.

Nếu trực giác trên là chính xác, thì sử dụng lưới sâu với ReLU, mạng sâu của chúng ta sẽ học được số lượng vùng theo cấp số nhân, mỗi vùng có siêu mặt tuyến tính riêng. Tất nhiên, toàn bộ vấn đề là bởi vì chúng ta có nhiều theo cấp số nhân, các phép tính gần đúng tuyến tính có thể trở nên rất tốt và chúng ta không nhận thấy sự lởm chởm của tất cả, vì chúng ta đã sử dụng một mạng đủ sâu / đủ lớn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.