Ứng dụng Machine Learning: phân loại khách hàng thân thiết

Từ dữ liệu về lịch sử sử dụng dịch vụ của khách hàng (giá trị gói dịch vụ, thời gian sử dụng, hình thức gia hạn, thời gian gia hạn dịch vụ(trước khi hết hạn hay sau khi hết hạn mấy ngày)…) ta có thể phân chia khách hàng thành từng nhóm khách hàng khác nhau để có thể chăm sóc khách hàng được tốt hơn.
Một số ví dụ để phân loại khách hàng:

  • Tổng thời gian sử dụng dịch vụ của khách hàng
  • Nhóm khách hàng sử dụng các phương pháp gia hạn
  • Khách hàng gia hạn dựa trên các nhóm truyền thông nào (qua tin nhắn, qua báo chí, qua mạng xã hội, qua ứng dụng…)
  • Nhóm khách hàng theo độ tuổi
  • Nhóm khách hàng theo chương trình hay muốn tham gia
  • Nhóm khách hàng lâu dài…

Ta có thể sử dụng một số phương pháp cơ bản để phân loại khách hàng như thuật toán phân cụm K-MEAN, sử dụng SVM để phân lớp… hoặc các thuật toán nâng cao.

Ứng dụng Machine Learning: phân loại tin nhắn spam (thư spam)

Hàng ngày mình nhận được rất nhiều tin nhắn spam thông qua tin nhắn SMS. Những tin nhắn này bao hàm cả của nhà mạng hoặc các đội spam khác như các cá nhân, công ty, lừa đảo…
Thử làm ứng dụng để phân loại tin nhắn spam để biết đâu là spam, đâu là tin nhắn thường hoặc tin nhắn báo khuyến mại để nhận.

Cách làm phân loại tin nhắn spam đã được nhiều người làm, để đơn giản chắc mình làm trước với nội dung tiếng anh:

  • Loại bỏ các ký tự đặc biệt và các ký tự hay được sử dụng (stop words)
  • Chuyển nội dung SMS dạng text về dạng vector (do các bộ máy đều làm việc dưới dạng số)
  • Tách 80% để train và 20% để test
  • Sử dụng một số thuật toán phổ biến để phân loại: SVM, Naive Bayes.

Ứng dụng trí tuệ nhân tạo trong giao thông Việt Nam

Nói đến ứng dụng trí tuệ nhân tạo trong giao thông người ta thường nghĩ ngay đến các hệ thống xe tự lái. Các hệ thống này sử dụng việc xử lý hình ảnh của các camera trên xe để tính toán và chỉ thị điều khiển xe có thể tự động lái thay cho con người. Tuy nhiên đó chỉ là tương lai vì còn rất nhiều vấn đề thực tế chưa giải quyết được như chất lượng giao thông, luật pháp, yếu tố an toàn… Đó là trên thế giới, còn Việt Nam thì còn phải lâu lâu nữa bởi vì mọi thứ còn chưa được đồng bộ về giao thông, ý thức người dân, phương tiện oto chưa phổ biến.

