Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update lesson 10 #38

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions docs/tutorial/python/10.ml.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "e48e4783-3013-4b8e-8653-b1db847e1741",
"metadata": {},
"source": [
"# Bài 8: Làm quen với Học máy"
]
},
{
"cell_type": "markdown",
"id": "71c8ded8-9527-4c5b-ad9f-2940de08854e",
"metadata": {},
"source": [
"## I. GIỚI THIỆU VỀ HỌC MÁY\n",
"\n",
"### 1. Lịch sử phát triển\n",
"\n",
"![](https://blogs.nvidia.com/wp-content/uploads/2016/07/Deep_Learning_Icons_R5_PNG.jpg.png)\n",
"\n",
"Alan Turing, có thể coi là cha đẻ của ngành trí tuệ nhân tạo, một bộ não cực kì vĩ đại, người được xem là đã cứu hàng ngàn sinh mạng vô tội trong Thế chiến thứ 2 trước quân phát xít Đức khi \"bẻ khóa\" thành công các thông điệp của quân đội Đức được mã hóa bởi Enigma. Công trình nghiên cứu của Alan có thể coi là khởi nguồn cho ngành AI những năm 1950. \n",
"\n",
"Học máy mới được ra đời những năm 1980 nhờ những phát hiện, những nghiên cứu sâu hơn trong thuật toán và từ 2010 trở lại đây, Học sâu (deep learning) bắt đầu phát triển và bùng nổ với khái niệm mô hình học máy trên mạng neurons. Học sâu cũng chính là công nghệ lõi đằng sau những sản phẩm săn đón hiện thời như xe tự hành Tesla, chấm điểm công dân Trung Quốc, hay những sản phẩm trong đời sống hàng ngày của mình Siri, Google Translate, ...\n",
"\n",
"### 2. Học máy là gì?\n",
"\n",
"Học máy là một tập hợp các phương pháp mà máy tính sử dụng để thực hiện và cải thiện các dự đoán hoặc hành vi dựa trên dữ liệu.\n",
"> A set of methods that computers use to make and improve predictions or behaviors based on data.\n",
"\n",
"Nhiều người cho rằng Học máy cũng không phải là cái gì cao siêu cả, nó chỉ đơn thuần là tập hợp các câu lệnh if - else nhưng gọi bằng cái tên nghe bắt tai vậy thôi? Dưới đây là 1 hình ảnh so sánh vui để giúp các bạn hiểu sự khác biệt giữa 1 chương trình phần mềm thông thường và chương trình học máy.\n",
"\n",
"![](https://christophm.github.io/interpretable-ml-book/images/programing-ml.png)\n",
"\n",
"- Với những code bình thường, thì ta cần cho máy tính những hướng dẫn cụ thể (nếu trời mưa thì phải mang ô, nếu trời mưa thì phải kéo quần áo vào trong nhà, ...)\n",
"\n",
"- Với Học máy, ta chỉ cần đưa vào dữ liệu có nhãn hoặc không có nhãn thì Học máy sẽ suy ra cho ta những cái mối quan hệ, những cái chỉ dẫn để giải quyết vấn đề.\n",
"\n",
"|Input|Types|Output|\n",
"|-|-|-|\n",
"|Data, Rules|Classical Programming|Answers|\n",
"|Data (with or without Answers)|Machine Learning|Rules|\n",
"\n",
"Tham khảo các khoá học về Học máy và Học sâu tại: \n",
"- [Machine Learning](https://www.coursera.org/learn/machine-learning)\n",
"- [Deep Learning](https://www.coursera.org/specializations/deep-learning)\n",
"\n",
"## II. CÁC KIỂU BÀI TOÁN TRONG HỌC MÁY\n",
"\n",
"![](https://www.7wdata.be/wp-content/uploads/2020/06/1FUZS9K4JPqzfXDcC83BQTw.png)\n",
"\n",
"### 1. Học máy có giám sát (Supervised Learning)\n",
"\n",
"Học máy có giám sát là phương pháp sử dụng những dữ liệu đã được gán nhãn từ trước để luận suy ra mối quan hệ giữa dữ liệu đầu vào và kết quả đầu ra. Các dữ liệu này được gọi là dữ liệu huấn luyện và chúng là cặp các đầu vào - đầu ra. Học có giám sát sẽ xem xét các tập huấn luyện này để từ đó có thể đưa ra dự đoán đầu ra cho 1 đầu vào mới chưa gặp bao giờ. Về mặt toán học, ta có thể hiểu:\n",
"\n",
"- Ma trận X tương ứng tập mẫu (samples = examples = observations = records)\n",
"- Ma trận Y tương ứng tập nhãn\n",
"\n",
"Ví dụ, những bài toán có dữ liệu lịch sử và có nhãn cho từng dữ liệu có thể kể đến phần loại thư rác (spam/ not spam), chấm điểm tín dụng (good credit/ bad credit), ... \n",
"\n",
"Học máy có giám sát có thể chia thành 2 nhóm:\n",
"\n",
"- Bài toán phân loại (Classification) xác định 1 hoặc nhiều nhãn cho các mẫu: \n",
" - Phân loại nhị phân (Binary classification): ví dụ như khách hàng có gian lận hay không (fraud detection), khách hàng có ở lại không hay rời bỏ dịch vụ (customer retention vs customer churn),...\n",
" - Phân loại đa lớp (Multi-class classification): số lượng nhãn nhiều hơn 2, ví dụ như phân loại ảnh (image classification), nhìn vào ảnh chụp Xray chẩn đoán xem bệnh nhân có ung thư không (diagnostics)...\n",
" - Thuật toán: Logistic Regression, Decision Trees, SVM, Naive Bayes, K-NN, ...\n",
"\n",
"\n",
"- Bài toán hồi quy (Regression): ví dụ giá cổ phiểu ngày mai tăng lên hay giảm bao nhiều đồng, căn nhà ấy với diện tích ấy với số phòng ấy tại địa điểm ấy thì thị trường sẽ chấp nhận khoảng giá bao nhiêu để có thể giao bán, giá trị vòng đời khách hàng ...\n",
" - Thuật toán: Linear Regression, Ridge/Lasso Regression, ...\n",
" \n",
"### 2. Học máy phi giám sát (Unsupervised Learning)\n",
"\n",
"Khác với các bài toán học máy có giám sát, học phi giám sát sử dụng những dữ liệu chưa được gán nhãn từ trước để luận suy. Phương pháp này thường được sử dụng để tìm cấu trúc của tập dữ liệu tuy nhiên lại không có phương pháp đánh giá được cấu trúc tìm ra được là đúng hay sai. Ví dụ như phân cụm dữ liệu, triết xuất thành phần chính của một chất nào đó. Về mặt toán học, ta không có Y mà chỉ có ma trận X tương ứng các quan sát.\n",
"\n",
"Học máy phi giám sát có thể chia thành 2 nhóm:\n",
"\n",
"- Bài toán phân cụm (Clustering): bài toán này không bao giờ có 1 đáp án duy nhất, luôn luôn có nhiều đáp án, và thậm chí đáp án tối ưu cho năm nay sẽ khác đáp án tối ưu cho năm sau hoàn toàn, ...\n",
" - Thuật toán: K-Means, DBScan, Mean-Shift, ...\n",
"\n",
"- Bài toán giảm chiều dữ liệu (Dimension Reduction) sử dụng rất nhiều trong xử lý ảnh. \n",
" - Thuật toán: t-SNE, PCA, SVD, LDA, ...\n",
"\n",
"### 3. Học tăng cường (Reinforcement Learning)\n",
"\n",
"Học tăng cường có thể coi người em sinh sau đẻ muộn so với anh cả Học máy có giám sát và anh hai Học máy phi giám sát nhưng đây sẽ là tương lai của học máy sau này. Phương pháp học tăng cường tập trung vào việc làm sao để cho 1 tác tử trong môi trường có thế hành động sao cho lấy được phần thưởng nhiều nhất có thể. Khác với học có giám sát, nó không có cặp dữ liệu gán nhãn trước làm đầu vào và cũng không có đánh giá các hành động là đúng hay sai. Cơ chế của học tăng cường giống như khi ta huấn luyện 1 con khỉ, con khỉ làm đúng thì mình thưởng, sai thì mình tét mông và ở đây, ta sử dụng toán học để tạo ra những phần thưởng huấn luyện để con khỉ biết làm đúng theo mong muốn của mình. \n",
"\n",
"Một trong những thành tựu tiêu biểu của Học tăng cường có thể kể đến AlphaGo thắng trong cờ vua, Xe tự hành Tesla của Elon Musk... Các bạn có thể tham khảo 1 số thuật toán như Q-Learning, Deep Q-Network,... \n",
"\n",
"Học tăng cường được đánh giá sẽ là ngành mũi nhọn trong thời gian tới, tuy nhiên phần toán bên dưới cũng như code rất nặng và khó, hiện tại nhiều bên đang nghiên cứu nhưng thực sự ở thời điểm hiện tại ở Việt Nam chưa có 1 sản phẩm cụ thể nào đã đưa vào production.\n",
"\n",
"Trong bài tiếp theo, chúng ta sẽ cũng nhau thực hành làm quen với bài toán học máy có giám sát sử dụng scikit-learn API, một thư viện phổ biến khi làm việc với học máy ở tầm sơ và trung cấp."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading