Hướng dẫn polynomial neural network python - mạng thần kinh đa thức python

Nets: Mạng lưới thần kinh đa thức sâu

Hướng dẫn polynomial neural network python - mạng thần kinh đa thức python

Thực hiện chính thức một số thí nghiệm trong bài báo "** π-Nets: Mạng thần kinh đa thức sâu **" (CVPR'20) và phần mở rộng của nó (T-Pami'21; cũng có sẵn ở đây).

Mỗi thư mục chứa một thử nghiệm khác nhau. Vui lòng làm theo các hướng dẫn trong thư mục tương ứng về cách chạy các thí nghiệm và tái tạo kết quả. Kho lưu trữ này chứa các triển khai trong MXNet, Pytorch và Chainer.

Duyệt các thí nghiệm

Cấu trúc thư mục như sau:

  • face_recognition: Thư mục chứa mã cho các thí nghiệm xác minh và nhận dạng khuôn mặt.
  • image_generation_chainer: Thư mục chứa thử nghiệm tạo hình ảnh trên chuỗi; Cụ thể là thí nghiệm không có chức năng kích hoạt giữa các lớp.
  • image_generation_pytorch: Thư mục chứa thí nghiệm tạo hình ảnh trên Pytorch; Cụ thể là việc chuyển đổi một máy phát giống như DCGAN thành một máy phát đa thức.
  • mesh_pi_nets: Thư mục chứa mã cho việc học biểu diễn lưới với các mạng đa thức.

Thêm thông tin về nets π

Một sân dài một phút của bài báo được tải lên ở đây. Chúng tôi mô tả có những kết quả tạo có thể thu được ngay cả khi không có chức năng kích hoạt giữa các lớp của trình tạo.

Nets không dựa vào một kiến ​​trúc duy nhất, nhưng cho phép xây dựng các kiến ​​trúc đa dạng; Kiến trúc được xác định bởi hình thức của công thức Resursives xây dựng nó. Chẳng hạn, chúng tôi hình dung bên dưới hai kiến ​​trúc NET khác nhau.

Hướng dẫn polynomial neural network python - mạng thần kinh đa thức python

Kết quả

Việc đánh giá trong bài báo [1] cho thấy các mạng có thể cải thiện các phương pháp tiên tiến. Dưới đây, chúng tôi hình dung kết quả trong việc tạo hình ảnh và các lỗi trong học tập biểu diễn lưới.

Hướng dẫn polynomial neural network python - mạng thần kinh đa thức python

Hình ảnh trên cho thấy tổng hợp khuôn mặt. Máy phát điện là một net π, và cụ thể hơn là một sản phẩm của đa thức.

Hướng dẫn polynomial neural network python - mạng thần kinh đa thức python

Kết quả được mã hóa màu của lỗi tái thiết trên mỗi đỉnh trên lưới cơ thể người mẫu mực. Từ trái sang phải: Lưới sự thật mặt đất, Xo đó, bậc một, thứ hai, thứ ba và thứ tư đa thức cơ sở trong mạng π. Màu tối mô tả một lỗi lớn hơn; Lưu ý rằng các chi (trên và dưới) có lỗi lớn hơn với xoắn ốc bậc một.

Trích dẫn

Nếu bạn sử dụng mã này, vui lòng trích dẫn [1] hoặc (và) [2]:

BibTeX:

@inproceedings{
poly2020,
title={$\Pi-$nets: Deep Polynomial Neural Networks},
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Panagakis, Yannis and Deng, Jiankang and Zafeiriou, Stefanos},
booktitle={Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2020}
}

BibTeX:

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}

Người giới thiệu

[1].Π-nets: Deep Polynomial Neural Networks, Conference on Computer Vision and Pattern Recognition (CVPR), 2020.
[2]Grigorios G. Chrysos, Stylianos Moschoglou, Giorgos Bouritsas, Jiankang Đặng, Yannis Panagakis và Stefanos Zafeiriou, Mạng thần kinh đa thức sâu, Giao dịch IEEE về phân tích mẫu và trí thông minh máy, 2021.Deep Polynomial Neural Networks, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021.

Một cuộc thảo luận về đa thức và mạng lưới thần kinh, về mặt lý thuyết đều có thể gần đúng các hàm liên tục