Dù vậy trong thời đại Trí tuệ nhân tạo, Cách mạng công nghệ 4.0 thì việc ứng dụng Trí tuệ nhân tạo vẫn có nhiều đất để sử dụng mặc dù không được nổi hoặc hoành tráng nhưng ý nghĩa và tính thực tiễn lại vô cùng to lớn. Ta có thể ví dụ một số ứng dụng thực tiễn như sau:

  • Thông báo, phân làn, điều hướng giao thông: Tại các ngã tư, trên đường có thể sử dụng các thuật toán xử lý ảnh để có thể nhận diện mật độ giao thông để có thể phân làn, điều hướng giao thông được tốt hơn. Thay vì tổng đài hiện tại nhìn vào camera hoặc người dân gọi điện thông báo. Việc ứng dụng các thuật toán xử lý ảnh có thể tiến hành đếm từng cung đường, vị trí để có cảnh báo sớm cho người tham gia giao thông và tổng đài điều tiết giao thông. Nó sẽ góp phần lớn giúp nạn tắc đường và tiết kiệm nhân lực là công an giao thông, dân phòng, bảo vệ… tham gia điều tiết giao thông vào giờ cao điểm.
  • Lưu trữ, thông tin các bãi đỗ xe: Bãi đỗ xe đang dần là vấn đề lớn do việc phương tiện giao thông ngày càng tăng mà đường sá chưa kịp đáp ứng cho việc gia tăng này. Càng ngày việc tìm bãi đỗ xe cho oto càng khó khăn hơn. Thiết lập được các bãi đỗ xe thông minh cho phép tìm kiếm, đặt chỗ đỗ xe là việc cần thiết, tiết kiệm thời gian tìm chỗ đỗ xe. Từ đó cũng cho phép mọi người có nhà mặt đường tham gia hệ thống cho đỗ xe phù hợp gia tăng thu nhập.
  • Thu phí cho việc sử dụng phương tiện cá nhân: Hạn chế phương tiện cá nhân bằng phương pháp đánh thuế mua xe hoặc xăng dầu có vẻ chưa được ổn. Việc thu phí cho lượt sử dụng phương tiện cá nhân là yếu tố có thể tính đến. Tương tự như việc thu phí tại các trạm BOT, việc nhận diện biển số xe để có thể thu phí trong mạng lưới camera ngày càng phát triển. Thu thập và tính toán tần suất sử dụng phương tiện cần sử dụng các thuật toán thông minh…
  • Cảnh báo cho người sử dụng phương tiện giao thông: Kết hợp các dữ liệu thời gian thực thu được từ các phương tiện và các camera tĩnh có thể thông tin tới các tài xế để cho người lái xe tự quyết định hành vi của mình như cảnh báo tắc đường, cảnh báo đường cấm, cảnh báo lái xe có dấu hiệu buồn ngủ, cảnh báo lái xe có sử chất kích thích như rượu, bia…

Phát hiện đối tượng real-time với YOLO

YOLO là một thư viện sử dụng trí tuệ nhân tạo để phát hiện đối tượng real-time trong ảnh và video. Ta có thể sử dụng YOLO với nhiều ngôn ngữ khác nhau như Python, Javascript, C++… YOLO xử lý ảnh có thể sử dụng GPU hoặc OPENCV
Trang chủ của YOLO: https://pjreddie.com/darknet/yolo/#demo

Phát hiện đối tượng với YOLO
Phát hiện đối tượng với YOLO

Cài đặt YOLO trên máy ảo

  • Thiết lập máy ảo CENTOS 7
  • Cài đặt git: sudo yum install git
  • cài đặt GCC: # yum group install “Development Tools”
  • Clone project darknet: git clone https://github.com/pjreddie/darknet
  • Cài đặt OPEN CV
    yum install cmake gcc gtk2-devel numpy pkconfig -y
    cd
    wget https://github.com/opencv/opencv/archive/3.4.2.zip
    unzip 3.4.2.zip
    https://www.vultr.com/docs/how-to-install-opencv-on-centos-7
  • Sửa file Makefile dòng OPENCE từ 0 thành 1
  • Biên dịch darknet:
    cd darknet
    make
  • Tải trọng số có sẵn đã được train: wget https://pjreddie.com/media/files/yolov3.weights
  • Test: ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Một số địa chỉ tham khảo:

https://www.blog.pythonlibrary.org/2018/06/05/creating-pdfs-with-pyfpdf-and-python/

https://pjreddie.com/darknet/yolo/#demo

https://www.vultr.com/docs/how-to-install-opencv-on-centos-7

AI rà soát và đề xuất fix lỗi code

Google, Facebook nghiên cứu và phát triển hệ thống thông minh rà soát bug và đề xuất cách fix cho lập trình viên.

