Khi tôi tự giới thiệu mình là một lập trình viên Khoa học dữ liệu (Data science), tôi thường nhận được những câu hỏi “Sự khác nhau giữa Data Science và Machine learning (Máy học) là gì?” Hoặc “Điều đó có nghĩa là bạn đang làm việc trong lĩnh vực Artificial Intelligence (Trí tuệ nhân tạo – AI)”, tôi đã phải giải thích và trả lời rất nhiều những câu hỏi tương tự như vậy, và hôm nay tôi xin viết bài này để giải thích rõ hơn về : Data Science, Machine Learning và AI.
Các lĩnh vực đều có sự chồng chéo đan xen với nhau, hầu hết các chuyên gia trong các lĩnh vực này có một sự hiểu biết trực quan về các công việc cục thể có thể phân loại được như khoa học dữ, liệu, máy học và trí tuệ nhân tạo, ngay cả khi khó mô tả bằng lời. Trong bài viết này tôi không định nghĩ cụ thể như thế nào là Data Science, như thế nào là Machine Learning hay AI là gì, mà tôi chỉ quan tâm tới cách các lập trình viên sử dụng và các công việc cụ thể cho 3 lĩnh vực này.
1. Data Science tạo ra những hiểu biết sâu sắc
Khoa học dữ liệu được phân biệt với hai lĩnh vực khác nhau vì mục tiêu của nó là một con người, thực thể đặc biệt: để đạt được sự hiểu biết và thấu hiểu. Jeff Leek có một định nghĩa tuyệt vời về các loại thông tin chi tiết mà Data Science có thể đạt được, bao gồm mô tả : khác hàng trung bình ó 70% cơ hội đổi mới, các nhân viên bán hàng khác nhau thì có mức gia hạn, thuyệt phục khách hàng khác nhau và nguyên nhân thử nghiệm ngẫu nhiên cho thấy khách hnagf được giao cho Alice có nhiều khả năng chốt đơn hàng hơn so với những khách hàng giao cho Bob.
Một lần nữa, không phải tất cả mọi thứ tạo ra cái nhìn sâu sắc đủ tiêu chuẩn đều là Data Science (định nghĩa cổ điển về lập trình viên khoa học dữ liệu là nó liên quan tới sự kết hợp của số liệu thống kê, kỹ thuật phần mềm và chuyên môn về domain). Nhưng chúng ta cũng có thể sử dụng định nghĩa này để phân biệt với Machine Learning và AI. Sự khác biệt chính là trong Data Science luôn có con người cụ thể trong vòng lặp: ai đó đang hiểu được cái nhìn sâu sắc, nhìn thấy con số hoặc đưa ra tính toán từ những kết luận. Sẽ không đúng khi bạn nói ” Thuật toán chơi cờ của chúng tôi sử dụng Data Science để tính toán các nước cờ tiếp theo trong ván cờ” hoặc “Google Maps sử dụng Data Science để đưa ra App chỉ đường “.
Định nghĩa về Data Science ở đây nhấn mạnh:
- Suy luận thống kê
- Hình dung dữ liệu
- Thiết kế thử nghiệm
- Kiến thức về domain (tên miền)
- Giao tiếp
Các lập trình viên khoa học dữ liệu có thể sử dụng các công cự đơn giản: họ có thể báo cáo tỷ lệ phần trăm và tạo biểu đồ đường dựa trên các truy vấn SQL. Họ cũng có thể sử dụng các phương pháp rất phức tạp như làm việc với các kho dữ liệu phân tán để phân tích hàng nghìn tỷ hồ sơ, phát triển các kỹ thuật thống kê tiên tiến và xây dựng các hình ảnh tương tác. Cho dù cách sử dụng như thế nào, thì mục tiêu chính vẫn là để hiểu rõ hơn về dữ liệu của họ.
Machine Learning (Máy học) tạo ra các dự đoán
Tôi nghĩ rằng máy học như là lĩnh vực dự đoán: “ví dụ X với các tính năng đặc biệt, dự đoán Y về nó”. Những dự đoán này có thể là về tương lai (“dự đoán bệnh nhân này có bị nhiễm trùng hay không”), nhưng chúng cũng có thể là về các phẩm chất không rõ ràng ngay lập tức đối với máy tính (“dự đoán hình ảnh này có con chim trong đó hay không”). Hầu như tất cả các cuộc thi Kaggle đều là những vấn đề về học máy: chúng cung cấp một số dữ liệu huấn luyện và sau đó xem liệu các đối thủ cạnh tranh có thể đưa ra dự đoán chính xác về các ví dụ mới hay không.
Có rất nhiều sự đan xen giữa Data Science và Machine Learning. Ví dụ, sự logic có thể được sử dụng để rút ra những hiểu biết sâu sắc về các mối quan hệ (“người dùng càng giàu càng có nhiều khả năng họ sẽ mua sản phẩm của chúng tôi, vì vậy chúng ta nên thay đổi chiến lược tiếp thị”) và đưa ra các dự đoán (” %cơ hội khách hàng mua sản phẩm, vì vậy nên đề xuất với công ty “).
Hầu hết các học viên lập trình viên nếu hiểu biết về hai khái niệm này thì sẽ dễ dàng chuyển qua lại giữa hai nhiệm vụ, ví dụ tôi sử dụng cả kiến thức về Machine Learning và Data Science trong công việc của tôi, tôi có thể phù hợp với mô hình về dữ liệu traffice trên Stack Overflow để xác định người dùng nào có khả năng tìm kiếm việc làm (Machine Learning), nhưng sau đó xây dựng các tóm lược và hình ảnh để kiểm tra tại sao mô hình này (Data Science) lại hoạt động. Đây là một cách quan trọng để phát hiện ra các sai sót trong mô hình của bạn và để tranh các sai lệch về thuật toán. Đây là một trong những lý do mà các lập trình viên khoa học dữ liệu thường kiêm luôn trách nhiệm phát triển các thành phần Machine Learning của một sản phẩm.
Artificial Intelligence (Trí tuệ nhân tạo – AI) tạo ra hành động
AI là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào. Nó là tương lai, là khoa học viễn tưởng, và là một phần trong cuộc sống hàng ngày của chúng ta. AI ra đời từ rất lâu và được công nhận rộng rãi, phổ biến nhất trong giới lập trình, và do đó khá khó khăn để hiểu hết về lĩnh vực này.
Một chủ đề chung trong định nghĩa về “trí tuệ nhân tạo” là một tác nhân độc lập thực hiện hoặc đề xuất hành động (ví dụ như Poole, Mackworth và Goebel 1998, Russell và Norvig 2003). Một số hệ thống mà tôi nghĩ nên nhắc tới khi mô tả về AI:
- Các thuật toán chơi game (Deep Blue, AIphaGo)
- Lý thuyết về robot và kiểm soát (lập kế hoạch chuyển động, đi bộ bằng một robot bipedAI)
- Tối ưu hóa (Google Maps chọn tuyến đường)
- Xử lý ngôn ngữ tự nhiên (bots2)
- Học tăng cường, cấp tốc
Một lần nữa, chúng ta có thể thấy sự đan xen hợp tác lẫn nhau giữa AI, Machine Learning và Data Science khi tạo ra một sản phẩm, Deep learning (Một kỹ thuật bổ sung cho máy học), Deep learning đã và đang là một chủ đề AI được bàn luận rất sôi nổi. Đây là một thuật toán dựa trên ý tưởng từ bộ não của con người tới việc tiếp thu nhiều tầng biểu đạt. Nó đã thúc đẩy tiến bộ trong các lĩnh vực đa dạng như nhận thức, dịch tự động, nhận diện giọng nói….
Nhưng cũng có những khác biệt, nếu tôi phân tích một số dữ liệu bán hàng và phát hiện ra rằng các khách hàng đến từ các ngành công nghiệp cụ thể có khả năng chốt hợp đồng hơn các khách hàng khác , bạn có thể đưa ra một con số và đồ thị chứ không phải là một hành động cụ thể. Các nhà quản lý có thể sử dụng những kết luận đó để thay đổi chiến lược bán hàng, nhưng hàng động này không phải một cách tự động. Điều này có nghĩa tôi sẽ mô tả công việc của tôi như là một lập trình viên khoa học dữ liệu .
Trường hợp nghiên cứu cụ thể: Làm sao để sử dụng cả 3 lĩnh vực vào trong một dự án ?
Giả sử chúng ta đang nghiên cứu sản xuất một chiếc xe hơi tự lại và đang làm việc về vấn đề dừng xe tại các dấu hiệu dừng. Chúng tôi sẽ cần các kỹ năng cụ thể cho ba lĩnh vực này:
+ Machine Learning: Chiếc xe phải nhân ra dấu hiệu dừng bằng máy ảnh, chúng tôi xây dựng một tập dữ liệu của hàng triệu bức ảnh về đường phố và thiết lập một thuật toán để dự đoán các dấu hiệu dừng lại đó.
+ AI: Một khi chiếc xe có thể nhận biết các dấu hiệu dừng lại, nó cần phải quyết định khi nào có hành động áp dụng phanh. Việc áp dụng quá sớm hay quá muộn đều rất nguy hiểm và chúng ta cần AI để xử lý các điều kiện đường khác nhau ( ví dụ trên đường này trơn dốc thì nên đi chậm lại), đây là vấn đề lý thuyết về hành động kiểm soát.
+ Data Science: Trong các bài kiểm tra đường phố, chúng tôi nhận thấy rằng hiệu suất của xe hơi không đủ tốt, với một số dấu hiệu phủ định, để đưa ra dự đoán dừng xe. Sau khi phân tích dữ liệu thử nghiệm về đường phố, chúng tôi hiểu được rằng tỷ lệ sai số âm phụ thuộc vào thời gian trong ngày, có nhiều khả năng bỏ lỡ các dấu hiệu dừng xe vào thời điểm trước khi mặt trời lặn hoặc sau hoàng hôn. Và cũng nhận thấy rằng hầu hết các dữ liệu huấn luyện chỉ bao gồm các đối tượng trong ánh sáng ban ngày, vì vậy tiếp tục nghiên cứu xây dựng một bộ dữ liệu tốt hơn bao gồm hình ảnh ban đêm và quay trở lại bước nghiên cứu Machine Learning.