Tuesday, July 24, 2018

[BLOG] - Nhập môn Data Science - 3

Với phương pháp học nói chung và học Data Science nói riêng, có 2 cách tiếp cận tạm gọi là top-down và bottom-up. Cách tiếp cận top-down thường được nhiều người nghĩ đến (và cho là đúng) - đó là học hết các kĩ thuật liên quan rồi mới ' xuống núi' - tức là học Python, Spark, Deep Learning, Machine Learning - rồi sau đó đi tìm bài toán để giải quyết. Cách tiếp cận bottom-up thường được cho là mang tính 'thợ' - đó là xuất phát từ một bài toán thực tế nào đó - và đi tìm các kĩ thuật giúp để giải quyết bài toán đó. Cách tiếp cận top-down là cách được nhiều chương trình đào tạo hàn lâm offer - và không hiệu quả với tình hình hiện nay ở VN (nếu xét trên cùng một mức độ đầu tư về thời gian, công sức, tiền bạc và nguồn lực hiện có của người học).
Tôi cho rằng, nên bắt đầu bằng cách tiếp cận bottom-up trước - hãy làm một cái gì đó nhỏ thôi - vừa sức mình - làm thành công sẽ giúp mình tự tin hơn, và từ đó hiểu hơn về nhu cầu học cái gì, tại sao phải học cái kia. Và nên tránh xa các khẩu hiệu như đi tắt đón đầu, đánh bại Google, Facebook, tiến lên CMCN 4.0.
Nói về Data - ở một góc nhìn khác, có thể tạm chia ra hai loại: sân nhà - sân khách. Sân khách - nôm na là loại dữ liệu mà mình khó có cơ hội với tới được, ví dụ dữ liệu Facebook, Amazon - hoặc dữ liệu bệnh viện, ngân hàng. Sân nhà - nôm na là loại dữ liệu mà mình có thể tạo ra được hoặc có thể truy cập được.
Quay trở lại với việc học Data Science, cách tiếp cận bottom-up là hãy bắt đầu với Data - sân nhà - và tìm cách đặt câu hỏi - để từ đó đi học các kĩ thuật để tìm câu trả lời. Với góc nhìn đó, không nhất thiết bạn phải đóng 3 vai trò cùng lúc - dữ liệu - câu hỏi - kĩ thuật. Nếu bạn là sếp - bạn chỉ cần quan tâm đến dữ liệu và đặt câu hỏi - và phần còn lại - bạn sẽ đi tìm người biết về thuật toán, mô hình giải quyết vấn đề (Math&Statistics) và người biết về lập trình (Hacking Skills).
Một ví dụ về việc quản lí luận văn của sinh viên. Cách làm thông thường là sinh viên khi tốt nghiệp sẽ nộp CD luận văn, code. Sau khi nộp xong, thường là gom lại để trong tủ cất ở Khoa. Còn danh sách luận văn và điểm lưu ở file xls mà Phòng Đào Tạo quản lí hầu như không có liên kết nào với dữ liệu luận văn này. Với cách làm này, sẽ có những câu hỏi không trả lời được ví dụ: (tiêu đề/nội dung) luận văn các khoá có trùng lắp nội dung không (sao chép-đạo văn), số trang trung bình của luận văn là bao nhiêu - có mối liên hệ nào giữa số trang và kết qủa không - ví dụ càng nhiều trang - điểm càng cao, số lượng SV bảo vệ từng đợt qua các năm, phân bố điểm số - ví dụ càng về sau điểm trung bình càng giảm, v.v
Nếu những câu hỏi này được đặt ra sớm - lúc này, sẽ thấy có nhiều giải pháp - và không nhất thiết phải cần kĩ năng lập trình gì cả. Ví dụ, chỉ cần tạo một cái form để collect các thông tin - mỗi khi SV nộp thì thông tin họ điền vào form sẽ được cập nhật trong một file xls - chỉ cần vài thao tác trên file này là có thể trả lời được phần lớn các câu hỏi trên. Lúc này, vấn đề tốn thời gian không phải nằm ở chỗ lập trình, mà nằm ở chỗ dữ liệu được nhập vào form. Với việc yêu cầu SV nhập liệu, tổng thời gian được chia nhỏ ra cho mỗi SV nên đơn vị quản lí chỉ tốn thời gian lúc đầu mà thôi.
Bạn có thể tìm được nhiều ví dụ khác - mà ở đó, chỉ cần để tâm suy nghĩ một chút về số hoá để tạo ra dữ liệu chủ động - sẽ trả lời được rất nhiều câu hỏi phục vụ cho việc quản lí tốt hơn.