Ví dụ về hồi quy đa thức được thực hiện trên một tập dữ liệu, sử dụng ba mức độ đa thức khác nhau. Về mặt lý thuyết, đa thức có thể đạt được sự phù hợp vô hạn. [Hình ảnh từ Wikimedia của Shobha]

Để bắt đầu: Đây là một phần thảo luận hơn bất cứ điều gì khác. Mặc dù tôi sẽ cố gắng so sánh các đa thức và mạng lưới thần kinh, nhưng không có rất nhiều sự nghiêm ngặt về toán học hoặc hỗ trợ văn học để sao lưu bài viết này. Nó cũng không phải là một hướng dẫn: không thực hiện Python hoặc các thí nghiệm số (ít nhất là không phải tôi) lần này. Cuối cùng, tôi cũng không cố gắng thuyết phục bạn từ bỏ các mạng lưới thần kinh và nắm lấy hồi quy đa thức.

Không có cách nào, hãy để nói rằng tôi muốn đi đâu với bài viết này. Khá nhiều người học cách thiết kế đa thức tại một số điểm trong cuộc sống và khả năng phù hợp với bất kỳ chức năng nào của họ đã được chứng minh từ lâu. Thêm hai người đó nên làm cho các trường hợp sử dụng thú vị, nhưng sự chú ý cho hồi quy đa thức trong khoa học dữ liệu là khá áp đảo. Nếu bài viết này thành công trong việc kích thích một số suy nghĩ và phục hồi một chút chú ý cho nghệ thuật thiết kế đa thức lâu đời, thì điều đó sẽ là quá đủ.

Mạng lưới thần kinh

Hãy bắt đầu với các mạng lưới thần kinh và lý do tại sao chúng tôi thích chúng. Từ góc độ toán học, sự hấp dẫn lớn của các mạng lưới thần kinh là chúng có thể xấp xỉ bất kỳ chức năng liên tục nào một cách chặt chẽ. Ngay cả một mạng đơn giản, một lớp có thể-về nguyên tắc-hoàn thành nhiệm vụ này. Vâng, có những yêu cầu lý thuyết nghiêm ngặt và bạn có thể không bao giờ đạt được sự phù hợp hoàn hảo đó trong thực tế, nhưng dù sao đó cũng là một tài sản trấn an.approximate any continuous function infinitely closely. Even a simple, single-layered network can — in principle — accomplish this task. Yes, there are strict theoretical requirements and you may never achieve that perfect fit in practice, but it is a reassuring property nonetheless.

[Để cung cấp một số nền tảng về các định lý xấp xỉ phổ quát: George Cybenko (1989) đã chứng minh rằng một mạng một lớp với các hàm kích hoạt sigmoid có thể gần đúng bất kỳ hàm liên tục nào gần đúng. Hornik et al. (1989) đã chỉ ra rằng kết quả cũng được tổ chức cho các chức năng kích hoạt khác trong các mạng nhiều lớp. Kể từ đó, các định lý đã được mở rộng sang các hướng khác, ví dụ, chiều rộng và độ sâu lớp tùy ý, các chức năng kích hoạt khác nhau, các chức năng không liên tục, v.v. Một lần nữa, các kết quả này không cung cấp bất kỳ đảm bảo thực tế nào, vì các điều kiện có thể không thực tế.]Universal Approximation Theorems: George Cybenko (1989) proved that a single-layer network with sigmoid activation functions could approximate any continuous function infinitely closely. Hornik et al. (1989) showed that the result also held for other activation functions in multi-layer networks. Ever since, theorems have been extended into other directions, e.g., arbitrary layer widths and depths, various activation functions, non-continuous functions, etc. Again, these results do not provide any practical guarantees, as the conditions may be unrealistic.]

Ví dụ về một mạng lưới thần kinh. Nhiều lớp thường nắm bắt các tính năng cụ thể của tập dữ liệu. [Hình ảnh của OpenClipart trên FreesVG]

Tôi biết đây không phải là mô tả công phu nhất về mạng lưới thần kinh, nhưng chúng tôi có nhiều tài liệu hơn để bao gồm. Tiếp tục nào.

Đa thức

Một loại chức năng khác có khả năng phù hợp với khá nhiều bộ dữ liệu dường như gần như bị lãng quên-trong cộng đồng khoa học dữ liệu, ít nhất-nhưng có các thuộc tính tương tự như các mạng thần kinh (Định lý Stone-Weierstrass). Như bạn có thể đã phỏng đoán từ tiêu đề, đó là lớp đa thức.polynomials.

Có lẽ, bạn đã có một số đa thức ở trường trung học. Sau đó, tùy thuộc vào hướng của bạn sau đó, bạn có thể đã nghiên cứu chúng rất nhiều hoặc không. Ở bất cứ giá nào, chúng dường như không quá phổ biến trong khoa học dữ liệu hiện nay.

Để cung cấp một phần còn lại ngắn gọn, một đa thức được định nghĩa là:

Một biểu thức bao gồm không xác định (còn được gọi là các biến) và các hệ số, chỉ liên quan đến các hoạt động của phép bổ sung, trừ, nhân và số nguyên số không âm của các biến. - Wikipediaaddition, subtraction, multiplication, and non-negative integer exponentiation of variables.” — Wikipedia

Một ví dụ về đa thức có thể là một cái gì đó như:

f(x) = (x − 3)(x − 2)(x − 1)(x)(x + 1)(x + 2)(x + 3)

Biểu đồ tương ứng trông như sau:

Ví dụ về đa thức 7 độ. Một đa thức cấp độ cao có thể phù hợp với các mẫu rất phức tạp. [Hình ảnh từ Wikimedia của Melikamp]

Quan sát rằng đa thức có thể được viết ra bằng cách nhân các thuật ngữ. Đa thức luôn có thể được viết lại ở dạng kinh điển:

Lưu ý rằng, mặc dù các tính năng x^k, k>1 là phi tuyến tính, như một vấn đề ước tính thống kê, đó là tuyến tính (kết hợp tuyến tính có trọng số của các tính năng) và có thể được giải quyết bằng các kỹ thuật hồi quy tuyến tính cơ bản. Đây là một tài sản mạnh mẽ làm cho cuộc sống dễ dàng hơn nhiều.as a statistical estimation problem it is linear (weighted linear combination of features) and can be solved with basic linear regression techniques. This is a powerful property that makes life much easier.

Trong khoa học dữ liệu, chúng tôi thường xử lý nhiều tính năng (nghĩa là, nhiều hơn một biến giải thích, giả sử x_1, x_2, x_3), chuyển sang đa thức đa biến. Chẳng hạn, một thuật ngữ như thế này có thể đại diện cho một tính năng:multi-variate polynomial. For instance, a term like this might represent a feature:

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
0

Hoặc nếu bạn thích một cái gì đó mô tả hơn:

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
1

Và đó chỉ là một trong số nhiều tính năng có thể. Như bạn có thể tưởng tượng, đa thức nhanh chóng trở nên khá lộn xộn và phức tạp. Hai khía cạnh xác định sự phức tạp của đa thức:

  • Số lượng biến. Biểu thức này chứa hai biến giải thích,
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    3 và
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    4. Một đa thức với 2 biến có thể được hình dung trong âm mưu 3D, ở kích thước cao hơn, bộ não người của chúng ta có xu hướng bị hụt.variables. The expression
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    2 contains two explanatory variables,
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    3 and
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    4. A polynomial with 2 variables might be visualized in a 3D plot, at higher dimensions our human brains tend to fall short.
  • Mức độ của đa thức. Đây là công suất cao nhất trong biểu thức dạng tiêu chuẩn (tổng số số mũ khi nhân các biến). Ví dụ, trong ví dụ
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    2, mức độ sẽ là 6 (tức là, 2+4).degree of the polynomial. This is the highest power in the standard form expression (summation of exponents when multiplying variables). For instance, in the
    @article{poly2021,
    author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
    journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
    title={Deep Polynomial Neural Networks},
    year={2021},
    pages={1-1},
    doi={10.1109/TPAMI.2021.3058891}}
    
    2 example, the degree would be 6 (i.e., 2+4).

Tại thời điểm này, bạn có thể thấy một vấn đề tiềm năng phát sinh. Một đa thức độ 5 với một biến (ví dụ:

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
6) có vẻ có thể thực hiện được, cũng như đa thức độ 1 với năm biến (ví dụ:
@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
7).

