Bài đăng

Đang hiển thị bài đăng từ Tháng 7, 2019

Được và mất gì khi sử dụng Vim?

Hình ảnh
Nếu tựa đề bài viết làm bạn nghĩ tới một sản phẩm thân thiện trong nhà vệ sinh của các hộ gia đình thì bạn đã lầm. Vim mà tôi nhắc tới ở đây là một text editor được yêu thích bởi nhiều lập trình viên bên cạnh VSCode, Sublime Text hay Notepad. (tôi đùa vụ Notepad đấy) Vim là gì? Vim là viết tắt của Vi-iMproved, có nghĩa là một phiên bản cải tiến của Vi, một text editor khác, là tên được lấy từ 2 chữ cái đầu của từ Visual. Nói thẳng ra thì những lập trình viên có cách đặt tên thật lạ nhưng chúng ta phải chấp nhận thôi. Và đây chính là hình ảnh của Vim mà tôi nhắc tới. À, thật ra là, đây mới là hình ảnh của Vim trên máy tôi Sự đặc biệt của Vim Trước đây, khi bắt đầu học Python, một ngôn ngữ lập trình thông dịch khiến việc chạy code từ command line là một cách dễ dàng và nhanh gọn hơn thay vì phải sử dụng một IDE và chờ đợi nó cài đặt các kiểu. Tôi cũng cần chọn một text editor phù hợp cho việc viết code. Không phủ nhận rằng VSCode của Microsoft rất tuyệt vời và hữu dụng, t

Cần những gì để bắt đầu lập trình Machine Learning bằng Python?

Hình ảnh
Image by mohamed Hassan from Pixabay Trong bài viết này, mình muốn liệt kê ra những lựa chọn và những công cụ cần thiết mà một người mới bắt đầu Machine Learning sẽ cần. Và dưới đây chính là danh sách đó. Python Đây là điều hiển nhiên khi Python gần đây luôn được nhắc tới khi nói đến Machine Learning và Deep Learning. Sự phổ biến này đến từ tính dễ sử dụng của ngôn ngữ này. Khác với những ngôn ngữ lập trình khác như C++, Java và C# người sử dụng phải có một số kiến thức về lập trình như hướng đối tượng (OOP). Python tuy cũng theo hướng đối tượng nhưng chúng đã được giấu khỏi người sử dụng và thay thế bằng những cú pháp lập trình rất dễ hiểu và gần với ngôn ngữ con người. Cũng chính vì thế mà chúng rất được ưa chuộng bởi những người làm Machine Learning khi họ cần phải thử nghiệm nhiều thuật toán khác nhau một cách nhanh chóng Một môi trường lập trình ảo Một môi trường lập trình ảo (virtual environment) là một không gian làm việc cách ly trong máy của bạn. Như các bạn đã biế

[Nhập môn Machine Learning] Bài 7: Vector hóa thuật toán

Hình ảnh
Chúng ta đã đi được khá xa trong những bài vừa qua. Ta đã biết đến phương pháp tối ưu phổ biến nhất trong Machine Learning chính là Gradient Descent và sử dụng nó trong Linear Regression. Bây giờ, ta cần lùi bước lại để có được cái nhìn toàn cảnh về những việc mà ta đã làm. Đồng thời, tìm hiểu thêm một phương pháp cài đặt (implement) phổ biến hơn cho các thuật toán Machine Learning đó là vector hóa. Cái nhìn tổng quan của các thuật toán Machine Learning Đối với Linear Regression, có 3 thành phần chính mà chúng ta đã học được đó chính là: Model : hay chúng ta còn gọi là Hypothesis Function. Lost Function : đôi khi cũng được nhắc đến với cái tên Cost Function như tôi đã làm. Optimizer : là một thuật toán tối ưu. Ba thành phần trên cũng chính là một bộ khung chung cho các thuật toán thuộc supervised learning trong Machine Learning mà bạn sẽ gặp sau này (hay thậm chí cả Deep Learning nữa). Trong đó, ta có một model để thực hiện các dự đoán, một lost function để đo tính chính xá

[Root talk] Những khó khăn khi tự học

Hình ảnh
Trong những tuần vừa qua, mình có tạm dừng việc viết blog để tập trung học thêm các kiến thức cho những lĩnh vực mà mình yêu thích. Trong các tuần đó, khi mình đã có nhiều thời gian hơn do không phải quan tâm đến chuyện trường lớp thì mình nhận ra việc tự học hóa ra là một việc khó khăn. Lý do vì sao sẽ được mình nói đến trong bài blog này. Có quá nhiều thời gian Mình có cảm giác rằng mình tự học hiệu quả hơn ở trong năm học, khi mà mình có ít thời gian rảnh hơn, thay vì trong hè. Có thể nói, khi bạn có quá nhiều thời gian thì bạn dường như cũng quên mất đống thời gian ấy quan trọng như thế nào. Mình bắt đầu coi Netflix và Youtube nhiều hơn thay vì ngồi vào ghế đàng hoàng và tập trung học. Dù có học, mình hoặc 5-10p lại mở điện thoại lướt Facebook một lần hoặc vừa học vừa lướt Facebook luôn. Mấu chốt của sự lãng phí này đó chính là khả năng quản lý thời gian của mình còn quá kém. Việc không lập kế hoặc trước cho một ngày của bạn khiến bộ não của bạn không biết nên làm gì tiếp