Link: https://www.facebook.com/bigdata.deeplearning.uit/posts/2045325689117874

Monday, July 23, 2018

[ BLOG] - Nhập môn Data Science - 2

Data trong Data Science được ví như là nguồn năng lượng trong các động cơ. Động cơ có mạnh đi nữa mà không có năng lượng để khởi động thì không làm được gì. Deep learning python để làm gì?
Ngày nay việc tạo ra dữ liệu dễ dàng hơn bao giờ hết. Dữ liệu tạo ra của những năm gần đây chiếm hơn 90% lượng dữ liệu tạo ra trong vài thập kỉ qua. Việc tạo ra dữ liệu có thể tạm phân chia thành 2 loại: thụ động và chủ động. Ví dụ, trong công việc, chúng ta tạo ra tài liệu .doc, .xls, .jpg, hay trong cuộc sống, chúng ta chụp hình, post facebook, chat, etc - những dữ liệu này tạm gọi là thụ động vì chúng ta thường không biết sẽ dùng nó vào việc gì khác với ý định ban đầu. Tuy nhiên, đối với Google hay Facebook, mỗi đánh dấu Spam, hay Like, Share thì dữ liệu tạo ra có thể dùng để tạo Spam Filter tốt hơn, có thể đánh giá chính xác hơn độ quan trọng của một post Facebook. Mỗi hành vi mua các sản phẩm cùng nhau trên Amazon sẽ giúp hệ thống Recommender hoạt động tốt hơn. Những dữ liệu như vậy tạm gọi là chủ động vì nó có mục đích dùng trước.
Trong các chương trình đào tạo data science hiện nay, chúng ta thường được minh hoạ về các ví dụ như Amazon, Facebook xử lí dữ liệu lớn như thế nào để có được kết quả. Nhưng khi ra đi làm, chúng ta đâu có đụng được các dữ liệu đó trừ khi chúng ta là nhân viên của họ. Hay các ứng dụng khác nghe rất hay ho như phát hiện giao dịch thẻ giả mạo (fraud detection) hay phát hiện ung thư (cancer detection) - nhưng chúng ta làm gì có được thông tin của các giao dịch thẻ hay dữ liệu chẩn đoán hình ảnh để mà thử?! Do đó, đa số học xong, ra ngoài đi làm, vẫn cứ thấy hụt hụt cái gì đó vô hình - chân không đạp đất - đầu không đội trời.
Theo quan điểm của tôi, để ứng dụng được Data Science trong thực tế tại VN, vấn đề chính nằm ở chỗ tạo ra dữ liệu chủ động chứ không phải là các kĩ thuật. Ví dụ, khi làm tuyển sinh sau đại học, có câu hỏi là bao nhiêu cựu SV sẽ quay lại học SĐH tại Trường? Nếu không nghĩ đến câu hỏi này khi thu thập dữ liệu, thì trong sheet sẽ không có cột lưu thông tin bạn tốt nghiệp ở đâu - và nếu không có thông tin này thì làm sao trả lời được câu hỏi trên?
Do đó, câu hỏi đầu tiên tôi thường đặt ra cho lớp Nhập môn Data Science là dữ liệu thường ngày bạn tạo ra là gì, bạn có quan tâm đến các câu hỏi/câu trả lời từ dữ liệu tạo ra (ngoài mục đích ban đầu)? Và điều này cũng cho thấy Nhập môn DS không nhất thiết phải dạy cho sinh viên chuyên về IT. Bạn có background ngành khác, vẫn có thể học được.
(Hình minh hoạ cho thấy - phần khó nhất của ML Systems không phải là ML mà là Data)
>>> B2DL Lab sẽ sớm có thông báo các khoá học về Data Science, AI, Machine Learning dành cho các bạn không phải chuyên ngành IT (tốt nghiệp các ngành Khoa học Tự nhiên, Khoa học Kĩ thuật) muốn chuyển đổi sang làm việc trong lĩnh vực IT <<<