Tuy nhiên, nếu chúng ta tăng cả mức độ và số lượng biến, số lượng tính năng có thể phát nổ. Khi chúng tôi chuyển sang các đối thủ như

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
8, chúng tôi nhận ra có rất nhiều tính năng đa biến cấp độ cao mà chúng tôi có thể thiết kế để nắm bắt các tương tác phức tạp. Ở phía trước, chúng tôi không biết những tính năng nào có liên quan - cho dù chúng tôi có bao nhiêu kiến ​​thức về miền. Về mặt tinh thần, chúng ta có thể khái niệm hóa các tương tác cơ bản và hiệu ứng bậc hai, nhưng không nhiều ngoài điều đó.high-degree multi-variable features we might design to capture complex interactions. Up front, we don’t know which features are relevant — no matter how much domain knowledge we have. Mentally we can conceptualize basic interactions and quadratic effects, but not much beyond that.

Tóm lại, chúng tôi có hai vấn đề để giải quyết: (i) các tính năng bao gồm và (ii) cho đến mức độ nào chúng ta nên đi để nắm bắt các hiệu ứng có liên quan. Trước khi tiến tới những thử thách này, hãy để vòng tròn trở lại mạng lưới thần kinh trong giây lát.

Liên kết giữa đa thức và mạng lưới thần kinh

Chúng tôi hiếm khi bận tâm để viết ra các mạng lưới thần kinh ở dạng toán học, nhưng chúng tôi có thể. Về bản chất, mỗi nút ẩn lấy làm đầu vào một sự kết hợp có trọng số của lớp trước, biến đổi nó theo một số hàm kích hoạt (ví dụ: sigmoid hoặc relu) và truyền vào đầu ra cho lớp tiếp theo.

Giống như một đa thức cấp cao hơn có một số biến giải thích ban đầu

@article{poly2021,
author={Chrysos, Grigorios and Moschoglou, Stylianos and Bouritsas, Giorgos and Deng, Jiankang and Panagakis, Yannis and Zafeiriou, Stefanos},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Deep Polynomial Neural Networks},
year={2021},
pages={1-1},
doi={10.1109/TPAMI.2021.3058891}}
9 và nhúng chúng vào các tính năng phức tạp như
output = Polynomial.fit(x_data, y_data, deg=3)
0, một mạng lưới thần kinh cũng biến đổi đầu vào và trích xuất các tính năng. Bạn thấy nơi này sẽ đi. Theo các nhà nghiên cứu tại Đại học California và Stanford (Cheng et al., 2021), một mạng lưới thần kinh thực sự là một lớp đa thức đặc biệt. Mỗi lớp thêm vào sự phức tạp của đa thức.a neural network is actually a special class of polynomials. Each layer adds to the complexity of the polynomial.

Nếu chức năng kích hoạt là bất kỳ đa thức, hoặc được thực hiện bởi một, NN thực hiện chính xác hồi quy đa thức.

Hơn nữa, mức độ của đa thức sẽ tăng từ lớp này sang lớp khác. - Cheng et al., 2019

Đây là một kết quả quyến rũ. Hóa ra chúng tôi không thực sự thảo luận về các phương pháp giải pháp đối lập. Nếu bất cứ điều gì, một mạng lưới thần kinh thêm một góc độ cụ thể và khái niệm hóa vào lớp giải pháp bao quát của hồi quy đa thức.

Để tránh quá mức các vấn đề: Trong phần còn lại, tôi sẽ tiếp tục sử dụng thuật ngữ đa thức cho hồi quy đa thức điển hình và các mạng lưới thần kinh thuật ngữ cho các mạng thần kinh.polynomials for the typical polynomial regression and the term neural networks for, well, neural networks.

[Lưu ý trên giấy của Cheng et al .: Chỉ các mạng thần kinh nhân tạo đơn giản được thảo luận; Các hương vị đặc biệt như tái phát, chung, chập, vv không được bao gồm. Cũng đáng chỉ ra rằng bài báo không cung cấp bằng chứng toán học nghiêm ngặt. Cuối cùng, bản thảo chưa được đánh giá ngang hàng hoặc được xuất bản.]

Hồi quy đa thức - Lựa chọn tính năng và phù hợp với dữ liệu

