Bài đăng

Thư - Keigo Higashino

Hình ảnh
Tôi vừa đọc xong cuốn "Thư" của tác giả Keigo Higashino. Bạn có thể biết ông thông qua các tác phẩm như "Phía sau nghi can X" hay "Điều kỳ diệu của tiệm tạp hóa Namiya". Trong tác phẩm lần này, Keigo mang đến cho chúng ta câu chuyện về cuộc sống của người em Naoki khi có anh trai là thủ phạm của một vụ cướp của giết người. Tuy nhiên, không giống như những gì chúng ta thấy trong phim ảnh thường ngày sử dụng chất liệu này để miêu tả về cuộc sống tù ngục. Đối với Keigo, đó chỉ là cái cớ để dẫn ta vào một thế giới khác, thế giới của những người thân của thủ phạm bị những con người trong xã hội kỳ thị vì là người thân của một kẻ giết người. Cậu chỉ có một mình khi phải chống chọi tất cả. Tuy nhiên, điều đáng ghét là, thay vì là một người đưa đường dẫn lối cho câu chuyện, Keigo chỉ làm một tấm gương bình thản, vô cảm phản chiếu sự thật. Hết lần này đến lần khác, tôi đều cảm thấy bức xúc với cách mà mọi người đối xử với Naoki nhưng rồi phải tự rủa mình khi n...

[Nhập môn Machine Learning] Bài 10: Cài đặt Linear Regression

Hình ảnh
Ở bài này, chúng ta sẽ sử dụng thư viện Numpy để tiến hành cài đặt thuật toán Linear Regression. Không giống những lần trước, khi chương trình của tôi chỉ xử lý được dữ liệu một chiều. Lần này, chúng ta có thể mở rộng ra cho dữ liệu nhiều chiều bằng cách vector hóa chúng. (Nếu bạn không biết vector hóa, bạn có thể xem lại bài viết này ). Trước khi bắt đầu, ta cần phải quy ước trước kích thước của các tham số trong thuật toán Linear Regression. Để cho thuận tiện, tôi sẽ sử dụng quy ước dưới đây: 𝐗 \boldsymbol{X} sẽ là ma trận chứa các mẫu dữ liệu. Ma trận này có kích thước m × n m\times n tức là mỗi dòng sẽ là một điểm dữ liệu, còn mỗi dòng sẽ là một feature. 𝐲 \boldsymbol{y} sẽ là một vector chứa các nhãn có độ dài m m . 𝛉 \boldsymbol{\theta} sẽ là vector chứa các tham số của ta có độ dài n n . Tới đây bạn có thể thắc mắc tại sao lại là n n mà không phải n + 1 n+1 vì ta cần một chỗ cho x 0 x_0 và θ 0 \theta_0 . Lý do sẽ được giải thích ngay sau đây. Khác với lần trước ...

A mind for number - Cuốn sách ai cũng nên đọc

Hình ảnh
Có một cuốn sách mà mình đã muốn giới thiệu từ rất lâu, đó là cuốn "A Mind for Numbers" của tác giả Barbara Oakley. Trong bài viết này, mình sẽ nói sơ lược về những ý chính của cuốn sách, những cảm nhận riêng của mình về những ý này. Giới thiệu chung Mặc dù với cái tên "A Mind for Numbers", đây hoàn toàn không phải cuốn sách nói về toán học. Tác giả của cuốn sách này, Barbara Oakley, viết cuốn sách nhằm mục đích hướng dẫn người đọc cách học những môn khoa học và cụ thể là môn Toán. Vậy nên, có thể nói cuốn sách này thuộc về lĩnh vực Tâm lý và Khoa học trí não nhiều hơn là Toán học (thật ra là chẳng có Toán nào cả). Đây là một cuốn sách rất hay nói về cách hoạt động của não bộ trong việc xây dựng các kiến thức mới, cách não bộ tư duy cũng như lưu trữ trí nhớ với từng thành phần được giải thích dễ hiểu và gần gũi đối với đọc giả (đặc biệt là những học sinh, sinh viên). Mặc dù lấy toán làm ví dụ cho sách, nhưng những gì bạn rút ra được không hoàn toàn bị trói bu...

Mình đọc sách vì lý do gì?

Hình ảnh
Mình nghĩ là trước khi thực hiện một hành động nào đó, ta luôn phải có lý do để thúc đẩy bản thân. Việc đọc cũng vậy, hằng ngày mình cố gắng đọc nhiều nhất có thể thông qua sách cũng như trên Internet với nền tảng như Medium. Vậy tại sao mình phải chịu khổ như vậy? Mọi người chắc cũng đều biết việc đọc hàng đống chữ khó khăn ra sao. Đơn giản thôi, vì sách là cội nguồn của tri thức, một thế giới mới trong sách mở ra hàng ngàn điều thú vị và mới mẻ .... Quên đi, hồi xưa giáo viên bắt viết vậy chứ lúc đó mình cũng có hiểu gì quái đâu. Lại nào! Dưới đây là những gì mình cảm nhận về việc đọc từ khi mình bắt đầu biết cầm cuốn sách lên đến bây giờ. Khởi đầu Mình còn nhớ cuốn sách đầu tiên mình mua về và đọc là hai cuốn phần 2 và 3 của Sherlock Holmes. Nói thật thì mình đếch nhớ tại sao mình lại mua Sherlock Holmes về đọc, nhưng sau khi đọc xong thì cũng thấy hay và không đọc nữa. Có lẽ mình sẽ không cầm một cuốn sách nào nữa lên đọc nếu không vì lý do ... không có Internet. Lên cấp 3 ...