Link: https://www.facebook.com/bigdata.deeplearning.uit/posts/2044428469207596

Sunday, July 22, 2018

[BLOG] - Nhập môn Data Science - 1

Có rất nhiều tài liệu có thể tìm thấy trên mạng về Data Science - nhưng tôi vẫn muốn tìm cho mình một cách hiểu 'dân dã' - khác một chút về cách diễn đạt.
Nói một cách đơn giản Data Science = Data + Science.
Nôm na là: Data là dữ liệu đầu vào - Science là kĩ thuật để xử lí dữ liệu - và Data + Science sẽ cho ra một Answer (kết quả) nào đó.
Ví dụ: chúng ta lắp camera giám sát tại UIT ( Data) và chúng ta muốn biết có hành vi phá hoại cơ sở vật chất hay không (Answer) - để trả lời câu hỏi đó, chúng ta cần các kĩ thuật (Science).
Hiện nay - hầu như mọi người tập trung vào khía cạnh kĩ thuật (ví dụ ngôn ngữ lập trình Python, máy học deep learning, etc) - nhưng lại quên rằng 2 khía cạnh còn lại là dữ liệu và câu hỏi cũng quan trọng không kém!
Nhiều chương trình đào tạo hiện nay cũng chủ yếu tập trung vào kĩ thuật - do đó, dữ liệu và câu hỏi xem như đã cố định trước. Nhưng lúc triển khai thực tế - dữ liệu và câu hỏi lại rất đặc thù cho từng công việc cụ thể. Nói cách khác - nếu học xong mà dữ liệu và câu hỏi giống như lúc học thì quá đơn giản. Nhưng thực tế thì không đơn giản như vậy.
Điều này nói lên điều gì? Đó là nếu bạn không rành về lập trình để focus vào phần kĩ thuật - bạn vẫn có thể trở thành team member của Data Science team - bạn có thể là người làm dữ liệu - hoặc bạn có thể là người đặt câu hỏi?!
Nếu nhìn vào cái hình trong ô bên dưới sẽ thấy người ta tách ra Hacking Skills và Math&Statistics Knowlege - có thể diễn giải thế này - Hacking Skills liên quan nhiều đến kĩ thuật lập trình - tức là có thuật toán thì cần phải hiện thực hoá nó bằng chương trình để kiểm chứng - Math & Statistics Knowledge nó liên quan nhiều đến tìm ra thuật toán. Có nhiều người giỏi lập trình - nhưng không giỏi thuật toán và ngược lại (giống như dân Dev và PhD).
Điều này nói lên điều gỉ? Đó là bạn không cần phải giỏi cả hai thứ cùng lúc - nhưng để làm được cái gì đó - bạn phải cần có team bổ sung lẫn nhau. 
Tham khảo: https://www.coursera.org/…/pytho…/lecture/wPUOQ/data-science (bạn cần đăng kí khoá học này trên Coursera trước)

Link: https://www.facebook.com/bigdata.deeplearning.uit/posts/2042980346019075 

Saturday, September 23, 2017