Quay lại đa thức. Bây giờ chúng ta biết chúng trông như thế nào, nhưng làm thế nào để chúng ta sử dụng chúng trong bối cảnh khoa học dữ liệu? Để giải quyết câu hỏi này, hãy để giả sử chúng tôi sử dụng một tập dữ liệu nhất định để xây dựng một mô hình vừa phù hợp với dữ liệu đào tạo và giải thích tốt dữ liệu chưa từng thấy.

Mặc dù có hàng tấn cách để kết hợp các biến thành các thuật ngữ cấp độ cao, việc tạo các tính năng không quá phức tạp trong những ngày này. Mặc dù tôi đã thắng được nhiều chiều sâu ở đây, nhưng một cái gì đó như

output = Polynomial.fit(x_data, y_data, deg=3)
1 có thể tạo ra tất cả các tính năng lên đến một mức độ nhất định. Chẳng hạn, với hai biến và độ 2, chúng tôi sẽ tạo
output = Polynomial.fit(x_data, y_data, deg=3)
2.creating features is not overly complicated these days. Although I won’t go into much depth here, something like
output = Polynomial.fit(x_data, y_data, deg=3)
1 can generate all features up to a certain degree. For instance, with two variables and degree 2 we would generate
output = Polynomial.fit(x_data, y_data, deg=3)
2.

Phù hợp với một đa thức cũng không thách thức về bản chất của nó. Chẳng hạn, chức năng

output = Polynomial.fit(x_data, y_data, deg=3)
3 chứa một số đa thức phổ biến (Chebyshev, Hermiti, Legendre, v.v.) và sự phù hợp được thực hiện trong một dòng mã duy nhất: is also not challenging at its essence. For instance, the
output = Polynomial.fit(x_data, y_data, deg=3)
3 functionality contains a number of common polynomials (Chebyshev, Hermitian, Legendre, etc.) and fitting is accomplished within a single line of code:

output = Polynomial.fit(x_data, y_data, deg=3)

Thách thức thực sự là tìm ra tập hợp con phù hợp của các tính năng. Có lẽ

output = Polynomial.fit(x_data, y_data, deg=3)
4 chứng minh một yếu tố dự đoán sâu sắc, hoặc có thể
output = Polynomial.fit(x_data, y_data, deg=3)
5 là. Ngay cả đối với các mức độ hợp lý hơn, thường có rất nhiều khả năng mà một tìm kiếm toàn diện trên tất cả các mô hình (tức là, kết hợp các tính năng) là không khả thi.subset of features. Perhaps
output = Polynomial.fit(x_data, y_data, deg=3)
4 proves a profound predictor, or maybe
output = Polynomial.fit(x_data, y_data, deg=3)
5 is. Even for more reasonable degrees, there are often so many possibilities that an exhaustive search over all models (i.e., combinations of features) is infeasible.

Một số kỹ thuật có thể hữu ích trong việc xử lý các bộ tính năng lớn, ví dụ:::

  • Phân tích thành phần nguyên tắc (PCA) để giảm kích thước của tính năng được đặt trước khi thiết kế đa thức; (PCA) to reduce the dimensionality of the feature set prior to designing polynomials;
  • Kiểm tra chi bình phương để kiểm tra tầm quan trọng của các tính năng trong việc dự đoán kết quả; to test the significance of features in predicting the outcome;
  • Cây quyết định (hoặc rừng ngẫu nhiên) để chọn các tính năng thành công; (or random forest) to select successful features;
  • Hồi quy ròng đàn hồi (kết hợp Lasso và Ridge) với các tính năng loại bỏ có ý nghĩa thấp. (combining LASSO and RIDGE) to weed out features with low significance.

Tôi thừa nhận: không nhất thiết phải dễ dàng. Tuy nhiên, hãy nhớ rằng những nỗ lực nghiêm túc trong đào tạo mạng thần kinh cũng đòi hỏi lựa chọn tính năng, lựa chọn kiến ​​trúc và điều chỉnh siêu đồng tính. Không phương pháp giải pháp nào sẽ ngay lập tức mang lại một mô hình hoàn hảo.

