Hãy nắm được các thuật toán trong hệ thống Machine learning, điều này sẽ giúp bạn hiểu rõ và ứng dụng vào sản phẩm một cách thông minh. (Image by Jaroslaw Danilenko)

Machine learning & Product Designer (Part.02): Các thuật toán và công thức tư duy cần nắm được

An : )
7 min readJun 28, 2018

Trong phần trước của bài viết, mình đã chia sẻ đến các bạn những lý do tại sao một Product Designer lại nên biết về AI&Machine learning, cũng như lợi ích của nó mang lại.

Machine learning & Product Designer (Part.01): Tại sao lại hữu ích và cần biết?

Trong phần tiếp theo của bài viết này, mình sẽ tiếp tục giới thiệu đến các bạn những hệ thống Machine learning nổi bật, cũng như mindset định hình trong việc xây dựng logic cho một hệ thống Machine learing là như thế nào?

I/ Machine learning & Deep learning được phân biệt ra sao?

Để tránh việc các bạn mới bắt đầu không bị nhẫm trong lúc tìm hiểu về AI. Thì mình sẽ giới thiệu chi tiết ngắn gọn 2 định nghĩa lớn trong phần mở đầu của bài viết này.

Machine learning & Deep learning là gì trong AI?

Machine learning và Deep learning là 2 tệp con lớn có liên kết trong một hệ thống AI. Nhiệm vụ của 2 tệp con lớn này giúp AI “nhận thức” được các vấn đề hoặc yêu cầu mà người sáng tạo đề ra.

Trong seri bài viết này mình gọi Machine learning và Deep learning là các tầng “nhận thức" để các bạn dễ hiểu.

Machine learning & Deep learning khác nhau và có liên quan ra sao?

Machine learning: Là tầng “nhận thức” đầu tiên trong AI. Nó có khả năng tự học và giải quyết vấn đề dựa trên dữ liệu và logic mà người sáng tạo ra nó đưa vào trong hệ thống.

Mình đang phát triển Machine learning theo các cách tiếp cận logic hệ thống bên dưới, nếu quan tâm bạn có thể tìm hiểu nhé:

Logic programming, clustering, reinforcement learning, Bayesian networks.

Một ví dụ thực tế mà mình đang áp dụng để dạy AI hiểu được những gì mình mong muốn:

Cốt lõi của 1 hệ thống Machine learning mạnh là người sáng tạo ra nó phải xây dựng được 1 “bài giảng" chi tiết để nó có thể học và dựa vào đó để đáp ứng những mong muốn đề ra.

Deep learning: Được định nghĩa là tầng “nhận thức" nằm dưới tầng “nhận thức" Machine learning trong AI (Suy nghĩ trong suy nghĩ). Giúp AI trở nên toàn diện và tiến gần hơn đến mindset loài người.

Để các bạn dễ hình dung hơn thì dưới đây là sơ đồ cấu trúc của một trí tuệ nhận tạo nhé:

Deep learning là kết qủa mong muốn của mọi nhà phát triển trí tuệ nhân tạo. Sở hữu một AI có “nhận thức” Deep learning là ao ước của tất cả các nhà thiết kế sản phẩm.

Deep learning được các nhà sáng tạo lấy cảm hứng phát triển từ hệ thống thần kinh não người (Artificial Neural Networks). Với cốt lõi cấu trúc là các hệ thống nơ-ron được kết nối tự động thông qua 3 lớp nhận dạng (input -hidden -output) để cùng giải quyết vấn đề.

Để tránh lạc đề cũng như giới hạn trong kiến thức về Deep learning nên mình chỉ giới thiệu nhanh như ở trên. Nếu muốn tìm hiểu sâu các bạn có thể search cụm từ khoá: Deep learning là gì?

II/ Có những giải pháp nào cho hệ thống Machine learning nào?

Hiểu được về các thuật toán trên Machine learning sẽ giúp bạn áp dụng vào sản phẩm một cách hợp lý. (Image by Jaroslaw Danilenko)

Tuỳ vào nhu cầu cũng như luồng dữ liệu được cung cấp, bạn có thể định hình được hệ thống Machine learning muốn dựng dựa trên những gợi ý thuật toán mà mình liệt kê dưới đây:

Supervised Learning

Đây là một thuật toán giúp hệ thống Machine learning của bạn có thể tự học để “nhận thức" và đáp ứng được những yêu cầu cụ thể. Bằng cách dựa theo các tệp dữ liệu có sẵn và đã được định nghĩa theo một logic tối ưu.

Ứng dụng: Supervised learning là thuật toán được sử dụng phổ biến nhất hiện nay thông qua tất cả các định nghĩa trên hệ thống AI. Ví dụ thực tế:

  • Hệ thống nhận diện khuôn mặt trên Facebook
  • Hệ thống gợi ý và hiển thị quảng cáo dành cho người xem trên Youtube
  • Hệ thống phát hiện và dịch ngôn ngữ tự động của Google

Unsupervised Learning

Đây là thuật toán giúp hệ thống Machine learning có thể tự học mà không cần phải thiết lập nguồn dữ liệu đã được định dạng sẵn như ở Supervised learning.

Ứng dụng: Thuật toán Unsupervised learning hiện tại đang được sử dụng khá hiệu quả thông qua định nghĩa Prepare Content. Ví dụ thực tế:

  • Hệ thống AI gợi ý nội dung tương tác ở các sản phẩm xem MV và nghe nhạc trực tuyến như Youtube, Spotify.
  • Hệ thống AI tiến đoán và gợi ý sản phẩm cho người dùng trên các sản thương mại điện tử như Amazon, Tiki.

