Bài viết thứ 4 trong loạt bài tự học Machine Learning trên Coursera của giáo sư Andrew Ng.
Trong bài viết này, ta sẽ nói về Matrix và Vector, cùng các phép toán của chúng.
Xem các bài viết khác tại Machine Learning Course Structure
- 1. Các ký hiệu
- 1.1. Matrix
- 1.2. Vector
- 1.3. Ký hiệu
- 2. Phần mềm
- 3. Các phép tính
- 3.1. Phép cộng và phép nhân matrix số thực
- 3.2. Nhân matrix với vector
- 3.3. Nhân 2 matrix với nhau
- 3.4. Các tính chất của phép nhân matrix
- 3.5. Identity Matrix
- 4. Inverse (nghịch đảo) và Transpose (chuyển vị)
- 4.1. Inverse (nghịch đảo)
- 4.2. Transpose (chuyển vị)
1.1. Matrix
Matrix là một mảng 2 chiều (có thể mở rộng ra n chiều).
Matrix bên trên có 4 dòng và 3 cột, ký hiệu là .
1.2. Vector
Vector là một matrix chỉ có 1 cột và nhiều dòng.
Vector trên là một matrix 4×1.
1.3. Ký hiệu
- là phần tử ở dòng i và cột j của matrix.
- Vector A với ‘n’ dòng sẽ là một Vector có n chiều.
- là phần tử ở dòng i của vector.
Bình thường, vector và matrix sẽ dùng index bắt đầu từ 1. Trong đa số các ngôn ngữ lập trình, mảng thường bắt đầu từ phần tử 0.
- Matrix thường được ký hiệu bằng chữ cái in hoa, vector thường được ký hiệu bằng chữ cái in thường.
- Scalar nghĩa là một vật thể là một giá trị, không phải vector hay matrix.
- được ký hiệu cho tập các số thực.
- được ký hiệu cho tập các vector số thực n chiều.
Để thử nghiệm nhanh chóng các giả thuyết – thuật toán liên quan tới toán học trong Machine Learning, ta có thể dùng một phần mềm mang tên Octave
Bạn có thể chạy đoạn code dưới đây trong Octave hoặc Matlab
% The ; denotes we are going back to a new row. A = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12] % Initialize a vector v = [1;2;3] % Get the dimension of the matrix A where m = rows and n = columns [m,n] = size(A) % You could also store it this way dim_A = size(A) % Get the dimension of the vector v dim_v = size(v) % Now let’s index into the 2nd row 3rd column of matrix A A_23 = A(2,3)
3.1. Phép cộng và phép nhân matrix số thực
Đối với phép cộng và nhân, chỉ cần đơn giản cộng và nhân với mỗi phần tử của matrix.
Tương tự đối với phép nhân và chia:
3.2. Nhân matrix với vector
Để nhân một matrix với một vector, nhân mỗi phần tử rồi cộng kết quả:
Một matrix m x n nhân với một vector n x 1 sẽ ra kết quả là một vector m x 1.
Kiến thức về matrix này có thể áp dụng vào hàm hypothesis của linear regression:
Ta có bộ input các giá trị của x như sau:
x1 = 21 x2 = 30 x3 = 25 x4 = 22
hàm hypothesis:
Để tính nhanh các giá trị dự đoán của y, ta có thể tạo ra matrix x và vector hypothesis, và tạo thành phép tính như sau:
Phép tính này có thể dễ dàng tính toán bằng Octave
A = [1,21;1,30;1,25;1,22] B = [-40;0.25] mul_AB = A * B
Kết quả:
A = 1 21 1 30 1 25 1 22 B = -40.00000 0.25000 mul_AB = -34.750 -32.500 -33.750 -34.500
3.3. Nhân 2 matrix với nhau
Tương tự như việc nhân 1 matrix với 1 vector, bạn chỉ cần tách phép nhân 2 matrix thành nhiều phép nhân matrix với vector.
Một matrix m x n khi nhân với một matrix n x o sẽ cho ra kết quả là một matrix m x o.
3.4. Các tính chất của phép nhân matrix
Phép nhân 2 số thực có một số tính chất không thể áp dụng với phép nhân 2 matrix.
Gọi và là 2 matrix, ta có:
3.5. Identity Matrix
Một matrix bất kỳ khi nhân với một Identity matrix phù hợp sẽ có kết quả là chính nó.
Ký hiệu: hoặc
Ví dụ:
Lưu ý:
4.1. Inverse (nghịch đảo)
Một ví dụ với số thực
3 là một số thực. Ta có:
Tổng quát:
Ta có matrix A:
Matrix gồm toàn các phần tử 0 không có nghịch đảo
4.2. Transpose (chuyển vị)
Gọi B là matrix chuyển vị của A, ta có:
Hay nói cách khác:
Tôi là Nguyễn Văn Sỹ có 15 năm kinh nghiệm trong lĩnh vực thiết kế, thi công đồ nội thất; với niềm đam mê và yêu nghề tôi đã tạo ra những thiết kếtuyệt vời trong phòng khách, phòng bếp, phòng ngủ, sân vườn… Ngoài ra với khả năng nghiên cứu, tìm tòi học hỏi các kiến thức đời sống xã hội và sự kiện, tôi đã đưa ra những kiến thức bổ ích tại website nhaxinhplaza.vn. Hy vọng những kiến thức mà tôi chia sẻ này sẽ giúp ích cho bạn!