Một thách thức khác nằm ở quá mức. Một đa thức 20 độ có khả năng nắm bắt rất nhiều hiệu ứng đặc biệt, ngoại lệ và tất cả. Chúng tôi không nhất thiết muốn có một sự phù hợp hoàn hảo với dữ liệu đào tạo; Chúng tôi muốn mô hình hoạt động tốt trên dữ liệu chưa từng thấy trước đây. Mạng đàn hồi đã nói ở trên, cũng như tránh đa thức cấp độ cao. Không giống như các mạng lưới thần kinh - cũng dễ bị quá tải - đối với hồi quy đa thức, chúng ta có thể tính toán yếu tố lạm phát phương sai - vì chúng ta vẫn đang thực hiện hồi quy bình phương tối thiểu (OLS) thông thường - cảnh báo chúng ta khi chúng ta sắp đưa đa hình vào mô hình của chúng ta.overfitting. A 20-degree polynomial likely captures a lot of peculiar effects, outliers and all. We don’t necessarily want to have a perfect fit to the training data though; we want the model to work well on data not seen before. The aforementioned elastic net helps, as does avoiding high-degree polynomials. Unlike neural networks — which are also prone to overfitting — for polynomial regression we can calculate the variance inflation factor — as we are still performing ordinary least squares (OLS) regression — warning us when we are about to introduce multicollinearity into our model.

Tóm lại: Chúng tôi có tất cả các công cụ cần thiết để phù hợp với đa thức phức tạp đến một bộ dữ liệu phức tạp. Điều đó không thể nói đa thức là viên đạn ma thuật của khoa học dữ liệu. Nó không nói rằng việc phù hợp với một đa thức thích hợp sẽ là một làn gió. Nó chắc chắn không nói rằng chúng tôi sẽ thấy rằng sự phù hợp hoàn hảo có thể đạt được trong lý thuyết. Nó cũng không phải là một triển vọng cực kỳ ảm đạm.

(DIS) Ưu điểm của đa thức và mạng lưới thần kinh

Một trong những lợi ích lớn nhất của mạng lưới thần kinh là chúng nắm bắt một cách hiệu quả các cấu trúc phân cấp. [Ảnh của Eugene Tkachenko trên undplash]

Nguồn gốc của đa thức có từ nhiều thế kỷ trở lại; Đến bây giờ, họ được nghiên cứu và hiểu rất tốt. Rõ ràng, họ có một số nhược điểm - nếu không, không ai có thể bận tâm nghiên cứu các kỹ thuật mới ngay từ đầu. Mạng lưới thần kinh đã kiếm được một vị trí chính đáng trong lĩnh vực này.

Có lẽ sự hấp dẫn lớn nhất của các mạng lưới thần kinh nằm ở khả năng nắm bắt các hiệu ứng phân cấp. Đây là một trong những lý do chúng hoạt động rất tốt đối với tầm nhìn máy tính, với các lớp cụ thể dành riêng cho các hình dạng lớn, hình dạng nhỏ, màu sắc, v.v. Do kiến ​​trúc phân cấp, chúng thường có thể khái quát tốt, đưa ra sự thiên vị quy nạp cần thiết để xử lý dữ liệu mới.hierarchical effects. This is one of the reasons they work so well on computer vision, with specific layers dedicated to large shapes, small shapes, colors, etc. Due to the hierarchical architecture, they are often able to generalize well, introducing the inductive bias required to handle new data.

Ngoài ra, mạng lưới thần kinh thuận tiện để làm việc theo nhiều cách. Có, bạn phải chơi xung quanh với số lượng các lớp và nút, tỷ lệ học tập và các siêu âm bổ sung khi các mạng trở nên tiên tiến hơn. Tìm kiếm kiến ​​trúc thích hợp cần có thời gian và công sức.

Tuy nhiên, về mặt thiết kế tính năng, rất nhiều công việc được đưa ra khỏi tay bạn. Về cơ bản, bạn cung cấp một số biến giải thích và mạng tìm ra các tương tác có liên quan và các hiệu ứng bậc cao hơn. Với tất cả các thư viện và các thuật toán gốc gradient tinh vi có sẵn, việc điều chỉnh một mạng lưới thần kinh là khá dễ thực hiện.feature design, however, a lot of work is taken out of your hands. Basically, you feed a number of explanatory variables, and the network figures out the relevant interactions and higher-order effects by itself. With all the libraries and sophisticated gradient descent algorithms available, tailoring a neural network is quite doable.