[SHARE] - MIT 6.S094: Deep Learning for Self-Driving Cars

This class is an introduction to the practice of deep learning through the applied theme of building a self-driving car. It is open to beginners and is designed for those who are new to machine learning, but it can also benefit advanced researchers in the field looking for a practical overview of deep learning methods and their application.

Xem slides, videos tại đây: http://selfdrivingcars.mit.edu/

Saturday, September 16, 2017

[SHARE] - Deep Learning giống như bong bóng sắp nổ?

Xem trả lời của Andrew Ng - giáo sư hàng đầu về lĩnh vực này - trên quora cho câu hỏi: When will the deep learning bubble burst?

Các lợi ích của deep learning là không thể chối cãi - và việc (xem xét) ứng dụng deep learning trong nhiều lĩnh vực cần được nghiên cứu. Tuy nhiên, deep learning không phải là thuốc trị bá bệnh.

There was also a lot of hype about electricity about 100 years ago. That particular bubble still hasn’t burst yet and we find electricity pretty useful!

More seriously, because deep learning is already creating tons of value—it’s used in web search, advertising, speech recognition, recommender systems, and many more—it is clearly here to stay. Deep learning, plus more broadly other AI tools (graphical models, planning, KR, etc.), now has a clear path to transforming industry after industry. Its impact will be felt well beyond the tech world.

Nonetheless, I think outside the core technical community, there are some overinflated expectations about “sentient AI”; I’ve also spoken with CEOs that seemed to think AI could be panacea to all their technical problems. So there is some unnecessary froth around deep learning, and I hope these smaller bubbles will burst—the sooner the better—before they have time to grow bigger.

Tuesday, September 12, 2017

[SHARE] - Facebook và Microsoft giới thiệu hệ sinh thái mới cho AI

Facebook và Microsoft vừa thông báo họ đã cùng nhau hợp tác để cung cấp hệ sinh thái (mã nguồn) mở về AI (trí tuệ nhân tạo) đến với tất cả mọi người.

Facebook và Microsoft gọi đây là Open Neural Network Exchange (ONNX), nền tảng chia sẻ thuật toán sẽ cho phép các nhà phát triển chuyển đổi giữa các giai đoạn phát triển AI khác nhau.

Kết quả của mối hợp tác này sẽ cho phép bất kỳ ai bắt đầu nghiên cứu về AI tận dụng được nguồn lực này nếu không có sẵn.

Xem bản tiếng Anh tại trang MicrosoftFacebook.

We developed ONNX together with Microsoft to bridge this gap and to empower AI developers to choose the framework that fits the current stage of their project and easily switch between frameworks as the project evolves. Caffe2, PyTorch, and Cognitive Toolkit will all be releasing support for ONNX in September, which will allow models trained in one of these frameworks to be exported to another for inference. We invite the community to join the effort and support ONNX in their ecosystem. Enabling interoperability between different frameworks and streamlining the path from research to production will help increase the speed of innovation in the AI community.

Sunday, September 10, 2017

[SHARE] - Có phải Deep Learning giải quyết hết các bài toán AI?

Trả lời của Prof. Yoshua Bengio - tiền bối về deep learning cho câu hỏi: Why aren't artificial neural networks used for everything? Of course you wouldn't do colliding galaxy simulations with them or anything ridiculous; but it seems that in AI, they have a very good applicability range.

If you have enough prior knowledge on a problem you don't need any learning, or it is enough to design the appropriate fully observed graphical model (you know what all the relevant random variables are and you either know their relationship or observe them in enough data), or just learn the "top layer"  (e.g. with a good feature space or a good similarity/kernel you can just plug your favorite SVM brand).

Another basic reason why I believe that artificial neural nets are not used for "everything AI" is simply that we are far from having captured from the cortex and from our ingenuity a learning algorithm as powerful as biological brains (in particular primates', and to some extent mammals and birds) enjoy, i.e., more real fundamental research is needed!