Những năm gần đây, AI (Artificial Intelligence) và cụ thể hơn Machine Learning nổi lên như một bằng chứng cho cuộc cách mạng công nghiệp lần thứ tư. Trí tuệ nhân tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra như: Xe tự hành Tesla, 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 Netfix, máy chơi cờ vây AlphaGo của Google.
Các bài viết liên quan:
Machine learning là một tập con của AI. Nó có khả năng tự học hỏi dựa trên dữ liệu được đưa vào và chúng ta cần phải làm sạch dữ liệu và tìm mô hình đúng đắn. Ứng dụng của học máy những năm gần đây xuất hiện ở khắp mọi nơi từ việc nhận dạng khuôn mặt, vân tay, cử chỉ, giọng nói, xử lí các mô hình ảnh y khoa,… Học máy có thể ứng dụng hầu hết các loại dữ liệu từ cấu trúc (bảng số liệu) và cả dữ liệu phi cấu trúc (hình ảnh, văn bản, tính hiệu âm thanh).
Machine learning là gì?
Machine learning là một khái niệm quan trọng trong lĩnh vực Trí Tuệ Nhân Tạo (AI). Đây là cách mà hệ thống máy tính có khả năng tự động học hỏi và đưa ra các quyết định mà không cần sự can thiệp từ con người hoặc các quy tắc lập trình cứng.
Cách hoạt động của machine learning bắt đầu từ việc thu thập và xử lý dữ liệu. Máy tính sẽ học từ dữ liệu này và nhận biết các mẫu và thông tin quan trọng. Sau đó, thông qua việc so sánh các mẫu và thực hiện phân tích chi tiết, máy tính có thể đưa ra các quyết định hoặc dự đoán về tương lai.
Trong machine learning, quá trình học được thực hiện thông qua việc áp dụng các thuật toán và mô hình. Máy tính xây dựng các mô hình này dựa trên dữ liệu và chúng có thể được sử dụng để giải quyết nhiều loại vấn đề, bao gồm phân loại (classification), dự đoán (prediction), và hồi quy (regression).
Tóm lại, machine learning cho phép máy tính học hỏi và tự động cải thiện khả năng của nó từ dữ liệu, từ đó giúp máy tính thực hiện các nhiệm vụ thông minh và đưa ra các quyết định quan trọng. Đây là một phần quan trọng của lĩnh vực AI và có rất nhiều ứng dụng thú vị trong thế giới thực.
Xem thêm cách học machine learning
Tại sao lại sử dụng Máy học?
Thế giới hiện đại đang trải qua một sự phát triển nhanh chóng, và với sự phát triển đó, nhu cầu và yêu cầu của con người cũng ngày càng tăng. Cuộc cách mạng công nghiệp thứ tư, tập trung vào sự cách mạng về dữ liệu, đang diễn ra.
Để chúng ta có thể rút ra thông tin chi tiết và ý nghĩa từ lượng dữ liệu này, và cũng để học hỏi cách con người và hệ thống tương tác với dữ liệu, chúng ta cần các thuật toán tính toán mạnh mẽ. Những thuật toán này giúp chúng ta trích xuất giá trị từ dữ liệu một cách hiệu quả và mang lại các kết quả có ích.
Machine learning đã thay đổi cách làm việc trong nhiều ngành như y học, chăm sóc sức khỏe, sản xuất, ngân hàng và nhiều lĩnh vực khác. Nó đã trở thành một phần thiết yếu của nền công nghiệp hiện đại.
Dữ liệu là một tài nguyên mạnh mẽ, và để khai thác hết tiềm năng của dữ liệu này, cùng với sự gia tăng đáng kể về sức mạnh tính toán, machine learning đã thêm một khía cạnh mới vào cách chúng ta tiếp thu thông tin.
Machine learning đã xuất hiện ở khắp mọi nơi. Các thiết bị điện tử bạn sử dụng hàng ngày, các ứng dụng trở nên thông minh hơn, và tất cả đều được hỗ trợ bởi các thuật toán mạnh mẽ của machine learning.
Ví dụ, Google có khả năng đề xuất kết quả tìm kiếm phù hợp dựa trên thói quen duyệt web của bạn. Tương tự, Netflix có thể gợi ý các bộ phim hoặc chương trình mà bạn có thể thích dựa trên lịch sử xem của bạn.
Hơn nữa, machine learning đã tạo điều kiện thuận lợi cho việc tự động hóa các tác vụ dư thừa mà trước đây cần phải làm bằng lao động tay chân. Tất cả điều này là kết quả của việc có một lượng lớn dữ liệu được tạo ra hàng ngày.
Machine learning cho phép chúng ta hiểu dữ liệu này và cung cấp các dự đoán ổn định và chính xác.
Học máy hoạt động như thế nào?
Với sự gia tăng không ngừng của dữ liệu, có nhu cầu có hệ thống có khả năng xử lý tải lớn của dữ liệu này. Machine learning models như Deep Learning cho phép chúng ta xử lý lượng lớn dữ liệu này với độ chính xác cao trong việc đưa ra dự đoán.
Machine learning đã làm thay đổi cách chúng ta nhận thức thông tin và cung cấp kiến thức khác biệt mà chúng ta có thể thu được từ dữ liệu.
Những thuật toán machine learning này sử dụng các mẫu trong dữ liệu đào tạo để thực hiện phân loại và dự đoán trong tương lai. Khi có dữ liệu mới được đưa vào mô hình machine learning, nó áp dụng các mẫu đã học được từ dữ liệu cũ để đưa ra các dự đoán. Dựa trên độ chính xác cuối cùng, chúng ta có thể tối ưu hóa mô hình của mình bằng cách sử dụng nhiều phương pháp tiêu chuẩn hóa khác nhau.
Bằng cách này, machine learning học cách thích ứng với các dữ liệu mới và mang lại các kết quả tốt hơn. Tiếp theo trong hướng dẫn machine learning, chúng ta sẽ tìm hiểu về các loại machine learning khác nhau.
Data set
Trong Machine Learning (Học Máy), một “data set” (bộ dữ liệu) là một tập hợp các dữ liệu thực tế hoặc ảo được sử dụng để đào tạo và kiểm tra các mô hình máy học. Data set này thường bao gồm hai phần chính:
- Tập dữ liệu đào tạo (Training Data): Đây là một phần của data set được sử dụng để đào tạo mô hình máy học. Tập dữ liệu này thường bao gồm các cặp (đầu vào, đầu ra) hoặc các mẫu dữ liệu với nhãn. Trong quá trình đào tạo, mô hình học từ các mẫu này để có thể thực hiện dự đoán hoặc phân loại dữ liệu mới sau này.
- Tập dữ liệu kiểm tra (Test Data): Đây là một phần khác của data set được sử dụng để kiểm tra hiệu suất của mô hình máy học sau khi nó đã được đào tạo. Dữ liệu kiểm tra thường không được sử dụng trong quá trình đào tạo, và mô hình không biết trước kết quả của các mẫu này. Dữ liệu kiểm tra giúp đánh giá khả năng tổng quát hóa của mô hình, tức là khả năng của nó trong việc dự đoán dữ liệu mới mà nó chưa từng thấy.
Data set có thể đa dạng về kích thước và độ phức tạp tùy thuộc vào vấn đề cụ thể mà bạn đang cố gắng giải quyết. Chúng có thể bao gồm dữ liệu số học, hình ảnh, văn bản, âm thanh hoặc bất kỳ loại dữ liệu nào khác phù hợp với mục tiêu của bài toán Machine Learning.
Data set là một phần quan trọng của quá trình Machine Learning và chất lượng của data set có thể ảnh hưởng đáng kể đến hiệu suất của mô hình. Điều này bao gồm việc thu thập dữ liệu chính xác, làm sạch dữ liệu, và phân chia data set thành tập dữ liệu đào tạo và kiểm tra một cách hợp lý để đảm bảo rằng mô hình được đào tạo và đánh giá một cách đáng tin cậy.
No Free Lunch Rule
Quy tắc “No Free Lunch” (NFL) trong Machine Learning là một khái niệm quan trọng để hiểu rằng không có một thuật toán hoặc mô hình nào có thể làm tốt trong tất cả các tình huống hoặc với tất cả các bài toán Machine Learning. Khái niệm này có một số điểm quan trọng sau:
- Không có một giải pháp tổng quát: NFL Rule đề xuất rằng không có thuật toán hoặc mô hình nào có thể hoạt động tốt trên mọi bài toán Machine Learning. Mỗi bài toán đều có các đặc điểm riêng biệt, và thuật toán nào đó có thể hiệu quả với một loại bài toán nhất định nhưng không phải với các loại khác.
- Tùy chỉnh theo bài toán: Điều quan trọng là phải tùy chỉnh thuật toán hoặc mô hình cho từng bài toán cụ thể. Điều này bao gồm việc chọn loại thuật toán, điều chỉnh siêu tham số (hyperparameters), và thậm chí cả việc xử lý dữ liệu trước khi đưa vào mô hình.
- Sự quan trọng của kiến thức chuyên môn: Hiểu rõ bản chất của bài toán và có kiến thức chuyên môn về lĩnh vực đó là quan trọng. Điều này giúp bạn lựa chọn đúng thuật toán và hiệu chỉnh mô hình một cách hiệu quả.
- Thử nghiệm và đánh giá: Không có cách nào khác, bạn cần thử nghiệm nhiều thuật toán và mô hình trên tập dữ liệu cụ thể và đánh giá kết quả để tìm ra cái nào hoạt động tốt nhất cho bài toán cụ thể đó.
Ví dụ cụ thể về NFL Rule là: một thuật toán Decision Tree có thể làm tốt trong việc phân loại dữ liệu có cấu trúc cây quyết định (decision tree-like), nhưng có thể hoàn toàn không hiệu quả khi áp dụng vào dữ liệu hình ảnh. Trong khi đó, một mô hình Convolutional Neural Network (CNN) có thể thích hợp hơn cho việc xử lý hình ảnh.
Do đó, NFL Rule nhấn mạnh sự quan trọng của việc tùy chỉnh và lựa chọn đúng công cụ cho từng bài toán Machine Learning cụ thể thay vì tin rằng có một giải pháp tổng quát cho mọi tình huống.
Designing và learning
Trong lĩnh vực Machine Learning, “Designing” (Thiết kế) và “Learning” (Học) đề cập đến hai phần quan trọng của quá trình xây dựng và triển khai mô hình Machine Learning.
- Designing (Thiết kế):
- Chọn thuật toán hoặc kiến trúc mô hình: Thiết kế bắt đầu bằng việc lựa chọn thuật toán hoặc kiến trúc mô hình phù hợp với bài toán cụ thể của bạn. Ví dụ, bạn có thể chọn sử dụng một mô hình Linear Regression cho bài toán dự đoán giá nhà hoặc một mô hình Convolutional Neural Network (CNN) cho việc nhận diện hình ảnh.
- Chuẩn bị dữ liệu: Dữ liệu là yếu tố quan trọng nhất trong Machine Learning. Bạn cần thu thập, xử lý và làm sạch dữ liệu trước khi đưa vào mô hình. Điều này bao gồm việc xử lý dữ liệu bị thiếu, biến đổi dữ liệu thành định dạng thích hợp cho mô hình, và chia dữ liệu thành tập huấn luyện và tập kiểm tra.
- Tạo một mô hình hoặc mạng: Sau khi lựa chọn thuật toán, bạn cần xây dựng một mô hình hoặc mạng dựa trên kiến trúc bạn đã chọn. Điều này bao gồm việc định nghĩa kiến trúc mạng, số lượng lớp, số lượng nơ-ron, và cấu hình siêu tham số.
- Learning (Học):
- Huấn luyện mô hình: Sau khi bạn đã thiết kế mô hình và chuẩn bị dữ liệu, bạn sẽ huấn luyện mô hình bằng cách đưa dữ liệu huấn luyện vào mô hình. Quá trình này thường là việc tối ưu hóa các tham số của mô hình để nó có khả năng dự đoán chính xác trên dữ liệu mới.
- Đánh giá mô hình: Sau khi huấn luyện xong, bạn cần đánh giá hiệu suất của mô hình bằng cách sử dụng tập kiểm tra hoặc tập kiểm định. Điều này giúp xác định xem mô hình có thể tổng quát hóa tốt trên dữ liệu mới không. Các phép đo hiệu suất thường bao gồm độ chính xác, độ mất mát, F1-score, và nhiều phép đo khác tùy theo bài toán cụ thể.
- Tinh chỉnh (Fine-tuning): Sau khi bạn đã học và đánh giá mô hình ban đầu, có thể cần phải tinh chỉnh mô hình bằng cách thay đổi siêu tham số, thêm dữ liệu mới, hoặc thay đổi kiến trúc để cải thiện hiệu suất trên bài toán cụ thể.
- Triển khai và duy trì: Cuối cùng, sau khi bạn đã thiết kế, học, và tinh chỉnh mô hình, bạn có thể triển khai nó vào môi trường thực tế để sử dụng trong ứng dụng thực tế. Điều này thường bao gồm việc tích hợp mô hình vào hệ thống tồn tại và duy trì nó để đảm bảo nó hoạt động hiệu quả.
Tóm lại, quá trình Machine Learning bao gồm cả việc thiết kế mô hình (Designing) và việc học và tinh chỉnh mô hình (Learning) để giải quyết bài toán cụ thể. Quá trình này thường diễn ra theo chu kỳ lặp đi lặp lại để cải thiện hiệu suất của mô hình.
Cấu trúc của learning
Quá trình “Learning” trong Machine Learning bao gồm nhiều phần quan trọng, và cấu trúc của nó có thể được tổ chức như sau:
- Chuẩn bị dữ liệu:
- Thu thập dữ liệu: Bước đầu tiên là thu thập dữ liệu liên quan đến bài toán mà bạn muốn giải quyết. Dữ liệu có thể được thu thập từ nhiều nguồn khác nhau như cơ sở dữ liệu, tệp tin, hoặc các nguồn dữ liệu trực tuyến.
- Xử lý và làm sạch dữ liệu: Dữ liệu thường không hoàn hảo và cần phải được xử lý và làm sạch trước khi đưa vào mô hình. Điều này bao gồm việc xử lý các giá trị bị thiếu, loại bỏ dữ liệu nhiễu, và biến đổi dữ liệu thành định dạng thích hợp cho mô hình.
- Chia dữ liệu:
- Tạo tập huấn luyện và tập kiểm tra: Dữ liệu cần được chia thành hai phần chính: tập huấn luyện (training set) và tập kiểm tra (test set). Tập huấn luyện được sử dụng để huấn luyện mô hình, trong khi tập kiểm tra được sử dụng để đánh giá hiệu suất của mô hình.
- Lựa chọn mô hình hoặc thuật toán:
- Lựa chọn kiến trúc mô hình hoặc thuật toán phù hợp với bài toán cụ thể. Sự lựa chọn này dựa trên kiến thức về loại dữ liệu và mục tiêu của bạn.
- Huấn luyện mô hình:
- Đưa tập huấn luyện vào mô hình và bắt đầu quá trình học. Mô hình sẽ tối ưu hóa các tham số của nó để phù hợp với dữ liệu huấn luyện và học được cách dự đoán đúng trên dữ liệu này.
- Đánh giá mô hình:
- Sử dụng tập kiểm tra để đánh giá hiệu suất của mô hình. Các phép đo hiệu suất như độ chính xác, độ mất mát, F1-score, và confusion matrix có thể được sử dụng để đánh giá.
- Tinh chỉnh mô hình:
- Dựa trên kết quả đánh giá, bạn có thể thực hiện tinh chỉnh mô hình bằng cách điều chỉnh siêu tham số hoặc thay đổi kiến trúc mô hình để cải thiện hiệu suất.
- Triển khai và duy trì:
- Sau khi bạn đã học được một mô hình tốt, bạn có thể triển khai nó vào môi trường thực tế để sử dụng. Quá trình này có thể liên quan đến việc tích hợp mô hình vào ứng dụng hoặc hệ thống tồn tại và duy trì nó để đảm bảo nó hoạt động đúng cách.
- Giám sát và cập nhật:
- Mô hình Machine Learning cần được giám sát sau khi triển khai để theo dõi hiệu suất và cập nhật khi cần thiết. Dữ liệu mới có thể được thu thập để cải thiện mô hình theo thời gian.
- Quản lý dự án:
- Quá trình “Learning” cần được quản lý cẩn thận bằng cách sử dụng các phương pháp quản lý dự án để đảm bảo tiến độ và hiệu suất của dự án Machine Learning.
Quá trình “Learning” trong Machine Learning là một chu kỳ lặp đi lặp lại, và việc tối ưu hóa và cải thiện mô hình liên tục là quan trọng để đảm bảo rằng nó hoạt động hiệu quả trên dữ liệu mới và thách thức mới.
Tiêu chí tối ưu hóa
Trong Machine Learning và tối ưu hóa, tiêu chí tối ưu hóa là mục tiêu hoặc hàm mục tiêu mà bạn cố gắng tối ưu hóa để đưa ra quyết định tốt nhất hoặc tìm kiếm giá trị tối ưu. Tiêu chí này thường thể hiện mục đích cụ thể của vấn đề bạn đang giải quyết. Dưới đây là một số ví dụ về các tiêu chí tối ưu hóa phổ biến:
- Hàm Mất Mát (Loss Function): Trong học máy, hàm mất mát là một tiêu chí quan trọng để đánh giá hiệu suất của mô hình. Mục tiêu là tối ưu hóa hàm mất mát, tức là giảm thiểu sai số giữa dự đoán của mô hình và giá trị thực tế.
- Độ chính xác (Accuracy): Trong bài toán phân loại, độ chính xác là tiêu chí tối ưu hóa. Mục tiêu là tối đa hóa tỷ lệ các dự đoán đúng.
- Hồi quy (Regression): Trong bài toán hồi quy, tiêu chí tối ưu hóa thường là giảm thiểu sai số giữa dự đoán và giá trị thực tế. Thường sử dụng hàm bình phương của sai số (hàm mất mát bình phương) làm tiêu chí.
- Phân cụm (Clustering): Trong bài toán phân cụm, mục tiêu là tìm cách phân chia dữ liệu thành các nhóm sao cho sự tương tự bên trong nhóm là lớn nhất, và sự khác biệt giữa các nhóm là lớn nhất.
- Thu gọn kích thước (Dimensionality Reduction): Trong nhiều trường hợp, tiêu chí tối ưu hóa có thể là việc giảm thiểu số chiều của dữ liệu (dimensionality reduction) sao cho mất ít thông tin nhất có thể.
- Lợi nhuận (Profit): Trong các bài toán kinh doanh, lợi nhuận là một tiêu chí quan trọng. Mục tiêu là tối ưu hóa lợi nhuận bằng cách điều chỉnh các quyết định hoặc chiến lược.
- Tối ưu hóa tài nguyên (Resource Optimization): Trong các bài toán quản lý tài nguyên như quản lý cung ứng, tiêu chí tối ưu hóa có thể liên quan đến việc tối ưu hóa việc sử dụng tài nguyên như nguyên liệu, thời gian, và công sức.
- Chất lượng mô hình (Model Quality): Trong việc chọn mô hình Machine Learning tốt nhất, tiêu chí tối ưu hóa có thể liên quan đến chất lượng dự đoán, sự đơn giản của mô hình, và thời gian huấn luyện.
Tiêu chí tối ưu hóa cụ thể sẽ phụ thuộc vào bài toán cụ thể bạn đang giải quyết và mục tiêu của bạn. Điều quan trọng là hiểu rõ tiêu chí này và sử dụng nó để hướng dẫn việc tạo mô hình và tối ưu hóa kết quả.
Chiến lược của supervised learning
Supervised learning là một trong những phương pháp quan trọng và phổ biến nhất trong Machine Learning. Nó dựa trên việc sử dụng dữ liệu huấn luyện (training data) để xây dựng mô hình có khả năng dự đoán hoặc phân loại dữ liệu mới mà nó chưa từng thấy trước đó. Dưới đây là các bước chi tiết trong chiến lược của supervised learning:
- Thu thập dữ liệu huấn luyện: Bước đầu tiên trong supervised learning là thu thập dữ liệu huấn luyện. Dữ liệu này phải bao gồm các ví dụ với dữ liệu đầu vào (features) và kết quả mong muốn (labels) đã biết trước. Ví dụ, trong bài toán phân loại email là spam hay không, dữ liệu huấn luyện sẽ chứa các email (đầu vào) và nhãn cho biết chúng có phải là spam hay không (kết quả mong muốn).
- Chuẩn bị dữ liệu: Dữ liệu huấn luyện thường cần được tiền xử lý để loại bỏ nhiễu, chuẩn hóa, hoặc mã hóa các đặc trưng. Điều này giúp mô hình học được thông tin chính xác từ dữ liệu.
- Chọn mô hình học máy: Bạn phải chọn một loại mô hình học máy phù hợp cho bài toán cụ thể của bạn. Ví dụ, nếu bạn đang làm việc trên một bài toán phân loại, bạn có thể chọn mô hình như Logistic Regression, Random Forest, hoặc Neural Network.
- Huấn luyện mô hình: Dữ liệu huấn luyện sẽ được sử dụng để huấn luyện mô hình. Mô hình sẽ học cách ánh xạ từ dữ liệu đầu vào sang các dự đoán hoặc phân loại tương ứng với nhãn mong muốn.
- Đánh giá mô hình: Mô hình sau khi được huấn luyện cần phải được đánh giá để đảm bảo rằng nó hoạt động tốt trên dữ liệu kiểm tra (test data) mà nó chưa từng thấy. Các phương pháp đánh giá bao gồm độ chính xác, ma trận nhầm lẫn (confusion matrix), và các độ đo khác tùy thuộc vào loại bài toán.
- Tinh chỉnh mô hình: Nếu mô hình không đạt được hiệu suất mong muốn, bạn có thể cần phải tinh chỉnh các siêu tham số (hyperparameters) hoặc thay đổi kiến trúc của mô hình. Quá trình này được gọi là tinh chỉnh siêu tham số (hyperparameter tuning).
- Sử dụng mô hình đã huấn luyện: Sau khi mô hình hoạt động tốt, bạn có thể sử dụng nó để dự đoán hoặc phân loại dữ liệu mới mà bạn cung cấp.
- Triển khai mô hình: Cuối cùng, sau khi mô hình đã được xây dựng và kiểm tra, bạn có thể triển khai nó trong ứng dụng thực tế để thực hiện dự đoán hoặc phân loại tự động.
Lưu ý rằng supervised learning chỉ hoạt động khi bạn có dữ liệu huấn luyện với nhãn cho các ví dụ. Nếu không có nhãn, bạn cần phải sử dụng các phương pháp học không giám sát hoặc học tăng cường.
Phân loại thuật toán trong Machine learning
Có hai cách để chúng ta phân loại các thuật toán trong máy học một là chúng ta dựa vào phương thức học và hai là chúng ta dựa vào chức năng của thuật toán.
Khi ta dựa vào phương thức học thì thuật toán học máy của chúng ta được chia lại thành bốn loại như:
- Học tăng cường (reinforcement learning)
- Học có giám sát (supervised learning)
- Học không giám sát (unsupervised learning)
- Học bán giám sát (semi-supervised learning).
Học tăng cường (reinforcement learning)
Học tăng cường (reinforcement learning) là học củng cố hay tăng cường, là lĩnh vực liên quan đến dạy cho máy (agent) thực hiện tốt một nhiệm vụ (task) bằng cách tương tác với môi trường (environment) thông qua hành động (action) và nhận được kết quả (reward).
Cách học như thế này tương tự như con người học từ môi trường xung quanh bằng cách thử sai, ví dụ khi mùa đông đến con người thường tiếp cận bếp lửa để sưởi ấm lúc đó ta cảm nhận được khi càng tiến lại gần thì càng ấm ngược lại càng xa thì sẽ ít ấm hơn, và khi chúng ta tiếp cận đến lúc chạm vào bếp lửa thì chúng ta sẽ bị bỏng. Trong ví dụ trên, reward là kết quả của việc ta thực hiện hành động (action) tiếp cận càng gần bếp lửa.
Trường hợp sử dụng học tăng cường
Hệ thống Trả lời Truy vấn Chủ động (AQA) của Google làm cho sử dụng học tập củng cố. Nó định dạng lại các câu hỏi mà người dùng yêu cầu.
Ví dụ: nếu bạn hỏi bot AQA câu hỏi – “Ngày sinh của Nikola Tesla là gì” thì bot sẽ định dạng lại thành các câu hỏi khác nhau như “Năm sinh của Nikola Tesla là gì”, “Tesla ra đời khi nào?” và “Sinh nhật của Tesla là khi nào”.
Quá trình định dạng lại này sử dụng mô hình trình tự theo trình tự truyền thống, nhưng Google đã tích hợp tính năng Học tập tăng cường vào hệ thống của mình để tương tác tốt hơn với hệ thống môi trường dựa trên truy vấn.
Xem thêm 11 phần mềm machine learning hàng đầu
Học có giám sát (supervised learning)
Học có giám sát (supervised learning) là thuật toán dự đoán đầu ra (outcome) của một dữ liệu (input) dựa trên các cặp dữ liệu đã có sẵn (data, label). Ví dụ thuật toán dò các khuôn mặt trong facebook, facebook sử dụng thuật toán này để chỉ ra các khuôn mặt trong một bức ảnh yêu cầu người dùng có thể gắn tag friend. Việc này ta có cặp dữ liệu có sẵn data và label tương đương với khuôn mặt và tên người đầu ra outcome là một danh tính xác thực, dữ liệu data và label càng lớn thì độ chính xác càng cao.
Học có giám sát được chia thành 2 loại chính như sau: phân loại (classification), hồi quy (regression). Bài toán phân loại (classification) là bài toán khi kết quả đầu ra outcome của các dữ liệu đầu vào input data được phân thành các nhóm.
Ví dụ: phân loại hoa, phân loại màu sắc, phân loại email spam,… Bài toán hồi quy (regression) là bài toán dựa vào các kết quả đầu vào input data và kết quả đầu ra outcome sẽ là một giá trị cụ thể, ví dụ có một căn nhà rộng x m2, có bao nhiêu phòng ngủ và cách thành phố z km thì sẽ có giá là bao nhiêu.
Một số thuật toán thuộc chế độ học có giám sát như sau:
Linear Regression có thể là một thuật toán Machine learning được giám sát trong đó đầu ra dự kiến là liên tục và có độ dốc không đổi. Đó là dự đoán các giá trị trong phạm vi vô tận, (ví dụ: doanh số, giá cả) thay vì cố gắng phân loại chúng thành các danh mục (ví dụ: mèo, chó). Nó được sử dụng bất cứ khi nào chúng ta muốn dự đoán giá trị của một biến được hỗ trợ giá trị của một biến khác.
Biến mà chúng ta muốn dự đoán được đặt tên là biến (hoặc đôi khi là biến kết quả).
Trong Linear Regression, chúng tôi đo lường mối quan hệ tuyến tính giữa hai hoặc nhiều hơn hai biến. Dựa trên mối quan hệ này, chúng tôi thực hiện các dự đoán tuân theo mô hình tuyến tính này.
- Random forest
Random forest có thể là một thuật toán Machine learning linh hoạt, dễ sử dụng, tạo ra kết quả tuyệt vời ngay cả khi không điều chỉnh siêu tham số.
Nó cũng là một trong những thuật toán được sử dụng nhiều nhất, do tính đơn giản và đa dạng (nó thường được sử dụng cho cả nhiệm vụ phân loại và hồi quy).
Random forest là một phương pháp học tập tổng hợp để thực hiện phân loại, hồi quy cũng như các nhiệm vụ khác thông qua việc xây dựng cây quyết định và cung cấp đầu ra dưới dạng một lớp là phương thức hoặc giá trị trung bình của các cây riêng lẻ bên dưới.
- Gradient Boosting
Tăng cường độ dốc có thể là một kỹ thuật máy học cho các bài toán hồi quy và phân loại, tạo ra một mô hình dự đoán trong một nhóm các mô hình dự đoán yếu, điển hình là cây quyết định. Đây là một phương pháp học tập kết hợp là một tập hợp của một số cây quyết định yếu, dẫn đến một bộ phân loại mạnh mẽ.
SVM là bộ phân loại mạnh mẽ được sử dụng để phân loại tập dữ liệu nhị phân thành hai lớp với sự hỗ trợ của siêu máy bay.
Lợi ích của Support vector machine là Hiệu quả trong không gian chiều cao. Vẫn có hiệu quả trong trường hợp số thứ nguyên lớn hơn số lượng mẫu.
Logistic regression có thể là một mô hình thống kê mà ở dạng cơ bản của nó sử dụng một hàm logistic để lập mô hình một biến nhị phân, mặc dù tồn tại nhiều phần mở rộng phức tạp hơn.
Trong phân tích đa biến, Logistic regression (hoặc hồi quy logit) là ước tính các tham số của mô hình logistic (một loại hồi quy nhị phân).
Nó sử dụng đường cong S hình chuông được tạo ra với sự trợ giúp của hàm logit để phân loại dữ liệu thành các lớp tương ứng của chúng.
Artificial Neural Networks được mô phỏng theo bộ não con người và chúng học hỏi từ dữ liệu theo thời gian. Chúng tạo thành một phần lớn hơn nhiều của Machine learning được gọi là Học sâu.
Trường hợp sử dụng học tập có giám sát
Nhận dạng khuôn mặt là một trong những ứng dụng phổ biến nhất của Học có giám sát và cụ thể hơn – ANN.
Convolutional Neural Networks(CNN) là một loại ANN được sử dụng để nhận dạng khuôn mặt của mọi người. Các mô hình này có thể vẽ các đặc điểm từ hình ảnh thông qua các bộ lọc khác nhau. Cuối cùng, nếu có điểm tương đồng cao giữa hình ảnh đầu vào và hình ảnh trong cơ sở dữ liệu, thì kết quả trùng khớp sẽ được cung cấp.
Baidu, công ty công cụ tìm kiếm hàng đầu của Trung Quốc đã và đang đầu tư vào nhận dạng khuôn mặt. Mặc dù họ đã cài đặt hệ thống nhận dạng khuôn mặt trong hệ thống an ninh của mình, nhưng hiện họ đang mở rộng công nghệ này tới các sân bay lớn của Trung Quốc. Baidu sẽ cung cấp cho các sân bay công nghệ nhận dạng khuôn mặt giúp phi hành đoàn và nhân viên tiếp cận.
Do đó, hành khách không phải xếp hàng dài chờ làm thủ tục chuyến bay khi có thể lên máy bay chỉ cần quét khuôn mặt.
Xem thêm các bước xây dựng mô hình machine learning
Học không giám sát (unsupervised learning)
Học không giám sát (unsupervised learning) đây là bài toán mà chúng ta có dữ liệu đầu vào input data mà không biết kết quả đầu ra outcome. Chúng ta chỉ có thể dựa vào những đặc tính của cấu trúc dữ liệu đầu vào mà chúng ta sẽ có thể phân nhóm (clustering) hoặc giảm số chiều (dimension reduction) để dễ tính toán.
Bài toán học không giám sát được chia thành hai loại: Bài toán phân nhóm (clustering), bài toán kết hợp (association). Bài toán phân nhóm (clustering) là bài toán mà ta dựa vào sự liên quan về những đặc tính của dữ liệu đầu vào input data để ta có thể phân chúng thành những mối nhóm khác nhau
Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng, giống như ta cho những đứa trẻ những mảnh giấy có màu sắc khác nhau và rồi tập hợp chúng lại theo từng màu sắc. Bài toán kết hợp (association) là bài toán khi chúng ta muốn tìm ra một quy luật chung cho những dữ liệu cho trước ví dụ những người mua mì gói thường sẽ mua thêm xúc xích, hay khi mua giày sẽ mua thêm vớ.
Trong trường hợp thuật toán học tập không được giám sát, dữ liệu không được gắn nhãn rõ ràng thành các lớp khác nhau, tức là không có nhãn. Mô hình có thể học hỏi từ dữ liệu bằng cách tìm ra các mẫu ẩn.
Các thuật toán Học không giám sát xác định dữ liệu dựa trên mật độ, cấu trúc, các phân đoạn tương tự và các đặc điểm tương tự khác của chúng. Các thuật toán học không giám sát dựa trên Học Hebbian.
Phân tích cụm là một trong những kỹ thuật được sử dụng rộng rãi nhất trong học tập có giám sát.
Các thuật toán Học không giám sát.
Clustering, còn được gọi là phân tích cụm, là một kỹ thuật nhóm các tập hợp các đối tượng tương tự trong cùng một nhóm mà khác với các đối tượng trong nhóm khác.
Một số kỹ thuật phân cụm cơ bản như sau:
- K-means
Mục đích của thuật toán phân cụm k-mean là phân vùng n quan sát trong dữ liệu thành k cụm sao cho mỗi quan sát thuộc cụm có giá trị trung bình gần nhất.
Đây là nguyên mẫu của cụm.
Đây là một phương pháp phân cụm để nhóm dữ liệu dựa trên mật độ. Nó nhóm lại với nhau các điểm được cho trong không gian và đánh dấu các điểm khác biệt trong vùng mật độ thấp.
- Hierarchical clustering
Trong hình thức phân cụm này, một hệ thống phân cấp của các cụm được xây dựng.
- Anomaly Detection
Kỹ thuật Phát hiện bất thường phát hiện các điểm khác thường trong dữ liệu không được gắn nhãn theo giả định rằng hầu hết các ví dụ dữ liệu là bình thường bằng cách quan sát các trường hợp phù hợp với phần còn lại của tập dữ liệu.
- Autoencoders
Mã tự động là một loại ANN được sử dụng trong Học không giám sát để học biểu diễn. Chúng được sử dụng để làm biến dạng và giảm kích thước.
- Deep Belief Network
Nó là một mô hình graphical model cũng là một lớp mạng nơ-ron được thiết kế cho việc học tập không giám sát. Nó khác với kiểu mạng nơ-ron được giám sát ở chỗ nó cấu trúc lại một cách có xác suất các đầu vào của mình để hoạt động như các bộ phát hiện tính năng.
- Principal Component Analysis
Nó là một lớp mô hình học tập không giám sát được sử dụng để giảm kích thước của dữ liệu.
Trường hợp sử dụng học tập không giám sát
Một trong những kỹ thuật học tập không giám sát phổ biến nhất là phân cụm. Sử dụng tính năng phân nhóm, các doanh nghiệp có thể nắm bắt các phân khúc khách hàng tiềm năng để bán sản phẩm của họ.
Các công ty bán hàng có thể xác định các phân khúc khách hàng có nhiều khả năng sử dụng dịch vụ của họ nhất. Các công ty có thể đánh giá các phân khúc khách hàng và sau đó quyết định bán sản phẩm của họ để tối đa hóa lợi nhuận.
Một công ty đang thực hiện phân tích tiếp thị thương hiệu bằng Máy học là một công ty khởi nghiệp có trụ sở tại Israel – Optimove. Mục tiêu của công ty này là nhập và xử lý dữ liệu khách hàng để giúp các nhà tiếp thị có thể truy cập được.
Họ tiến thêm một bước nữa bằng cách cung cấp thông tin chi tiết thông minh cho nhóm tiếp thị, cho phép họ thu được lợi nhuận tối đa từ việc tiếp thị sản phẩm của mình.
Học bán giám sát (semi-supervised learning)
Học bán giám sát (semi-supervised learning) là bài toán mà ta có tập dữ liệu X mà chúng ta chỉ xác định được một số label thôi không xác định được toàn bộ label của tập dữ liệu X. Ví dụ điển hình của nhóm này là chỉ có một phần ảnh của con người và động vật được gán nhãn những ảnh còn lại thì không biết được nhãn, chúng ta có thể sử dụng unsupervised learning để khám phá ra các cấu trúc của dữ liệu đầu vào.
Phân loại bài toán dựa trên chức năng của các thuật toán, các thuật toán hồi quy (linear regression, logistic regression, stepwise regression), thuật toán phân loại (support vector machine, kernel svm), thuật toán phân cụm (k-mean clustering, k-Medians), artificial neural network algorithms (perceptron, softmax regression).
Mối quan hệ với các Disciplines
Machine learning liên quan đến các kỹ thuật cơ sở dữ liệu và khoa học máy tính:
- Thống kê: học và suy luận các thuộc tính thống kê từ dữ liệu đã cho
- Khoa học máy tính: các thuật toán hiệu quả để tối ưu hóa, biểu diễn mô hình và đánh giá hiệu xuất
Ngoài tầm quan trọng của tập dữ liệu, Machine learning thường bao gồm 2 yếu tố quan trọng, mô hình hóa và tối ưu hóa. Mô hình hóa có nghĩa là làm thế nào để lập mô hình ranh giới phân tách hoặc phân phối xác suất của tập huấn luyện đã cho và sau đó các kỹ thuật tối ưu hóa được sử dụng để tìm kiếm các tham số tốt nhất của mô hình đã chọn.
Machine learning cũng liên quan đến các ngành khác như: nhận dạng mẫu, truy xuất thông tin, trí tuệ nhân tạo, khai thác dữ liệu, … So với các ngành khác, machine learning còn tập trung thêm vào lý do tại sao machine có thể learn và cách lập mô hình, tối ưu hóa và điều chỉnh theo thứ tự để sử dụng tốt nhất dữ liệu có thể truy cập được.