Trong video này, chúng tôi sẽ xem xét nhiều Linear Regression trong nhiều chiều và làm thế nào để xây dựng các mô hình này bằng cách sử dụng PyTorch.
Linear có lẽ là chức năng thường được sử dụng nhất trong PyTorch và là chìa khóa để xây dựng mạng thần kinh.
Trong video này, chúng tôi sẽ xem xét: hồi quy tuyến tính trong nhiều chiều Vấn đề dự đoán,
đối với PyTorch sẽ xem xét Class Linear và làm thế nào để xây dựng mô-đun tùy chỉnh bằng cách sử dụng NN.module.
Trong nhiều hồi quy tuyến tính ta có nhiều biến dự đoán, trong ví dụ này ta có 4 biến dự đoán, sau đó:
Chúng ta có thiên vị, w1: hệ số hoặc trọng lượng __1_
w2: hệ số hoặc trọng lượng __2_ và vân vân.
Nói chung trọng lượng và thiên vị là các thông số của mô hình của chúng tôi mà chúng tôi có được thông qua đào tạo.
Bảng chứa các mẫu khác nhau của các biến dự báo __1_ và __2_.
Vị trí của mỗi điểm được đặt trên mặt phẳng 2D, được mã hóa màu cho phù hợp
Mỗi mẫu của các biến dự báo __1_ và __2_ sẽ được ánh xạ đến một giá trị mới __.
Các giá trị mới của __ (y-hat) được ánh xạ theo hướng thẳng đứng, với chiều cao tỷ lệ thuận với giá trị mà y-hat mất.
Ta có thể diễn tả phép toán như là một phép biến đổi tuyến tính, x là một tenxơ 1 bởi D hoặc vector
và đôi khi được gọi là một tính năng, w là một tenxơ D bởi 1 hoặc vector của các tham số
y-hat là biến phụ thuộc. Sử dụng tích chấm ta có thể diễn tả phương trình về các phép toán vectơ.
Hãy xem xét ví dụ sau với thiên vị bằng một. Chúng ta thực hiện tích chấm của x và w.
Điều này nhân thành phần đầu tiên của x và w. Sau đó chúng ta thêm tích của thành phần thứ hai của w và x.
Sau đó chúng ta thêm thiên vị, kết quả là 9.
Tài sản quan trọng nhất là hình dạng. Số cột của x,
Phải giống với số hàng của w, chúng ta sau đó thêm b
Chúng ta thực hiện thao tác sản phẩm chấm, sau đó thêm b, kết quả là y-hat.
Chúng tôi sẽ sử dụng biểu diễn màu sắc để giúp chúng tôi hiểu được mối quan hệ giữa hình dạng và các thông số.
Biểu đồ hướng dẫn sau đây cũng rất hữu ích để hiểu được sản phẩm chấm. Các
nút đại diện cho các đối tượng và các cạnh đại diện cho các tham số.
Những đồ thị này sẽ được sử dụng sau này để giúp chúng ta hiểu được các mạng nơ-ron. Trong trường hợp này chúng ta có 2 kích thước.
Chúng ta có thể mở rộng nó đến kích thước tùy ý D.
Ta có thể thực hiện hồi quy tuyến tính trên nhiều mẫu tenxơ hay vectơ, trong trường hợp này ta có 4 mẫu, mỗi mẫu có 4 cột.
Đây là đầu ra của một đối tượng nạp tàu với 4 mẫu
Chúng tôi có tensor hoặc Ma trận được biểu diễn bằng chữ hoa X Mẫu đầu tiên tương ứng với hàng đầu tiên trong ma trận.
Mẫu thứ hai tương ứng với hàng thứ 2 trong ma trận, v.v.
Chúng ta có thể sử dụng màu sắc để đại diện cho các mẫu khác nhau.
Đối với nhiều mẫu, phương trình hồi quy là một phép biến đổi tuyến tính.
y và b là vectơ hoặc tenxơ hàng, một hàng cho mỗi mẫu. Hãy sử dụng biểu diễn màu sắc của sản phẩm chấm để có được một ý tưởng tốt hơn về những gì đang xảy ra.
Trong hình ảnh sau đây, mỗi mẫu trong ma trận X được biểu diễn bằng một màu khác nhau,
về cơ bản là một màu khác nhau của màu xanh lá cây hoặc màu xanh lam. Tham số này là màu cam.
Chú ý rằng y-hat được in đậm vì nó là một vectơ hay tenxơ đa chiều.
Đối với mẫu đầu tiên chúng tôi thực hiện sản phẩm chấm với hàng đầu tiên của ma trận và tham số.
Sau đó chúng tôi thêm thuật ngữ thiên vị, sau đó chúng tôi nhận được dự đoán cho mẫu đầu tiên.
Đối với mẫu thứ hai chúng ta lấy sản phẩm dấu chấm của vector tham số, sau đó chúng ta thêm thuật ngữ thiên vị.
Sau đó chúng tôi nhận được dự đoán cho mẫu thứ hai. Chúng tôi lặp lại quá trình cho mẫu thứ ba và thứ tư,
lấy sản phẩm chấm và thêm thuật ngữ thiên vị, mỗi mẫu tạo ra một dự đoán mới
Trong tóm tắt, số cột của X và số trọng lượng phải giống nhau trong trường hợp này quá.
Mặc dù chỉ có một thiên vị, chúng ta thêm thuật ngữ thiên vị vào mỗi sản phẩm chấm bằng cách sử dụng một vector màu xanh lá cây.
Và có nhiều dự đoán như mẫu hoặc cột trong X.
chúng ta hãy sử dụng tuyến tính lớp hữu ích để thực hiện hồi quy tuyến tính trong nhiều chiều.
Chúng tôi nhập khẩu tuyến tính từ gói nn. Các trọng lượng và thiên vị được khởi tạo ngẫu nhiên,
để có được kết quả tương tự mỗi khi chúng tôi chạy mã, chúng tôi sử dụng hạt giống ngẫu nhiên.
Chúng ta sẽ tìm hiểu làm thế nào các thông số thu được trong phần tiếp theo.
Ta sẽ tạo ra một đối tượng mô hình bằng cách sử dụng cấu trúc tuyến tính, tham số “in — features”
là kích thước của mỗi mẫu đầu vào hoặc số cột, “out features” là kích thước của mỗi mẫu đầu ra,
nó về cơ bản tạo ra một hàm tuyến tính. Tuyến tính tạo ra hàm sau. Hãy sử dụng sơ đồ dưới đây để biểu diễn
hình dạng Tham số “trong tính năng” đại diện cho số cột của x, và số lượng trọng lượng mô hình,
“Out features” là kích thước của đầu ra trong trường hợp này một.
Các tham số phương pháp, điều này cho ta các tham số mô hình; đầu tiên là độ dốc,
thứ hai là thiên vị, ta phải áp dụng danh sách hàm Python để có được một đầu ra như phương pháp được đánh giá lười biếng.
Chúng ta có thể thấy trọng lượng tuyến tính và sự thiên vị. Trong phòng thí nghiệm, bạn cũng có thể sử dụng phương pháp “nhà nước từ điển”.
Ta có thể tạo ra một tenxơ đầu vào, đây là một vector hàng hoặc tenxơ với hai cột.
Ta áp dụng đối tượng tuyến tính, kết quả là một tenxơ 1x1 tương ứng với dự đoán.
Ta có thể áp dụng hồi quy tuyến tính cho nhiều mẫu, ta tạo ra một tenxơ trong đó mỗi hàng là một mẫu khác nhau.
Như trước khi chúng tôi sử dụng màu sắc khác nhau để đại diện cho các mẫu khác nhau
Chúng tôi áp dụng các đối tượng mô hình, như chúng tôi có ba đầu vào, đầu ra là ba hàng.
Đầu ra thực tế là một tenxơ với ba hàng và một cột, tương ứng với các màu sau.
Trong PyTorch nó là phong tục để tạo ra một mô-đun tùy chỉnh, trong bối cảnh hồi quy nó sẽ cư xử gần như giống với đối tượng tuyến tính.
Điều này có vẻ hơi dư thừa, nhưng điều này sẽ được yêu cầu sau này khi được xây dựng mạng thần kinh.
Các module tùy chỉnh là các lớp; các lớp này là lớp con hoặc con của gói “NN.module”.
Trong trường hợp này, chúng tôi gọi mô-đun tùy chỉnh của chúng tôi là LR. Chúng tôi làm cho Class trở thành một đứa con của “NN.module”.
Kết quả là, nó kế thừa tất cả các phương thức và thuộc tính.
Trong hàm tạo đối tượng, đối số là kích thước của đầu vào và đầu ra, x và y tương ứng.
Ta gọi là “siêu” trong constructor, điều này cho phép ta tạo ra các đối tượng từ gói NN.module bên trong đối tượng, mà không cần khởi tạo nó một cách rõ ràng.
Bây giờ chúng ta có thể tạo ra một đối tượng kiểu tuyến tính, các đối số được thiết lập thông qua các đối tượng xây dựng
Chúng ta gán nó cho self.linear bây giờ chúng ta có thể gọi đối tượng kiểu tuyến tính bất cứ nơi nào trong lớp.
Chúng ta sử dụng hàm về phía trước để tạo ra một dự đoán. Chúng ta sẽ không phải gọi phương thức chuyển tiếp một cách rõ ràng,
chỉ cần dùng dấu ngoặc đơn vì nó hoạt động giống như phương thức gọi trong Python
Chúng ta tạo mô-đun hoặc lớp tùy chỉnh của chúng ta. Điều này hoạt động giống như đối tượng tuyến tính, các tham số “in-features” là hai và “out-features” là một.
Đối tượng này hoạt động giống như tuyến tính, chúng ta có thể đưa ra dự đoán cho một mẫu.
Hoặc chúng ta có thể đưa ra dự đoán cho nhiều mẫu.