Ngược lại, đối với hồi quy đa thức, bản thân đào tạo là đơn giản (hồi quy cơ bản). Thách thức là trong việc lựa chọn các tính năng thích hợp và kết hợp chúng thành một mô hình hợp lý. Một viện trợ nhỏ ở đây là cảnh báo đa hình đã nói ở trên, điều này giúp việc tránh quá mức tương đối dễ dàng hơn so với các mạng lưới thần kinh. Phát hiện ngoại lệ là một chút của một vấn đề. Trong các ngoại lệ hồi quy tuyến tính dễ dàng nhận ra; Ở đây, chúng có thể được hình thành như một phần của một số mô hình phi tuyến tính kỳ lạ.training itself is straightforward (basic regression). The challenge is in selecting appropriate features and to combine them into a sensible model. A small aid here is the aforementioned multicollinearity warning, which makes it comparatively easier to avoid overfitting than it is for neural networks. Outlier detection is a bit of a problem. In linear regression outliers are easily discerned; here, they might be conceived as part of some odd non-linear pattern.

Với sự trợ giúp của các thư viện, cả hai phương thức giải pháp đều có thể quản lý được ngày nay. Bạn không cần phải là một nhà toán học để phù hợp với đa thức, và bạn không cần phải là một kỹ sư học máy để đào tạo một mạng lưới thần kinh.

Một số kết quả (từ Cheng et al.)

Cuối cùng, câu hỏi có liên quan là ‘cái nào hoạt động tốt hơn? Hy vọng, bạn không mong đợi tìm thấy một câu trả lời kết luận ở đây.

Tuy nhiên, điều đáng chú ý là Cheng et al. (2019) đã so sánh hiệu suất của cả hai tập dữ liệu (cả nhiệm vụ phân loại và hồi quy). Thật thú vị, họ thấy rằng hồi quy đa thức hoạt động tốt như nhau hoặc thậm chí tốt hơn các mạng lưới thần kinh. Ngoài ra, các thí nghiệm của họ cho thấy đa thức hiếm khi cần cao hơn mức độ thứ hai hoặc thứ ba. Như vậy, họ cũng khá có thể giải thích. better than neural networks. In addition, their experiments showed that polynomials rarely need to be higher than second- or third degree. As such, they are also fairly explainable.

Vì lý do này và các lý do khác, ví dụ: Các giá trị được trang bị lớn ở các cạnh của dữ liệu, nhiều tác giả khuyến nghị không sử dụng các mô hình đa thức có độ cao hơn 2 hoặc 3, và trên thực tế trong các thí nghiệm thực nghiệm của chúng tôi trong bài viết này, chúng tôi hiếm khi thấy cần phải sử dụng mức độ cao hơn. - Cheng et al., 2019

Theo trực giác điều này có ý nghĩa. Hiệu ứng tương tác có xu hướng suy yếu đáng kể cho các đơn đặt hàng cao hơn. Nhân hai hoặc ba biến mang lại những hiểu biết có liên quan, cũng như nắm bắt các hiệu ứng tuyến tính và bậc hai. Nhưng chúng ta có thực sự gặp phải các hiệu ứng sức mạnh thứ 20 có ý nghĩa hoặc tương tác giữa một tá biến thường xuyên trong cuộc sống thực không? Nếu bất cứ điều gì, kết quả ngụ ý rằng các mạng thần kinh thường không cần thiết phải xây dựng cho nhiệm vụ trong tay, dẫn đến hiệu ứng quá mức khét tiếng.Interaction effects tend to drastically weaken for higher orders. Multiplying two or three variables yields relevant insights, as does capturing linear and quadratic effects. But do we really encounter meaningful 20th power effects or interactions between a dozen variables all that often in real life? If anything, the results imply that neural networks are often needlessly elaborate for the task at hand, leading to the notorious overfitting effect.

Quan trọng nhất, chúng tôi đã chỉ ra rằng PR nên là một sự thay thế hiệu quả cho NNS. Chúng tôi đã thực hiện các thí nghiệm với nhiều dữ liệu thuộc nhiều loại khác nhau và trong mọi trường hợp, PR đã thực hiện tương tự như hoặc tốt hơn đáng kể so với NN - mà không gặp rắc rối khi cố gắng tìm kết hợp tốt các tham số điều chỉnh.

