Mar 29, 2014

Tổng hợp một số khóa học Online về Machine Learning

Bài viết rất hay của bạn mình, mình chỉ chép qua thôi.
1) Machine Learning - Andrew Ng (Stanford University) on Coursera
Khóa học nhập môn căn bản nhất về ML. Khóa học giới thiệu các thuật toán ML đang được sử dụng phổ biến và rộng rãi. Khóa học thiên về mặt kỹ thuật, giúp người học có thể áp dụng các thuật toán ML vào các bài toán thực tế. Khóa học giúp chung ta hiểu ML một cách đơn giản nhất, bao quát nhất.
https://www.coursera.org/course/ml
2) Learning from Data - Yaser S.Abu-Mostafa (California Institute of Technology)
Nội dung khóa học này được giảng dạy chính thức tại Caltech. Khóa học đưa chúng ta từ lý thuyết của ML (Computational learning theory) đến các kỹ thuật ML (Technique). Khóa học thực sự đưa chúng ta hiểu sâu thêm về ML.
http://work.caltech.edu/lecture.html
3) Machine Learning - Andrew Ng (Stanford University) on iTunesU
Nội dung khóa học được giảng dạy tại Stanford năm 2008. Tương tự như "Learning from Data" khóa học giúp ta hiểu sâu thêm về ML. Khóa học cung cấp một số tài liệu liên quan về Probability, Linear Algebra, Convex Optimization ...
https://itunes.apple.com/vn/course/machine-learning/id495053006
http://cs229.stanford.edu/
4) Aritificial Intelligence - Patrick Henry Winston (MIT) on MIT OCW
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/
Chưa học qua nên chưa đánh giá được. Nhưng nhìn Syllabus, Leture notes thì có khác một chút so với các khóa trên vì có liên quan đến AI nhiều hơn.
5) Machine Learning (Georga Tech) on Udacity
https://www.udacity.com/courses#!/Georgia%20Tech%20Masters%20in%20CS
Khóa này mình cũng chưa học qua, nhưng nhìn Syllabus, nhưng các vấn đề nó nêu ra có vẻ rộng hơn so với các khóa trên.
6) Neural network for Machine Learning on Coursera
https://www.coursera.org/course/neuralnets
Một khóa học chỉ nói riêng về NN.
Ngoài ra để hiểu sâu rộng về ML chúng ta không thể bỏ qua nên tảng toán học đặc biệt là:
- Linear Alebra
- Probability and Statistics
- Convex Optimization
- Calculus
Nguồn: Hoàng Quý Phát.
Email: hoangquyphat@gmail.com

Mar 20, 2014

Một số channel để luyện nghen tiếng Anh

Sau khi từ Nhật về, có lẽ mình nên tập trung vô tiếng Anh nhiều hơn. Đặng đê còn dành cho những dự định sắp tới. Về khả năng nghe, cách tốt nhất là nghe liên tục và tương tác lại. Như vậy dễ nhớ hơn.

Một số channel để nghe tiếng Anh khá tốt, thú vị và không nhàm chán:

  • FungBrosComedy.
  • Nigahiga.
  • ThisIsACommentary.
  •  IELTS Ryan.
  • The Voice.
  • Jimmy Kimmel Live. Của thím này siêu hay, đặc biệt là lâu lâu lại mời các celebrity diễn một số show cực hài.
Trên Zing TV hay Hayhaytv có một số TV show siêu hay. Điển hình có thể kể là The voice US và UK. The Voice US hiện giờ có Shakira, nên càng tạo động lực để nghe hơn. Một số film dài tập cũng rất hay:

  • Breaking bad.
  • Sherlock - cái này khó nghe nhất, vì Holmes nhà ta phá án bằng cách ... đọc rap. Cũng như cách chơi chữ khá là ảo diệu. Một phần lấy bối cảnh của anh nên nó là English British.
  • Game of thrones.

Mar 7, 2014

Một chút rắc rối với Opencv và Python

Hôm nay gặp một chuyện hơi éo le:

    • Bên Windows thì không load được video dùng Opencv, Python
      Bên Linux thì bản có sẵn của Ubuntu hơi cũ. Mình lại dùng một số hàm mới nữa.


  • Cuối cùng của tìm được giải pháp:

    • Đối với Windows: không nay cài đặt bằng cách chép file opencv2.cpy. Cách tốt hơn là dùng gói này:
      Đối với ubuntu: để cài phiên bản mới phải chấp nhận cài tay. Tuy nhiên trang này đã hướng dẫn khá là cụ thể và chạy thử thì không có lỗi gì khi cài đã: http://www.raben.com/book/export/html/3
  • Feb 28, 2014

    Mẹo tắt các ký hiệu toán học trong VIM

    Khi gõ latex trong vim, điều làm mình khó chịu đó là các công thức toán học tự động biến đổi sang chế độ WYSWYG. Nếu nó "đẹp" như trong Word thì không nói làm gì. Nhưng nó chỉ tự động đổi một cách nửa vời, lại hiện theo kiểu đổi kí tự trong ASCII, nhìn trông không thuận mắt tí nào.
    Cuối cùng cũng tìm ra được giải pháp khóa các tính năng này lại. Trong file .vimrc thêm lệnh sau:
    let g:tex_conceal = ""
    

    Feb 24, 2014

    Lập trình XNA

    Mình sẽ cố gắng viết chút tutorial về công nghệ này. Dù đã không còn được hỗ trợ từ 1/4/2013 nhưng nó khá là dễ học và phù hợp để dẫn nhập về lập trình Game.

    Jan 4, 2014

    Lập trình file zip

    Đầu năm tính viết cái gì đó hoành tá tràng, nhưng lại bận quá nên thôi. Lại tính đổi cái theme, quả thực trình design kém đi rinh đồ người khác đôi lúc hơi mệt.

    Nhắc mới nhớ, tranh thử mấy ngày Tết về viết hoàn thành những bài còn dang dở :).

    Nov 14, 2013

    Khôi phục USB Transend

    Vừa bị chê cái giao diện của blog xấu, chăc hôm nào rảnh lại đi tìm theme khác vậy.

    Quay lại chủ đề của entry này. Lâu nay mình vẫn trung thành với USB của Transcend. Ngày xưa thì xài cái USB 256MB, qua nhiều đợt mất, hư, cho mượn nhưng dân tình không trả, mình vẫn xài các thế hệ tiếp theo của em ý.

    Chẳng là hôm trước cần cài lại Windows 8, và cũng phải config lại Boot Menu của Linux (khi cài Windows xong thì boot menu của GRUB 2 cũng mất theo). Sau một hồi nghịch, forrmat các kiểu thì Windows không còn nhận ra USB nữa. Kích thước ổ đĩa quay về mức 0 byte. Lúc đó đã cố gắng tìm một số tool chuyên dụng để forrmat lại cũng không thành công, trước đó thì usb mình không còn khả năng boot được nữa. Trong lúc không biết làm gì, mình quoẻn quởn lên trang của TRanscend và download tool của nó về. Và thật kỳ diệu, nó đã fix được cái USB xấu số một dăm ba cái Next.
    Link download
    Không biết các hãng khác có tool này không, nhưng tool này thực sự hữu dụng và cực kỳ dễ dùng.

    Oct 6, 2013

    Bộ lọc tuyến tính.

    Đáng lí ra sẽ có bài về các phép tính trên từng pixel, nhưng vì hiện giờ đang học về filter. Nên sẽ nói về filter trước.

    Bài viết dưới đây được lấy và tham khảm từ một số nguồn:

    • Khóa Computer Vision - Stanford.
    • Cuốn "Computer Vision - A Modern Approach".
    • Một số nguồn linh tinh khác sẽ được liệt kê sau.

    Một ảnh thực chất là biểu diễn của một hàm từ không gian $R^2$ sang không gian $R^M$. Hàm này sẽ cho ta biết về cường độ của điểm ảnh tại vị trí (x, y). Chính vì vậy, khi $M=1$ ta được ảnh mức xám, khi $M=3$ ta sẽ được ảnh màu gồm 3 kênh. Tuy nhiên, vì một ảnh trong tự nhiên là một hàm có tập xác định là tập số thực, nhưng máy tính chỉ hiểu được ảnh ở miền là các số nguyên. Vì vậy ta cần một bước để chuyển ảnh từ không gian thực sang miền mà máy tính hiểu được. Phép biến đổi đó gọi là số hóa.

    Số hóa bao gồm các 2 phép chính:

    1. Sampling.
    2. Quantization - lượng hóa.

    Phép Sampling làm nhiệm vụ chuyển tập xác định từ số thực sang số nguyên. Đơn giản hơn, sampling là phép dùng 1 cái lưới rộng và trùm lên trên tấm ảnh. Mỗi ô của lưới được gọi là pixel.

    Sau khi thực hiện xong Sampling, ta sẽ chỉ chọn đúng 1 màu duy nhất cho mỗi pixel của ảnh. Giá trị này là số nguyên. Việc chọn giá trị của pixel như thế nào, hay chia lưới như thế nào là một kỹ thuật riêng, và ... khá là hấp dẫn. Sẽ được bàn luận sau vậy.

    Bộ lọc tuyến tính - Linear Filters

    Một bộ lọc có chức năng chuyển một tấm ảnh thành một tấm ảnh mới, mà những pixel của ảnh mới là tổ hợp giá trị pixel của các ảnh cũ. Việc dùng các bộ lọc có tác dụng:

    • Rút trích những thông tin hữu ích từ ảnh.
    • Thay đổi hoặc tăng cường các thuộc tính của ảnh.

    Để sử dụng filter, ta áp dụng công thức sau:

    \[ g(x,y) = \sum_{k,l}f(i-k, j-l)h(k,l) \]

    Trong đó $g(x,y)$ là ảnh kết quả. $f(x,y)$ là ảnh đầu vào, $h(k,l)$ là mặt nạ (mask) hay còn gọi là nhân (kernel).

    Công thức phía trên có thể viết gọn thành:

    \[ g = f \bigotimes g \]

    Tham khảo:

    • Computer Vision - A Modern Approach
    Còn tiếp.