Sự phát triển và tác động của ứng dụng Machine Learning đến Lập trình

Machine Learning avatar

Trong thời đại số ngày nay những gì liên quan đến công nghệ dường như đều thu hút sự chú ý của mọi người. Trong số đó Ứng dụng Machine Learning cũng là một trong những nền tảng công nghệ không thể không nhắc đến. Ứng dụng Machine Learning  không ngừng phát triển và đóng vai trò chủ chốt trong nhiều ứng dụng quan trọng. Ứng dụng Machine Learning cung cấp nhiều giải pháp tiềm năng cho nhiều lĩnh vực, đồng thời cũng là một trong những phương tiện đưa chúng ta tiến xa hơn trong thời gian tới như Data Mining (Đào dữ liệu), Natural Language Processing (Tiếp thu ngôn ngữ tự nhiên), và kể cả nhận diện hình ảnh (pattern recognition) và thậm chí expert systems (hệ chuyên gia),…

Trong thực tế ngoài những thứ được liệt kê ở trên Ứng dụng Machine Learning (ML) còn được ứng dụng nhiều hơn như thế. Ngày nay Ứng dụng Machine Learning trong cuộc sống giúp nhiều người mới tiếp cận có thể dễ dàng hình dung và thực hành, một số ngôn ngữ lập trình phổ biến dành cho lập trình ứng dụng machine learning là: LISP, Python, C++,…

Hơn nữa Ứng dụng Machine Learning trong lập trình chưa có dấu hiệu dừng lại. Trong tương lai xu hướng của ứng dụng này còn phát triển và tiến xa hơn nhiều.

Những khái niệm của Ứng dụng Machine Learning:

1. Data Mining – Khai phá dữ liệu

Data Mining hướng đến mục đích khai thác dữ liệu
Data Mining hướng đến mục đích khai thác dữ liệu

Quá trình khai phá dữ liệu là quá trình tính toán, sắp xếp một khối lượng dữ liệu khổng lồ một cách hoàn toàn tự động. Qua đó xác định các xu hướng, mô hình mẫu dữ liệu và thiết lập những mối quan hệ, thống kê với mục đích chính là trích xuất những thông tin từ một bộ dữ liệu sau đó chuyển nó thành một cấu trúc thật dễ đọc, dễ hiểu và có thể đưa vào sử dụng được.

Lĩnh vực hoạt động của Data Mining là tài chính, nhân sự, tiếp thị marketing,… Riêng trong công nghệ thông tin mà nói người dùng thường sử dụng để thu thập, phân tích và xử lý các dữ liệu ứng dụng, cơ sở hạ tầng hoặc mạng. Từ đó họ hiểu thêm về bảo mật hệ thống và hiệu suất mạng.

Khai phá dữ liệu Data Mining là một trong những Ứng dụng Machine Learning thân thiện với các nhà lập trình trong thời gian gần đây.

Một số phương pháp khai thác dữ liệu mà các bạn thường gặp đó là: phương pháp Classification( phân loại), Clustering (phân nhóm), Regression (hồi quy), và tổng hợp Summarization (tổng hợp), hay Change & Deviation Detection (Dò tìm biến đổi & lệch).

2. Natural Language Processing (NLP) – Xử lý ngôn ngữ tự nhiên

Xử lý và phân tích ngôn ngữ tự nhiên là một trong những công nghệ ưu tiên hàng đầu
Xử lý và phân tích ngôn ngữ tự nhiên là một trong những công nghệ ưu tiên hàng đầu

Hằng ngày chúng ta thường giao tiếp với nhau bằng ngôn ngữ. Có thể đó là ngôn ngữ tiếng Việt, tiếng Anh, tiếng Hoa,… những ngôn ngữ này được gọi là ngôn ngữ tự nhiên (natural language). Ngoài ra trong quá trình làm việc các bạn còn đối mặt với nhiều loại ngôn ngữ khác như: ngôn ngữ lập trình, ngôn ngữ máy,… đây là những ngôn nhân tạo.

Do đó cách hiểu đơn giản cho NLP đó chính là những thuật ngữ dùng để chỉ các phương pháp, những cách thức về kỹ thuật giúp thể hiện ngôn ngữ tự nhiên trong môi trường các máy tính.

