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.
Xem hình minh họa (nguồn: https://towardsdatascience.com/cousins-of-artificial-intelligence-dda4edc27b55),
– [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)
(Xem hình minh họa, nguồn: https://ongxuanhong.wordpress.com/2015/06/10/machine-learning-la-gi/#more-77)
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: Ngu ngơ học Deep Learning (2) -