Thực tế là trong một số trường hợp, PR thực sự vượt trội so với các NN phản ánh thực tế là các NN thường được phân số quá mức, về bản chất phù hợp với đa thức cấp độ cao hơn so với mức họ nên làm. - Cheng et al., 2019

Mặc dù thử nghiệm một loạt các bộ dữ liệu, nhưng sẽ là một sự kéo dài để tuyên bố rằng hồi quy đa thức vượt trội so với sự phù hợp của mạng lưới thần kinh. Chắc chắn - đặc biệt là với sự hoàn thiện đủ - thật dễ dàng để đưa ra các phản ứng trong đó các mạng lưới thần kinh vượt trội so với hồi quy đa thức. Tôi cũng nghi ngờ liệu đa thức sẽ thành công như nhau trong việc hoàn thành một trò chơi Super Mario hay nhận ra khuôn mặt (tức là, các mạng thần kinh chuyên biệt hơn).

Đối với các nhiệm vụ khoa học dữ liệu điển hình - ước tính mức lương, dự đoán thời gian du lịch, phân loại các bài hát theo thể loại - có vẻ như đa thức là một sự thay thế hợp lý hơn cho các mạng thần kinh. Hồi quy tuyến tính thường bị ngắn do sự đơn giản hóa thực tế, nhưng các mạng thần kinh sâu có thể tìm kiếm các mô hình rất phức tạp mà đơn giản là không có ở đó.

Đóng các từ

Như đã đề cập khi bắt đầu bài viết, đây là một phần thảo luận hơn bất cứ điều gì khác. Nó không nhằm mục đích hoàn chỉnh hoặc nghiêm ngặt, cũng không ủng hộ hồi quy đa thức để thay thế các mạng lưới thần kinh.

Tuy nhiên, thật thú vị khi thấy hồi quy đa thức cạnh tranh có thể như thế nào với các mạng thần kinh. Những tiến bộ được thực hiện ở phần sau là hấp dẫn, nhưng hầu hết các nhiệm vụ khoa học dữ liệu không ở mức độ của thử thách DeepMind trung bình.

Mặc dù việc học sâu hấp dẫn mạnh mẽ đối với nhiều người, nhưng có thể đặt câu hỏi liệu đó có phải là cách tiếp cận phù hợp nhất cho công việc hay không. Đa thức cung cấp các đại diện rất phong phú của thực tế; Ngay cả mức độ thấp và hiệu ứng tương tác cũng nắm bắt được phần lớn các hiệu ứng trong thế giới thực. Trong hình thức đó, chúng tương đối nhỏ gọn và toàn diện, tránh hiệu ứng ‘hộp đen mà các mạng thần kinh có xu hướng phải chịu đựng.

Bộ công cụ hiện đại lấy đi nhiều vấn đề thực tế gặp phải hồi quy đa thức trong quá khứ. Về mặt lý thuyết, đa thức có thể đạt được sự phù hợp hoàn hảo giống như các mạng thần kinh, trong khi đòi hỏi ít kiến ​​thức hơn hồi quy tuyến tính cơ bản.

Nói chung, có lẽ đã đến lúc cung cấp cho đa thức cơ hội thứ hai.

Người giới thiệu

Cheng, X., Khomtchouk, B., Matloff, N., & Mohanty, P. (2019).Hồi quy đa thức thay thế cho lưới thần kinh.Arxiv in.https://arxiv.org/abs/1806.06850v2

George Cybenko, G. (1989).Xấp xỉ bằng sự chồng chất của hàm sigmoidal.Toán học kiểm soát, tín hiệu và hệ thống, 2 (4), 303 Từ314.

Hornik, K., Stinchcombe, M., & White, H. (1989).Mạng lưới thức ăn nhiều lớp là các trình xấp xỉ phổ quát.Mạng lưới thần kinh, 2 (5), 359 Từ366.

Đá, M. H. (1948).Các định lý xấp xỉ Weierstrass tổng quát.Tạp chí toán học, 21 (5), 237 Từ254.

Weierstrass, K. (1885).Về khả năng đại diện phân tích của các chức năng tùy ý của SO được đặt ra của một biến thực sự.Báo cáo cuộc họp của Học viện Khoa học Hoàng gia Phổ ở Berlin, 2, 633 Tiết639.