Những bước xử lý có thể được tiến hành lần lượt hoặc cùng lúc tùy thuộc vào từng trường hợp và phương pháp. Tuy nhiên thường bao gồm 5 bước sau:

  • Phân tích và phân loại các loại ký tự, loại chữ.
  • Phân tích cú pháp câu từ, đồng thời cân nhắc tính liên kết và cần thực hiện đối chiếu với văn bản chuẩn.
  • Phân tích để có những bước xử lý ngữ nghĩa cho cấu trúc nói trên.
  • Xử lý tích hợp văn bản để tạo sự liên kết cho những câu rời rạc.
  • Xử lý phân tích thực nghĩa để tạo sự chuẩn xác cho câu từ.

Ví dụ với ngôn ngữ tự nhiên hàng ngày các bạn thường ứng dụng để: Nhận dạng chữ viết, tổng hợp tiếng nói, tính năng dịch tự động hay tìm kiếm thông tin, tóm tắt văn bản, nhận dạng tiếng nói…

3. Pattern Recognition – Nhận dạng mẫu – Ứng dụng Machine Learning

Nhận dạng mẫu là tập hợp của các phương pháp học có giám sát hay có tên gọi khác là supervised learning. Hiểu đơn giản nhận dạng mẫu chính là việc hệ máy của các bạn sẽ thực hiện một tác động vào dữ liệu thô với mục đích phân loại chúng. Nhưng, tác động được đề cập ở trên cụ thể là gì và như thế nào còn tùy thuộc vào dữ liệu. Việc phân loại thường được tiến hành dựa trên những kiến thức hoặc thông tin được lấy ra từ những dự liệu có sẵn.

Nhận dạng hình học
Nhận dạng hình học

Pattern Recognition – Nhận dạng mẫu cũng là một trong số Ứng dụng Machine Learning phổ biến được các nhà lập trình tin dùng. Một số ứng dụng của Pattern Recognition có thể kể đến là: nhận dạng tiếng nói tự động, nhận dạng mã bưu điện tự động viết tay trên bì thư hoặc cũng có thể xác nhận danh tính dựa trên khuôn mặt.

4. Expert Systems – Hệ chuyên gia – Ứng dụng Machine Learning

Về cơ bản hệ chuyên gia là các chương trình công nghệ mang tính chất của hệ cơ sở tri thức được thiết kế nhằm giải quyết các vấn đề có liên quan đến lý luận tri thức cho một lĩnh vực ứng dụng cụ thể nào đó.

Mỗi hệ chuyên gia đóng vai trò như một chuyên gia thực thụ để xử lý các công việc như kế toán, tư vấn tài chính (financial service) hay đó có thể là lĩnh vực quản trị nhân sự (human resource) và còn nhiều hơn thế….

Các hệ chuyên gia sẽ sử lý những vấn đề theo 2 tiêu chí:

  • Thứ nhất là cơ sở về tri thức: khu vực này bao gồm các lĩnh vực như sự kiện, điều luật giúp lưu trữ và biểu diễn các tri thức liên quan đến lĩnh vực mà hệ đảm nhận, cùng với đó cơ sở tri thức cũng là nền tảng cho mọi hoạt động diễn ra trong hệ.
  • Thứ hai là động cơ/máy suy diễn: đây là quá trình đưa ra kết luận cho những vấn đề đang giải quyết thông qua những hình thức cho phép tri thức có sẵn ở phần cơ sở tri thức về lĩnh vực liên quan được khớp với các sự kiện trong vùng nhớ.

Sơ đồ của phần máy suy diễn trong ứng dụng hệ chuyên gia vào một lĩnh vực tư vấn chọn món ăn.

Ví dụ về 1 Workflow đơn giản ứng dụng Machine Learning
Ví dụ về 1 Workflow đơn giản ứng dụng Machine Learning

Bài viết trên đây đã điểm qua cho bạn một số ứng dụng tiêu biểu của loại ứng dụng Machine Learning trong lĩnh vực lập trình. Tuy chưa đề cập đến tất cả nhưng với những ứng dụng trên cũng phần nào giúp các bạn hình dung nhanh về những điều bạn quan tâm và mong muốn tìm hiểu học hỏi về ứng dụng Machine Learning.