[Nhập môn Machine Learning] Bài 9: Giới thiệu các thư viện Numpy, Matplotlib, Pandas (P2: Matplotlib và Pandas)

Hình ảnh
Ở bài viết này, chúng ta lại tiếp tục tìm hiểu về 2 thư viện còn lại là Matplotlib và Pandas. Các bạn có thể tự hỏi rằng tại sao chúng ta cần phải biết thêm 2 thư viện này trong khi chỉ với Numpy chúng ta đã có thể cài đặt thuật toán Linear Regression rồi. Đúng là như vậy, nhưng Numpy chỉ giúp chúng ta về mặt tính toán chứ không giúp ta hiểu được hoạt động của thuật toán đó. Thay vào đó, biểu đồ và bảng biểu sẽ giúp ta có cái nhìn rõ ràng hơn những vấn đề đang xảy ra với thuật toán ta đang sử dụng. Ví dụ như Cost Function của chúng ta đang tăng hay giảm, tăng mạnh hay không, những điều đó chúng ta rất khó có thể nhận ra mà phải cần đến một công cụ có thể chuyển số liệu thành hình ảnh. Đó là chỗ mà Matplotlib nhảy vào để hỗ trợ chúng ta. Pandas cũng không phải ngoại lệ, thông thường các dữ liệu của bạn đều được tải từ một tệp tin, phổ biến nhất là tệp .csv (Comma Separated Value), vào trong chương trình. Pandas có sẵn những hàm để làm việc này. Chưa kể đến chúng ta còn phải xử lý, ...

Độc lập tuyến tính và phụ thuộc tuyến tính

Hình ảnh
Chào mọi người! Hôm nay, mình sẽ nói về một thứ căn bản của căn bản nhất của Đại số tuyến tính đó là phụ thuộc tuyến tính và độc lập tuyến tính. Đây là khái niệm mình thấy làm nền tảng rất chắc để giải thích những lý thuyết khác của môn học này. Vậy thế nào là phụ thuộc hay độc lập tuyến tính? Về định nghĩa toán học, chúng được nêu như sau được nêu ra như sau: "Một tập hợp các vector được cho là phụ thuộc tuyến tính nếu ít nhất một vector có thể được biểu diễn dưới dạng tổ hợp tuyến tính của các vector còn lại. Nếu chúng không thể được biểu diễn dưới dạng tổ hợp tuyến tính, thì ta gọi những vector này độc lập tuyến tính với nhau." Tuy nhiên cách giải thích này vẫn còn khá hàn lâm. Hãy chia nhỏ nó ra và giải thích từng phần một theo một cách dễ hiểu hơn ở phần tiếp theo. Tổ hợp tuyến tính Giả sử chúng ta có 3 vector 𝐚 \boldsymbol{a} , 𝐛 \boldsymbol{b} , 𝐜 \boldsymbol{c} và để cho đơn giản, mình sẽ cho chúng thuộc ℝ 2 \mathbb{R}^2 . 𝐚 = [ 1 0 ] 𝐛 = [ 2 1 ] 𝐜 ...

[Nhập môn Machine Learning] Bài 8: Giới thiệu các thư viện Numpy, Matplotlib, Pandas (P1: Numpy)

Hình ảnh
Trước khi có thể cài đặt thuật toán Machine Learning, chúng ta cần tìm hiểu về các công cụ trước đã. Trong bài viết này, mình muốn giới thiệu với các bạn "bộ ba quyền lực" trong các thư viện Machine Learning của ngôn ngữ Python đó là: Numpy: thư viện hỗ trợ tính toán ma trận Matplotlib: thư viện hỗ trợ biểu diễn đồ thị Pandas: thư viện giúp thao tác với dữ liệu bảng biểu (hay còn có tên gọi khác là Excel của lập trình viên). Chúng ta sẽ lần lượt đi qua cách cài đặt, các hàm và cách sử dụng cơ bản của Numpy, Matplotlib và Pandas cùng với code mẫu để các bạn có thể làm theo trong quá trình đọc bài viết. Nhưng mình sẽ nói nhiều hơn về numpy hơn là 2 thư viện còn lại vì tính quan trọng của thư viện này Python và pip Trong bài viết này, mình sử dụng Python 3.7 . Để kiểm tra máy bạn đã có Python chưa, hãy mở cmd/Terminal lên và gõ python --version hoặc python3 --version nếu lệnh trên không hoạt động. Nếu máy bạn đã có Python thì sẽ được trả lại kết quả như bên dướ...