Các bạn có thể đọc trong bài viết bên dưới để nắm được nhé.

Prepare Content -Dự đoán và thiếp lập nguồn nội dung

Reinforcement Learning

Đây là một thuật toán được phát triển giúp cho hệ thống Machine learning có thể tự động nhận diện được hoàn cảnh. Từ đó đưa ra được quyết định bằng cách thực hiện một hành vi có tỉ lệ % mang lại lợi ích cao nhất.

Ứng dụng: Hiện tại Reinforcement learning đang được các hãng công nghệ lớn áp dụng thử nghiệm vào các AI có thể chơi game tự động với người. Ví dụ gần đây nhất chúng ta có thể kể đến:

  • AI có tên gọi dự án là OpenAI Dota 2 bot đã hạ gục game thủ nổi tiếng nhất thế giới trong trận chiến 1 vs 1 tại chung kết Dota 2 thế giới 2017.
  • AI có tên gọi dự án là AlphaGo với sự sáng tạo kết hợp từ 2 thuật toán chính là Supervised learning và Reinforcement learning đã chiến thằng được cả một kỳ thủ cơ vây.

III/ Hãy nắm rõ công thức tư duy

Tương tự như trong xây dựng Design System chúng ta có mô hình workflow “Atomic Design” để xây dựng logic file và tối ưu hoá công việc.

Xây dựng Design System với Atomic Design.

Thì với các thuật toán trong hệ thống Machine learning, chúng ta cũng có công thức tư duy riêng để giúp hình thành logic phân tích dữ liệu một cách có khoa học.

Hãy làm chủ công thức tư duy để hình thành logic phân tích dữ liệu một cách khoa học. (Image by Jaroslaw Danilenko)

Mình sẽ lấy ví dụ “Đâu là Boy và đâu là Girl?” đưa ra ở trên để ví dụ cho công thức tư duy này:

A/ Mong muốn của mình là: Sản phẩm có thể “nhìn” vào một nguồn dữ liệu ngoài (tạm gọi là hình ảnh) và biết được đâu là Boy hay Girl?

  • Nhận thức giới tính- Đây là mong muốn chính của mình.
  • Supervised learning- Là thuật toán mình sẽ áp dụng.

B/ Việc mình cần làm là xây dựng logic hệ thống theo quy chuẩn sau:

Observation ->Label ->Model (mình hay gọi là data_group) ->Parameter

1/ Tạo một cơ sở dữ liệu quan sát (Observation) bao gồm nhiều những bức hình Boy và Girl.

  • Quy định đây là nguồn Input có giá trị chung là “x”.
  • Giá trị x=(x1, x2).

2/ Định danh label cho từng nguồn dữ liệu mà hệ thống Machine learning sẽ dựa vào đó để học. Theo ví dụ ở trên bạn có thể thấy là: Mặt, tóc, mũi, cơ thể v.v.v.v

  • Quy định đây là nguồn Output có giá trị “y”.
  • Mỗi observation đi kèm một label tương ứng

3/ Xây dựng logic cho data_group (hoặc bạn có thể gọi là model) để hệ thống có thể học hiểu.

  • Quy định data_group (model) là hàm số f(x).
  • Công thức logic sẽ là: Nhận vào 1 observation x và trả về một label y=f(x)
  • Ví dụ: Nhận được yêu cầu đây có phải là boy (Observation x) Tóc ngắn + cơ thể không có ngực (chung là y) sẽ là Boy-(Gọi là f(x)).

3.1/ Trên là ví dụ cơ bản, còn mình muốn hệ thống Machine learning của mình phải giúp sản phẩm biết được Boy hay Girl đó thuộc châu lục nào. Thì sẽ định nghĩ thêm logic màu da, kiểu tóc, màu mắt, cấu trúc mặt cho data_group (model).

  • Với 3.1 thì các bạn kết hợp nhiều hàm số f(x) lại với nhau. Đến bước này bạn sẽ không cần quan tâm, vì các developers sẽ can thiệp và hỗ trợ.

4/ Kết quả nhận được là AI với tầng “nhận thức” Machine learning của mình sẽ “nhìn” và so sánh với các data_group (model) đưa được ra ở trên để tiên đoán và đưa ra kết quả.

  • Từ các giá trị ở data_group (model) đội ngũ phát triển của bạn sẽ giải ra được các parameter.
  • Parameter: Chính là kết quả gợi ý mà chúng ta thấy trên sản phẩm.
  • Ngoài ra còn có một hàm Parameter đặc biệt có tên gọi là Hyperparameter.

Lưu ý:

  • Ở vị trí là một nhà thiết kế sản phẩm, bạn không cần phải là người biết dựng hay giải công thức của các thuật toán.
  • Hoặc cũng có thể không cần phải hiểu sâu như mình phân tích các thành phần có giá trị “x" hay “y".v.v.v ở trên (biết thì sẽ nắm sâu hơn).

Chỉ cần nắm được các thành phần chính trong công thức tư duy mà mình liệt kê. Từ đó, phối hợp với các developer để biết được hệ thống Machine learning của bạn cần phải được “dạy” và “học” gì để thoả mãn được các yêu cầu từ sản phẩm.

Hy vọng, với bài viết chia sẻ góc nhìn này của mình sẽ giúp mọi người có một cái nhìn tổng quan hơn để áp dụng vào công việc thực tiễn. Good luck (Chúc may mắn).

Xin cảm ơn, vì đã mất công đọc đến tận đây. Hãy để lại nhận xét của bạn trong bài viết này để chúng ta cùng thảo luận nhé.

Mình là An : ).

--

--