Machine learning là gì

Supervised classification

Supervised classification

Khi làm việc trong lĩnh vực Machine learning, ắt hẳn một ngày đẹp trời, bạn sẽ được đồng nghiệp hay những đứa bạn của mình hỏi rằng “Machine learning là gì?”. Để trả lời ngay câu hỏi trên không phải là điều đơn giản vì trên thực tế ta có nhiều hơn một định nghĩa về Machine learning. Do đó, hãy thủ sẵn cho mình câu trả lời ngắn gọn và dễ hiểu nhất để thể hiện bạn không phải là tay mơ trong lĩnh vực này.

Theo góc nhìn của tâm lý học

Con người nhìn nhận thế giới qua các giác quan của mình gồm thị giác, thính giác, xúc giác, khứu giác, và vị giác. Từ những thông tin nhận được qua các giác quan này, mỗi người sẽ có những góc nhìn, những phân tích và đánh giá riêng. Ví dụ, thông qua thị giác của mình, một người sẽ cho rằng đây là tấm hình một người phụ nữ đứng bên góc cây ven sông, nhưng người kia lại cho rằng đây là khuôn mặt của một người đàn ông hói trán.

Hình đa nghĩa

Hình đa nghĩa

Hoặc vào thời đại mà kiến thức con người còn hạn hẹp, mọi người đều cho rằng mặt trời quay xung quanh trái đất và trái đất là trung tâm của vũ trụ. Nhưng khi ta xem hiện tượng tự nhiên này dưới một góc nhìn khác là góc nhìn khoa học thì ta biết rằng trái đất quay xung quanh mặt trời. Quay lại định nghĩa Machine learning:

Ta xem máy tính cũng như con người. Bằng những mô hình (góc nhìn) khác nhau, máy tính sẽ cho ra những kết quả với độ chính xác khác nhau. Do đó, việc lựa chọn đúng mô hình cho từng bài toán cụ thể là một yếu tố quan trọng.

Theo góc nhìn của người trong ngành

Trong cuốn sách Machine learning của Tom Mitchell. Ông định nghĩa như sau:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

Từ định nghĩa trên, ta có thể diễn giải như sau: máy tính được gọi là học từ kinh nghiệm (dữ liệu) E với tác vụ (dự đoán, phân lớp, gom nhóm) T và được đánh giá bởi độ đo (độ chính xác) P nếu máy tính khiến tác vụ T này cải thiện được độ chính xác P thông qua dữ liệu E cho trước.

Thoạt đầu ta có thể lúng túng trước phát biểu này, nhưng đây là các thành phần cở bản mà bất cứ hệ thống Machine learning nào cũng có. Đó là, dữ liệu E cho trước (tập dữ liệu email) nhằm hoàn thành tác vụ T (xác định email là spam hay không). Mô hình này được đánh giá bởi độ đo P (độ chính xác), từ đó ta có thể tiến hành cải thiện mô hình dựa vào độ đo P này.

Theo góc nhìn của thống kê

Trong cuốn sách Pattern recognition của Christopher Bishop ông có phát biểu khác dưới góc nhìn của thống kê.

Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field.

Pattern recognition (nhận diện mẫu hay nhận diện quy luật) là cách nhìn khá thú vị. Từ xa xưa, ông cha ta có đưa ra một số quy luật nhờ biết quan sát hiện tượng tự nhiên như “Chuồn chuồn bay thấp thì mưa, bay cao thì nắng, bay vừa thì râm”. Do tập dữ liệu quá lớn, với khả năng quan sát hữu hạn của con người, ta khó có thể nhận diện được các quy luật để xây dựng mô hình dự đoán chính xác. Vì vậy, dựa vào các mô hình thống kê, ta hy vọng rằng máy tính có thể đưa ra những quy luật tìm ẩn có giá trị để chúng ta có thể khai thác và phục vụ cho những nghiên cứu của mình.

Dự báo thời tiết nhờ quan sát hoạt động của chuồn chuồn

Dự báo thời tiết nhờ quan sát hoạt động của chuồn chuồn

Theo góc nhìn của lập trình viên

Để có thể cài đặt được mô hình Machine learning, ta tiến hành các bước sau:

  1. Chuẩn bị dữ liệu để cho máy tính “học”. (Data)
  2. Xây dựng mô hình thông qua dữ liệu đầu vào. (Algorithm)
  3. Đánh giá mô hình vừa mới xây dựng. (Model)
Machine learning framework

Machine learning framework

Câu trả lời ngắn gọn

Qua các góc nhìn thú vị trên, tôi sẽ đưa ra định nghĩa riêng của mình về Machine learning.

Machine learning là quá trình xây dựng mô hình dự đoán dựa vào dữ liệu cho trước và được đánh giá hiệu suất bởi một độ đo nào đó.

