Hỏi Đáp

Bài Giảng Đại Số Tuyến Tính Là Gì, Bài Giảng Đại Số Tuyến Tính

Bây giờ bạn đã có thể lưu trữ và xử lý dữ liệu, hãy cùng ôn qua nhữngkiến thức đại số tuyến tính cần thiết để hiểu và lập trình hầu hết cácmô hình được nhắc tới trong quyển sách này. Dưới đây, chúng tôi giớithiệu các đối tượng toán học, số học và phép tính cơ bản trong đại sốtuyến tính, biểu diễn chúng bằng cả ký hiệu toán học và cách triển khailập trình tương ứng.

Đang xem: đại số tuyến tính là gì

2.3.1. Số vô hướng¶

Nếu bạn chưa từng học đại số tuyến tính hay học máy, có lẽ bạn mới chỉcó kinh nghiệm làm toán với từng con số riêng lẻ. Và nếu bạn đã từngphải cân bằng sổ thu chi hoặc đơn giản là trả tiền cho bữa ăn, thì hẳnbạn đã biết cách thực hiện các phép tính cơ bản như cộng trừ nhân chiacác cặp số. Ví dụ, nhiệt độ tại Palo Alto là (52) độ Fahrenheit.Chúng ta gọi các giá trị mà chỉ bao gồm một số duy nhất là số vô hướng(scalar). Nếu bạn muốn chuyển giá trị nhiệt độ trên sang độ Celsius(thang đo nhiệt độ hợp lý hơn theo hệ mét), bạn sẽ phải tính biểu thức(c = frac{5}{9}(f – 32)) với giá trị (f) bằng (52).Trong phương trình trên, mỗi số hạng — (5), (9) và(32) — là các số vô hướng. Các ký hiệu (c) và (f) đượcgọi là biến và chúng biễu diễn các giá trị số vô hướng chưa biết.

Trong quyển sách này, chúng tôi sẽ tuân theo quy ước ký hiệu các biến vôhướng bằng các chữ cái viết thường (chẳng hạn (x), (y) và(z)). Chúng tôi ký hiệu không gian (liên tục) của tất cả các sốthực vô hướng là (mathbb{R}). Vì tính thiết thực, chúng tôi sẽbỏ qua định nghĩa chính xác của không gian. Nhưng bạn cần nhớ(x in mathbb{R}) là cách toán học để thể hiện (x) là mộtsố thực vô hướng. Ký hiệu (in) đọc là “thuộc” và đơn thuần biểudiễn việc phần tử thuộc một tập hợp. Tương tự, ta có thể viết(x, y in {0, 1}) để ký hiệu cho việc các số (x) và(y) chỉ có thể nhận giá trị (0) hoặc (1).

Trong mã nguồn MXNet, một số vô hướng được biễu diễn bằng mộtndarray với chỉ một phần tử. Trong đoạn mã dưới đây, chúng ta khởitạo hai số vô hướng và thực hiện các phép tính quen thuộc như cộng, trừ,nhân, chia và lũy thừa với chúng.

2.3.2. Vector¶

Bạn có thể xem vector đơn thuần như một dãy các số vô hướng. Chúng tagọi các giá trị đó là phần tử (thành phần) của vector. Khi dùngvector để biễu diễn các mẫu trong tập dữ liệu, giá trị của chúng thườngmang ý nghĩa liên quan tới đời thực. Ví dụ, nếu chúng ta huấn luyện mộtmô hình dự đoán rủi ro vỡ nợ, chúng ta có thể gán cho mỗi ứng viên mộtvector gồm các thành phần tương ứng với thu nhập, thời gian làm việc, sốlần vỡ nợ trước đó của họ và các yếu tố khác. Nếu chúng ta đang tìm hiểuvề rủi ro bị đau tim của bệnh nhân, ta có thể biểu diễn mỗi bệnh nhânbằng một vector gồm các phần tử mang thông tin về dấu hiệu sinh tồn gầnnhất, nồng độ cholesterol, số phút tập thể dục mỗi ngày, v.v. Trong kýhiệu toán học, chúng ta thường biểu diễn vector bằng chữ cái in đậm viếtthường (ví dụ (mathbf{x}), (mathbf{y}), và(mathbf{z})).

Trong MXNet, chúng ta làm việc với vector thông qua các ndarray(1)-chiều. Thường thì ndarray có thể có chiều dài bất kỳ, tùythuộc vào giới hạn bộ nhớ máy tính.

Một phần tử bất kỳ trong vector có thể được ký hiệu sử dụng chỉ số dưới.Ví dụ ta có thể viết (x_i) để ám chỉ phần tử thứ (i) của(mathbf{x}). Lưu ý rằng phần tử (x_i) là một số vô hướngnên nó không được in đậm. Có rất nhiều tài liệu tham khảo xem vector cộtlà chiều mặc định của vector, và quyển sách này cũng vậy. Trong toánhọc, một vector có thể được viết như sau

(2.3.1)¶<egin{split}mathbf{x} =egin{bmatrix}x_{1} \x_{2} \ vdots \x_{n}end{bmatrix},end{split}>

trong đó (x_1, ldots, x_n) là các phần tử của vector. Trong mãnguồn, chúng ta sử dụng chỉ số để truy cập các phần tử trongndarray.

2.3.2.1. Độ dài, Chiều, và Kích thước¶

Hãy quay lại với những khái niệm từ Section 2.1. Một vectorđơn thuần là một dãy các số. Mỗi vector, tương tự như dãy, đều có một độdài. Trong ký hiệu toán học, nếu ta muốn nói rằng một vector(mathbf{x}) chứa (n) các số thực vô hướng, ta có thể biểudiễn nó bằng (mathbf{x} in mathbb{R}^n). Độ dài của một vectorcòn được gọi là số chiều của vector.