Công cụ của Facebook mang tên Getafix (https://code.fb.com/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/)

Các hệ thống này sử dụng Trí tuệ nhân tạo, thu lập các code lỗi trước đây của lập trình viên, sau đó với các dòng code mới mà lập trình viên viết ra. Hệ thống sẽ đọc và tìm ra code lỗi hoặc nghi ngờ code có lỗi và đề xuất phương án fix cho lập trình viên.

Việc này như các buổi review code cho lập trình viên, nâng cao chất lượng code.

TRÍ TUỆ NHÂN TẠO VÀ VẤN ĐỀ GIAO THÔNG

Cùng dừng lại trước vấn đề Trí tuệ nhân tạo và giao thông, tôi xin kể lại câu chuyện sau. Khu chung cư tôi đang ở toàn người Hàn Quốc, có lẽ phải đến 80% cư dân là những người Hàn Quốc sang Việt Nam làm ăn và vợ con của họ. Có cả những anh chàng người Hàn chưa vợ ở cùng các cô gái Việt Nam. Thường thì tôi chẳng biết hàng xóm của mình là ai vì bất đồng ngôn ngữ, người Hàn cũng không thân thiện lắm.

Tối qua đang nằm đọc vẩn vơ ở nhà thì nghe thấy bên hàng xóm cãi nhau rất to, chẳng biết là chuyện gì. Họ cãi nhau bằng tiếng Việt, tôi nghe thấy người đàn ông bảo tại sao lại hỏi thế, người phụ thét lên nguyên văn như sau: “Vì tôi là người Việt Nam, nên tôi ngu. Tôi ngu nên tôi phải hỏi.”

Tôi giật mình, tại sao một người đàn bà lấy chồng Hàn Quốc lại có thể nắm giữ bí mật hệ trọng của một dân tộc như thế. Lại còn đem nó ra ngang nhiên tiết lộ với người nước ngoài. Cảm giác lo sợ cho vận mệnh dân tộc khiến tôi như bị hất cả gáo nước vào mặt. Tôi bất bình đến mức định sang bấm chuông mắng cho một trận, xong rồi lại thôi.

Một trong những vấn đề nhức nhối nhất hiện nay là tắc đường

Nhưng hôm nay, sau khi phải đứng trên xe bus suốt 3 tiếng để đi từ Phạm Hùng về Ecopark, độ 20km, thì tôi không còn bất bình nữa. Con đường cao tốc giờ tan tầm đặc kín toàn ô tô, chen nhau nhích lên từng tí một.. Có lẽ người phụ nữ kia nói không sai. Chúng ta đang làm gì với xã hội của mình thế này, liệu chúng ta có thông minh như ta vẫn tự hào hay không? Nếu ta thông minh tại sao ô tô chạy ở Việt Nam không nhanh hơn được tốc độ chạy bộ? Mấy người ngồi cùng xe với tôi mặt ai cũng ngán ngẩm. Một anh chàng cho biết chuyện này xảy ra như cơm bữa, anh ta chịu đựng quen rồi.

Với tình hình mua sắm ô tô như bây giờ của người Việt Nam thì đường xá chỉ trong vài năm nữa sẽ trở thành địa ngục thực sự.

Vẫn còn có rất nhiều người trẻ Việt trăn trở

Công ty tôi có một thằng bé vừa tốt nghiệp lớp 12 ở Singapore. Nó xin mẹ về Việt Nam thực tập. Thằng bé có vẻ rất cố gắng và quyết tâm học AI, ước mơ của nó là một ngày được sử dụng AI để giải quyết vấn đề tắc đường ở Việt Nam. Tôi cười bảo nó rằng giao thông ở Việt Nam quá tải rồi, khó dùng công nghệ mà giải quyết lắm, hãy đọc lí thuyết hàng đợi đi bla bla… Nhưng nó không nghe, vẫn tin có thể dùng AI để làm cho giao thông Việt Nam tốt lên. Có khi nó đúng, trí tuệ nhân tạo và giao thông có thể giải quyết ở nhiều khía cạnh.

Bản chất đường xá là tài nguyên sử dụng chung của cả xã hội, nhưng ở Việt Nam có nhiều người chiếm dụng các tài nguyên ấy nhiều hơn rất nhiều người khác. Những cái ô tô gia đình đa phần chỉ chở một người lái xe nhưng chiếm diện tích bằng nhiều chiếc xe đạp, 3 cái ô tô nối đuôi nhau đã dài bằng một chiếc xe bus chở vài chục con người. Rồi thì những chiếc xe dịch vụ chạy suốt ngày trên đường, không phải lúc nào cũng có khách ngồi. Đấy có thể là một sự bất công mà khi chưa có công nghệ tốt, người ta không biết phải giải quyết sao cho ổn thỏa.

Liệu trí tuệ nhân tạo có thể giải quyết vấn đề?

Có công nghệ thì sao? Ví dụ những chiếc camera trên đường chỉ cần được trang bị thêm hệ thống nhận dạng biển số tự động, tất cả mọi chiếc xe chạy khắp nơi sẽ được ghi lại 24/24. Người ta sẽ dễ dàng biết ngay những chiếc xe nào chiếm dụng tài nguyên của xã hội nhiều nhất. Giả dụ 50 nghìn chiếc xe chạy nhiều nhất trên đường ở Hà Nội mỗi tháng sẽ bị thu thêm phí, người ta sẽ không dám lạm dụng tài nguyên của xã hội thoải mái như hiện nay nữa. Hoặc tài xế lái xe nếu có những hệ thống trợ giúp, phát hiện buồn ngủ, trò chuyện liên tục, cập nhật tình hình giao thông và tương tác với điện thoại bằng giọng nói, thì số vụ tai nạn có thể giảm bớt. Đấy chỉ là một vài ví dụ nhỏ, nếu ai quan tâm tới chủ đề ứng dụng trí tuệ nhân tạo và giao thông xin để lại lời nhắn ở dưới, ta sẽ cùng tổ chức một buổi brainstorming.

Nhân tiện, công ty tôi hồi trước đã làm xong một engine nhận dạng biển số xe cho một doanh nghiệp lớn nhưng bị doanh nghiệp đó bùng mất. Trị giá dự án outsource đó khoảng 1 tỉ đồng. Nếu doanh nghiệp nào muốn ứng dụng công nghệ này phục vụ lợi ích của xã hội, bọn tôi xin tặng lại.

FB: https://www.facebook.com/lezomeo

Có thể bạn quan tâm:

Hội nghị Trí tuệ nhân tạo cho cuộc sống

Oracle đã và đang ứng dụng trí tệ nhân tạo trong sản phẩm Database

Nghe thiên hạ đồn oracle đang phát triển thế hệ Database mới với ứng dụng trí tuệ nhân tạo trong đó. Trí tuệ nhân tạo sẽ giúp hệ thống tự động nhận diện các lỗi phát sinh trong hệ quản trị cơ sở dữ liệu và tiến hành tự sửa chữa. Việc ứng dụng AI này hệ thống Database sẽ cần ít thao tác từ người quản trị hơn mà sẽ tự động quản trị, ví dụ như:

  • Trước đây người quản trị (DBA) sẽ theo dõi hệ thống và ra các quyết định tác động lên hệ thống, ở mức cao hơn sẽ tự động hóa bằng các job hay tool để monitor và tự xử lý với các rule đặt trước. Nhưng trí tuệ nhân tạo sẽ hoàn toàn bỏ qua phần này, hệ thống sẽ tự động xác định và xử lý mà không cần sự can thiệp của DBA.
  • Việc tinh chỉnh, tối ưu, turning câu lệnh SQL sẽ được hệ thống ứng dụng trí tuệ nhân tạo xác định và tiến hành tối ưu. Hệ thống sẽ tự phân tích để đánh index, tạo view, sử dụng bảng tạm, bảng phẳng để tối ưu các tiến trình.
  • Trí tuệ nhân tạo sẽ tự tối ưu các job, đồng bộ dữ liệu, cân bằng tải… tự đưa ra các chiến lược backup hiệu quả để tiết kiệm tài nguyên và tăng tính sẵn sàng cho hệ thống…
  • Việc lấy các báo cáo sẽ nâng cao tính động, nhanh hơn và có thể hiểu người ra yêu cầu một cách chính xác hơn.

Nhìn chung sẽ làm cho hệ thống Database trở nên thông minh hơn, công việc DBA sẽ nhẹ nhàng và nhàn hạ đi rất nhiều nhưng cùng với đó là công việc DBA sẽ ít dần và dần chuyển sang công việc khác. Tất nhiên con đường đó vẫn còn xa, việc tự động hóa toàn bộ cũng nảy sinh nhiều vấn đề mà khó có thể lường trước được.

Adobe đã ứng dụng trí tuệ nhân tạo trong sản phẩm Photoshop

Có một người bạn đã gửi cho mình về một đoạn clip mô tải lại việc Photoshop tự động có thể tách đối tượng ra khỏi ảnh sử dụng Trí tuệ nhân tạo.

Đây có lẽ là thứ đầu tiên về ứng dụng thực tiễn nhất mà mình thấy hay. Bởi vì trước còn thời sinh viên mình cũng hay vọc Photoshop để cắt ảnh gép linh tinh hoặc chỉnh sửa vớ vẩn, việc cắt này đặc biệt khó khăn đối với những hình góc cạnh, phức tạp đặc biệt với tóc hoặc lẫn màu với nền hoặc vật khác. Với Trí tuệ nhân tạo có thể tách được đối tượng do có thể cho việc học máy học các đối tượng cụ thể để có thể tách được.

Nhìn qua demo thấy khá ngon lành, không biết thành phẩm có được như mong đợi không, dù sao cũng chờ để được sử dụng để việc cắt đối tượng từ ảnh được dễ dàng hơn.

Hướng tiếp cận bài toán bằng cách vét cạn từng Số nguyên tố

Một bài học quý báu mà thầy Thắng có truyền lại cho đội O trong kỳ thi Olympic như sau:
Vào một năm nào đó, kỳ thi của đội anh Hinh hay anh Hùng dự ACM-ICPC có bài toán cần giải đại loại là cho 1 khoảng và in ra các số nguyên tố trong khoảng đó. Tất nhiên kết quả phải được đưa ra dưới x giây.
Xét về kỹ thuật thông thường ta buộc phải kiểm tra từng số trong khoảng đó và xác định xem đó là có phải số nguyên tố hay không? Với bài toán kinh điển kiểm tra có phải số nguyên tố hay không thì có nhiều thuật toán, nhưng số càng lớn thì càng cần nhiều thời gian hơn để kiểm tra. Và việc xử lý vấn đề thời gian là yếu tố quan trọng nhất vì với các thuật toán hiện tại thì không thể xử lý được trong khoảng thời gian mà ban tổ chức đưa ra…
Vì thi ACM-ICPC không chấm thuật toán mà tính pass hay không thông qua tập test của ban tổ chức. Tất nhiên nếu có danh sách tập test và kết quả của ban tổ chức thì chỉ cần IF ELSE cũng đạt điểm.
Một ý tưởng xử lý rất thông minh đó là ta tiến hành liệt kê ra 1 tập sẵn các số nguyên tố nằm trong phạm vi của đề của ban tổ chức trước, sau đó chương trình chỉ cần đọc file và lấy danh sách số nguyên tố trong khoảng mà đề bài yêu cầu. Độ phức tạp sẽ O(n).
Kết quả của đội là đã giải thành công bài toán, bài đã chấp nhận, file sinh danh sách số nguyên tố gần 1GB, mất gần hết thời gian cả cuộc thi.

Đây là bài toán kinh điển về kinh nghiệm xử lý vấn đề, nó thay đổi tư duy và cách tiếp cận bài toán. Cũng như là phải hiểu rõ phương thức và hoàn cảnh. Nó có thể ứng dụng trong nhiều trường hợp trong công việc và đời sống.

P/S: Tất nhiên cách này không thể áp dụng được trong cuộc thi Olympic vì cuộc thi Olympic là cuộc thi thuật toán, khi ta chưa thể code được chương trình nhưng ta đưa ra được quan điểm, giải thuật xử lý đúng đắn thì ban tổ chức vẫn có thể cộng điểm cho chúng ta.
Với bài toán trên nếu giới hạn dung lượng file thì cũng không thể đạt điểm cho bài toán này.

Ứng dụng trí tuệ nhân tạo trong Photoshop

Ứng dụng trí tuệ nhân tạo trong Photoshop

Trước đây học và làm với Photoshop cực ngán ngẩm với việc cắt một đối tượng phức tạp ra để ghép sang một ảnh khác. Ví dụ cắt toàn bộ ảnh người ra khỏi ảnh.