Ngu ngơ học Deep Learning (1) - Tổng quan


1         Mở đầu


Năm 2019 tháng 5, vẫn ý tưởng là dân Việt “tay bo” thì nên tập trung vào Công nghệ Thông tin và Nông nghiệp. Về lĩnh vực Công nghệ Thông tin, lúc đầu còn yếu nghề nên “ngu ngơ” tập trung vào làm một việc gì đó đơn giản, ví dụ làm Web, sau đó thấy ổn ổn rồi, còn thời gian rảnh thì học thêm những mảng nâng cao hơn để thêm trải nghiệm mới, có nhiều thách thức mới.

Thử bắt đầu với cái đang được nhiều người nhắc tới hiện nay, đó là Deep Learning.


2         Tổng quan


2.1       Artificial Intelligence, Machine Learning và Deep Learning


Đọc bài viết sau:

Giới thiệu về Machine Learning:


Rút ra được một số ý:

– Artificial Intelligence (AI) là Trí tuệ nhân tạo

– Machine Learning (ML) là Học máy hay Máy học

– Deep Learning dịch nôm na là Học sâu

– Trong đó, Machine Learning là tập con (nhánh) của AI, trong khi Deep Learning lại là tập con (nhánh) của Machine Learning.




– [Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning]

– [Nói đơn giản, Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể.]

– [Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng lên một tầm cao mới và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn, Machine Learning đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là Deep Learning. Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 10 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn hay âm nhạc]

Quá trình phát triển của AI, Machine Learning và Deep Learning được thể hiện trong hình sau (nguồn: https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/),



Tạm thời sẽ tập trung tìm hiểu về Machine Learning và Deep Learning.


2.2       Machine Learning


Như ở trên đã đề cập, Machine Learning là làm cho máy tính có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể.

Đọc thêm bài viết của tác giả Ông Xuân Hồng, Machine Learning là gì?


Trích một số nội dung quan trọng từ bài viết trên,

[Trong cuốn sách Machine Learning của Tom Mitchell, ông có định nghĩa:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

Từ định nghĩa trên, ta có thể diễn giải như sau: máy tính được gọi là học từ kinh nghiệm (dữ liệu) E với tác vụ (dự đoán, phân lớp, gom nhóm) T và được đánh giá bởi độ đo (độ chính xác) P nếu máy tính khiến tác vụ T này cải thiện được độ chính xác P thông qua dữ liệu E cho trước.

Thoạt đầu ta có thể lúng túng trước phát biểu này, nhưng đây là các thành phần cơ bản mà bất cứ hệ thống Machine learning nào cũng có. Đó là, dữ liệu E cho trước (tập dữ liệu email) nhằm hoàn thành tác vụ T (xác định email là spam hay không). Mô hình này được đánh giá bởi độ đo P (độ chính xác), từ đó ta có thể tiến hành cải thiện mô hình dựa vào độ đo P này.]

Các bước cần thực hiện để cài đặt được một mô hình Machine Learning:

1. Chuẩn bị dữ liệu (Data preparation)

– Data exploration

– Visualization

– Preprocessing data

– Feature engineering


2. Xây dựng, lựa chọn và đánh giá mô hình (Algorithm)

– Supervised learning

– Unsupervised learning

– Reinforment learning

– Train, validation, test splitting

– Evaluation metrics (Accuracy, precision, recall, RMSE)


3. Mô hình thu được (Model)




Kinh nghiệm của tác giả:

[Người mới bắt đầu học Machine Learning thường giải quyết vấn đề theo thứ tự:

– Bài toán này là supervised hay unsupervised?

– Trong supervised thuật toán nào là state-of-the-art?

– Áp dụng Deep Learning ngay lập tức mà không quan tâm đến data như thế nào?

– Làm thực nghiệm rất nhiều và failed !!

Nhưng thực tế, nên áp dụng cách giải quyết khác để quá trình nghiên cứu được chặt chẽ hơn:

– Bài toán cần giải là gì?

– Dữ liệu cần sử dụng vào bài toán là gì?

– Exploring dữ liệu xem có gì bất thường không (missing, duplicate, outlier,…v.v)?

– Visualize để có hình dung tốt về bản chất của dữ liệu hiện tại

– Tìm kiếm mô hình và giải pháp phù hợp

– Prototype mô hình đơn giản để làm baseline

– Áp dụng các mô hình Machine Learning tiềm năng nhất để giải bài toán

– Làm feature engineering và lặp lại bước xây dựng mô hinh

– Scale cho Big Data

– Deploy lên production server]


2.3       Kiến thức cần chuẩn bị


Toán

– Đại số tuyến tính

– Giải tích

– Toán rời rạc

– Xác suất thống kê

Kĩ thuật

– Thực tế, xây dựng mô hình Machine Learning chỉ là một công đoạn nhỏ trong toàn bộ quy trình (còn có tiền xử lý, phân tích dữ liệu, feature engineering,…v.v)

– Nếu cần có một công việc liên quan, bạn có thể bắt đầu với vị trí Data Analyst/ Data Engineer (nếu bạn code giỏi). Nhờ làm việc cùng với Data Scientists bạn sẽ có cơ hội học hỏi nhều hơn với các dự án trong thực tế. Dần dần phát triển bản thân mình trong lĩnh vực này

– Ngôn ngữ lập trình Python


</////01
-----------
Cập nhật [8/5/2019]
-----------
Xem thêm: Tổng hợp các bài viết về Deep Learning
Xem thêm: Ngu ngơ học Deep Learning (2) -