Xem thêm: Top 5+ App Vay Tiền Nhanh Thanh Hóa 1 – 15 Triệu Chỉ Cần Cmnd

Cũng giống như một dãy thông thường trong Python, chúng ta có thể xem độdài của của một ndarray bằng cách gọi hàm len() có sẵn củaPython.

Khi một ndarray biễu diễn một vector (với chính xác một trục), tacũng có thể xem độ dài của nó qua thuộc tính .shape (kích thước).Kích thước là một tuple liệt kê độ dài (số chiều) dọc theo mỗi trụccủa ndarray. Với các ndarray có duy nhất một trục, kích thướccủa nó chỉ có một phần tử.

Ở đây cần lưu ý rằng, từ “chiều” là một từ đa nghĩa và khi đặt vào nhiềungữ cảnh thường dễ làm ta bị nhầm lẫn. Để làm rõ, chúng ta dùng số chiềucủa một vector hoặc của một trục để chỉ độ dài của nó, tức là sốphần tử trong một vector hay một trục. Tuy nhiên, chúng ta sử dụng sốchiều của một ndarray để chỉ số trục của ndarray đó. Theo nghĩanày, chiều của một trục của một ndarray là độ dài của trục đó.

2.3.3. Ma trận¶

Giống như vector khái quát số vô hướng từ bậc (0) sang bậc(1), ma trận sẽ khái quát những vector từ bậc (1) sang bậc(2). Ma trận thường được ký hiệu với ký tự hoa và được in đậm (vídụ: (mathbf{X}), (mathbf{Y}), và (mathbf{Z})); vàđược biểu diễn bằng các ndarray với (2) trục khi lập trình.

Trong ký hiệu toán học, ta dùng(mathbf{A} in mathbb{R}^{m imes n}) để biểu thị một ma trận(mathbf{A}) gồm (m) hàng và (n) cột các giá trị sốthực. Về mặt hình ảnh, ta có thể minh họa bất kỳ ma trận(mathbf{A} in mathbb{R}^{m imes n}) như một bảng biểu mà mỗiphần tử (a_{ij}) nằm ở dòng thứ (i) và cột thứ (j) củabảng:

(2.3.2)¶<egin{split}mathbf{A}=egin{bmatrix} a_{11} & a_{12} & cdots & a_{1n} \ a_{21} & a_{22} & cdots & a_{2n} \ vdots & vdots & ddots & vdots \ a_{m1} & a_{m2} & cdots & a_{mn} \ end{bmatrix}.end{split}>

Với bất kỳ ma trận (mathbf{A} in mathbb{R}^{m imes n}) nào,kích thước của ma trận (mathbf{A}) là ((m), (n)) hay(m imes n). Trong trường hợp đặc biệt, khi một ma trận có sốdòng bằng số cột, dạng của nó là một hình vuông; như vậy, nó được gọi làmột ma trận vuông (square matrix).

Ta có thể tạo một ma trận (m imes n) trong MXNet bằng cách khaibáo kích thước của nó với hai thành phần (m) và (n) khi sửdụng bất kỳ hàm khởi tạo ndarray nào mà ta thích.

array(<< 0., 1., 2., 3.>, < 4., 5., 6., 7.>, < 8., 9., 10., 11.>, <12., 13., 14., 15.>, <16., 17., 18., 19.>>)
Ta có thể truy cập phần tử vô hướng (a_{ij}) của ma trận(mathbf{A}) trong :eqref:eq_matrix_def bằng cách khai báo chỉsố dòng ((i)) và chỉ số cột ((j)), như là(_{ij}). Khi những thành phần vô hướng của ma trận(mathbf{A}), như trong :eqref:eq_matrix_defchưa được đưara, ta có thể sử dụng ký tự viết thường của ma trận (mathbf{A})với các chỉ số ghi dưới, (a_{ij}), để chỉ thành phần(_{ij}). Nhằm giữ sự đơn giản cho các ký hiệu, dấuphẩy chỉ được thêm vào để phân tách các chỉ số khi cần thiết, như(a_{2, 3j}) và (_{2i-1, 3}).

Xem thêm: Phép Vị Tự Là Gì ? Các Dạng Bài Tập Phép Vị Tự Lớp 11 Lý Thuyết Phép Vị Tự Toán 11

Đôi khi, ta muốn hoán đổi các trục. Khi ta hoán đổi các dòng với các cộtcủa ma trận, kết quả có được là chuyển vị (transpose) của ma trậnđó. Về lý thuyết, chuyển vị của ma trận (mathbf{A}) được ký hiệulà (mathbf{A}^ op) và nếu (mathbf{B} = mathbf{A}^ op)thì (b_{ij} = a_{ji}) với mọi (i) và (j). Do đó,chuyển vị của (mathbf{A}) trong :eqref:eq_matrix_def là mộtma trận (n imes m):

(2.3.3)¶<egin{split}mathbf{A}^ op =egin{bmatrix} a_{11} & a_{21} & dots & a_{m1} \ a_{12} & a_{22} & dots & a_{m2} \ vdots & vdots & ddots & vdots \ a_{1n} & a_{2n} & dots & a_{mn}end{bmatrix}.end{split}>
array(<< 0., 4., 8., 12., 16.>, < 1., 5., 9., 13., 17.>, < 2., 6., 10., 14., 18.>, < 3., 7., 11., 15., 19.>>)
Là một biến thể đặc biệt của ma trận vuông, ma trận đối xứng(symmetric matrix) (mathbf{A}) có chuyển vị bằng chính nó:(mathbf{A} = mathbf{A}^ op).

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button