Tóm lại, để máy tính có thể học ta cần có dữ liệu cho trước. Không có dữ liệu thì máy tính không thể học. Từ dữ liệu này, tùy vào bài toán chúng ta cần giải quyết mà ta sẽ quyết định lựa chọn mô hình phù hợp để có thể đưa ra kết quả chính xác nhất.

Tài liệu tham khảo

Dưới đây là những đầu sách tham khảo trong bài viết này. Những cuốn sách này bạn có thể tìm thấy trên Amazon, việc sở hữu những cuốn sách gối đầu giường này là khoảng đầu tư đáng giá khi bước vào lĩnh vực Machine learning.

Ngoài ra, còn có một cuốn sách thiên về ứng dụng thực tế được viết bởi Drew Conway với nhan đề Machine Learning for Hackers.

Nguồn tham khảo:

Advertisements

23 thoughts on “Machine learning là gì

  1. Em Chào anh.
    Em mới tốt nghiệp cử nhân kinh tế, vô tình em đã đọc được những bài viết của anh trên mạng, em đã đọc hầu hết những bài viết rất tâm huyết của Anh về lĩnh vực machine leaning và em đã tìm được đam mê thực sự của mình ở lĩnh vực này. Em đã tìm hiểu về machine learning và em cũng tự học Python được gần 2 tháng. Nhưng em thấy lĩnh vực này rất rộng và khá mơ hồ với em.
    Dựa vào kinh nghiệm của Anh thì Anh có thể giúp em biết lộ trình để học về Machine Learning với 1 người mới bắt đầu như em được không ạ?
    Trong quá trình học đại học thì em cũng có tự học và khá nắm vững về C++, C#.
    Em cảm ơn Anh.

    Số lượt thích

    • Hi em,

      Đối với machine learning, muốn học tường tận thì tốt nhất em nên chuẩn bị cho mình background thật vững về Toán (đại số tuyến tính, giải tích, toán rời rạc, và xác suất thống kê – cái này chắc khoa kinh tế có làm việc nhiều).

      Giai đoạn này khá mất thời gian, có khi gây ra chán nản, nên anh nghĩ tốt nhất em nên bắt đầu với Kaggle Titanic sau đó chọn tiếp cho mình những project tương tự từ thấp đến cao để tìm hiểu. Mục đích để vừa học vừa làm, có gì không hiểu thì ta sẽ tra lại các kiến thức về toán để hiểu hơn về thuật toán họ sử dụng.

      Trên thực tế, xây dựng mô hình machine learning chỉ là một công đoạn nhỏ trong toàn bộ quy trình (còn có tiền xử lý, phân tích dữ liệu, feature engineering, …). Nếu cần có một công việc liên quan, em có thể bắt đầu với vị trí Data Analyst/ Data Engineer (nếu em code giỏi). Nhờ làm việc cùng với Data Scientists em sẽ có cơ hội học hỏi nhều hơn với các dự án trong thực tế. Dần dần phát triển bản thân mình trong lĩnh vực này.

      Chúc em thành công 🙂

      Số lượt thích

  2. em chào anh !
    Em là sinh viên chuẩn bị làm web về thương mại điện tử có liên quan hệ thống gởi ý như trang amozon , em không biết bắt đầu từ đâu anh à, xây dựng csdl sau , thuật toán gì khi và làm sau để hiểu nó và code ,rối quá anh à , em là sinh viên không có học về khoa học máy tính mà cái này có liên quan đến giải thuật ! anh tư vấn giúp em với anh ?
    Em cảm ơn anh nhiều lắm !

    Liked by 1 person

  3. em chào anh ,
    Hiện tại em làm ở fpt em đang học tập để trở thành Data Scientists em đã có thời gian và có 1 chút kinh nghiệm làm viêc trong lĩnh vực Data Engineer. Nhưng em còn thấy mình còn yếu trong lĩnh vưc toán để có thể áp dụng trong Machine Learning . Nên em muốn anh tư vấn cho em một số tài liệu và 1 số khóa học online .

    Em xin trân thành cảm ơn ạ.

    Số lượt thích

  4. Chào anh, em đang sử dụng SVR cho phân tích dữ liệu của mình, nhưng em gặp vấn đề trong lập công thức tương quan dựa trên SVR. Em đã tính toán được giá trị w và b cho công thức y = w.x +b thông qua R sofware. Em đã ước tính giá trị y trên phần mềm R, đồng thời áp dụng công thức này để chiết xuất giá trị y theo x trên excel, nhưng kết quả trên R và excel hoàn toàn khác nhau. Có phải em đã làm thiếu giai đoạn nào rồi không. Mong anh giải đáp giúp. Em chân thành cám ơn.

    Số lượt thích

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s