Machine Learning cho người bắt đầu

Bắt đầu học Machine Learning

Những bạn yêu thích Machine Learning và không biết mình nên bắt đầu từ đâu có thể tham khảo bài viết này. Mọi câu hỏi, các bạn có thể comment bên dưới, mình luôn sẵn sàng ở đây để hỗ trợ.

Khởi động

Bạn cần làm quen với một vài điểm cơ bản để bắt đầu cuộc hành trình của mình.

Machine learning là gì

Tại sao cần Machine learning

Những ứng dụng thương mại của Deep learning

Các công ty Startup về Deep learning

Machine Learning và Real-Time Bidding

Kĩ năng phân tích dữ liệu

Bạn cần học và thực hành tiến trình áp dụng machine learning vào bài toán cụ thể. Chuẩn bị dữ liệu > Huấn luyện > Đánh giá và lựa chọn mô hình.

Cách xác định bài toán trong Machine Learning

Kỹ năng làm việc với Machine Learning

Tiền xử lý dữ liệu (Horse Colic dataset)

Getting and cleaning data: Các phương pháp lấy mẫu (Sampling)

Lấy và làm sạch dữ liệu: Xử lý dữ liệu ngoại lai (Outliers)

Feature engineering là gì

Đánh giá mô hình (Model evaluation)

Statistical hypothesis testing cho dân lập trình

Exploratory Data Analysis: Các nguyên tắc trình bày biểu đồ

Kỹ năng hệ thống

Bạn cũng nên chuẩn bị cho mình phương pháp quản lý dự án và thao tác nhanh với hệ thống.

Git notes

Command line thường dùng

Hướng dẫn deploy Spark

Soạn slides bằng Beamer

Viết luận văn bằng LaTeX

Tiếp tục đọc

Advertisements

Làm việc với Spark DataFrames – Truy vấn nâng cao (Subqueries, Cube, Rollup)

spark_dataframe_cube

Tiếp theo bài Truy vấn cơ bản với Spark Dataframe, bài viết này tập trung sử dụng Spark-SQL để thực hiện các truy vấn SQL nâng cao hơn như truy vấn lồng và tổng hợp dữ liệu với Cube, Rollup. Lý do sử dụng SQL thay vì các hàm dựng sẵn của Dataframe là do tính dễ dùng. Ta đã quá quen thuộc với cú pháp và cách truy vấn sử dụng ngôn ngữ này.

Thông qua notebook, ta sẽ biết cách đặt truy vấn lồng tại các mệnh đề SELECT, FROM, WHERE như thế nào thông qua các ví dụ minh hoạ đơn giản. Sau đó, ta tiếp tục bước tổng hợp dữ liệu cho OLAP ra sao. Dữ liệu được phát sinh từ trang https://www.mockaroo.com/.

Download:

Thống kê ứng dụng 3: Các vấn đề trong thống kê

ANOVA

Trong phần 1, ta đã biết về các khái niệm: means, median, standard deviations. Phần 2, ta cũng đã biết cách tính confidence interval và thực hiện hypothesis testing như thế nào. Trong phần cuối series học thống kê thông qua lập trình Jupyter notebook, ta giải quyết các vấn đề trong thống kê gồm:

  • Tính khoảng tin cậy như thế nào nếu mẫu dữ liệu thu thập nhỏ hơn 30?
  • So sánh hai quần thể xem chúng có khác biệt nhau hay không (thường ứng dụng trong A/B testing)?
  • Làm sao để kiểm tra 2 bản báo cáo lượt view giữa Facebook và Google bằng Chi-square?
  • ANOVA trong việc phân tích mức độ yêu thích của người dùng giữa các bộ phim?

Download: Jupyter notebook

Thống kê ứng dụng 2: Suy luận thống kê

Statistics for Hackers

Ở phần trước, ta đã tìm hiểu các khái niệm cơ bản của thống kê như means, median, standard deviations, probability, normal distribution, central limit theorem. Những độ đo này giúp ta hiểu biết tổng quan về dữ liệu đang phân tích. Trong phần tiếp theo, ta sẽ tìm hiểu về suy luận thống kê từ các độ đo này. Ta sẽ biết thế nào là độ lỗi chuẩn (standard error), làm sao để tính khoảng tin cậy (confidence interval) cho một mẫu bất kỳ vừa thu thập được, và thực hiện kiểm định giải thuyết như thế nào cho những câu hỏi được đặt ra.

Tất cả những thao tác này được gọi là suy luận thống kê (inferential statistics). Ví dụ, một lớp học gồm 50 học sinh. Trong đó, các bạn nữ cho rằng mỗi lần khảo bài thì họ bị gọi lên nhiều hơn các bạn nam. Họ cho rằng như vậy giáo viên đã thiên vị. Còn giáo viên thì cho rằng họ thực hiện điều này một cách ngẫu nhiên. Vậy ai đúng trong trường hợp này. Thông qua suy luận thống kê, ta sẽ tiến hành lấy mẫu thực nghiệm, đặt giả thuyết thống kê, xác định ngưỡng bác bỏ \alpha, tính toán z-score và p-value, cuối cùng là so sánh \alpha và p-value để xem kết luận cuối cùng là gì.

Download: Jupyter notebook

Xem thêm:

Thống kê ứng dụng 1: Quan sát dữ liệu

rating_histogram

Học thống kê thông qua lập trình sẽ giúp ta không chỉ kiểm chứng lại lý thuyết đã học mà còn hỗ trợ nắm bắt các khái niệm phức tạp một cách dễ dàng hơn. Thêm vào đó, ta sẽ biết cách ứng dụng những kiến thức này vào trong công việc khi cần thiết.

Ta sử dụng Jupyter notebook để điểm qua các khái niệm, thao tác cơ bản giúp quan sát và mô tả dữ liệu. Ta sẽ phân biệt được các loại dữ liệu (nomial, numbers, odinal, ratio) trong dataset như thế nào, tìm trọng tâm của tập dữ liệu, quan sát sự biến đổi của dữ liệu thông qua các chỉ số cơ bản (range, variance, standard deviation, z-score, percentile), cùng với một vài nguyên lý tính xác suất Bayes và cách mô phỏng central limit theorem.

z_score_distribution

central_limit_on_rating

AI, Machine Learning, Deep Learning phân biệt như thế nào cho đúng

AI là một thuật ngữ cao siêu mà có lẽ ai cũng từng nghe qua. Lấy cảm hứng từ bộ phim hoạt hình Baymax (Big hero 6), một chú robot thông minh phục vụ và chăm sóc sức khoẻ con người, cũng như có bạn đọc yêu cầu giải đáp thuật ngữ này nên tôi quyết định dành ra một góc để nói về AI.

Bài viết nhằm mục đích làm sáng tỏ cho những bạn chưa phân biệt được các khái niệm AI, Machine Learning – ML và Deep Learning – DL. Dĩ nhiên, người trong ngành phân biệt điều này khá dễ nhưng để có thêm thông tin bổ ích tôi sẽ tổ chức lại kiến thức liên quan để bạn đọc quan tâm tìm hiểu và tiện tra cứu tài liệu hơn.

Tiếp tục đọc

Information extraction – Bài toán rút trích thông tin trong văn bản

brat_annotation_tools

Trong bài viết này, ta sẽ khảo sát bài toán Rút trích thông tin (Information extraction – IE), một nhánh nghiên cứu nâng cao thiên về rút trích thông tin ngữ nghĩa trong văn bản. Từ đây, ta sẽ có nhiều ứng dụng cho nhiều domain như Web mining (rút trích tên người nổi tiếng, sản phẩm đang hot, so sánh giá sản phẩm, nghiên cứu đối thủ cạnh tranh, phân tích tâm lý khách hàng), Biomedical, Business intelligent, Financial professional (đánh giá thị trường từ các nguồn khác nhau: giá xăng dầu tăng giảm, thông tin chiến tranh, chính trị giữa các nước, điều luật mới trong thị trường kinh doanh), Terrism event (sử dụng vũ khí gì, đối tượng tấn công là ai).

Sau các bước tiền xử lý thiên về từ vựng và cú pháp như tách câu, tách từ, phân tích cú pháp, gán nhãn từ loại. Từ IE ta sẽ đơn giản hóa thành các bài toán con gồm: Rút trích tên thực thể (Named entity recognition – NER: people, organization, location), phân giải đồng tham chiếu (Coreference resolution) và Rút trích quan hệ giữa hai thực thể (Relation extraction – RE: founderOf, headQuarteredIn). Các mô hình khi thực nghiệm sẽ được đánh giá thông qua các chỉ số Precision, Recall, F1-score. Dưới đây là một ví dụ về rút trích quan hệ trong câu.

Tiếp tục đọc

Bắt đầu nghiên cứu big data từ đâu và như thế nào

Đây là tâm nguyện đầu tiên của mình khi trở về Việt Nam sau 1 năm học tập và nghiên cứu tại JAIST. Nhằm mong dấn thân vào trải nghiệm, thử thách bản thân mình với những công nghệ state-of-the-art trong Big Data.

Sau hơn 1 năm làm việc và nghiên cứu, trày mình tróc vảy, rốt cuộc cũng gom góp được chút ít chia sẻ cho anh chị bạn bè gần xa quan tâm và muốn ứng dụng Big Data vào tổ chức của mình.

Slide sẽ dẫn dắt mọi người đi vào cuộc hành trình của Data từ lúc còn trên giấy bút cho đến các hệ thống Business Intelligent và tại sao công nghệ Big Data là cấp thiết trong thời đại hiện nay khi muốn nâng cao khả năng sản xuất và cạnh tranh với đối thủ của mình. Các anh chị muốn lập team làm về Big Data cũng sẽ hiểu được những khó khăn và thử thách của anh em dev đang đối mặt, nhờ vậy mà có những chính sách và phúc lợi tốt hơn để bồi dưỡng đội ngũ của mình.

Data Science – Mỏ vàng của Kỉ nguyên số

Đây là lần đầu mình talk trong một sự kiện lớn do TopDev kết hợp VNG tổ chức nên mình rất làm vinh dự và háo hức được chia sẻ những kiến thức cũng như kinh nghiệm học tập làm việc trong hơn 1 năm qua. Sự kiện này nhằm mục đích chính giống lên hồi chuông để mọi người ở các lĩnh vực khác nhau chú ý và quan tâm hơn đến “mỏ vàng” này.

Slide trình bày trên tóm tắt những khái niệm cơ bản về Data Science. Sau đó, các bạn sẽ biết chức danh Data scientist ra đời như thế nào. Từ đây, bạn nào quan tâm hơn về vai trò này có thể tham khảo các con đường sự nghiệp mà thị trường hiện nay đang đòi hỏi.

SMA 2017 – Lý thuyết ra quyết định

bayesian_mindset

Khi làm việc với các bài toán ra quyết định, xác suất thống kê được sử dụng rất nhiều trong việc đưa ra những dự báo mang hàm nghĩa không chắc chắn. Ta chỉ có thể cung cấp kết quả dự đoán đại loại như 86%, 91%, hay 99% nhưng không bao giờ bạn chắc chắn được 100%. Bù lại kết quả này cho bạn biết, khi ra quyết định 100 lần thì ít ra bạn cũng đạt được chừng ấy mục tiêu của mình, đồng thời bạn cũng sẵn sàng chấp nhận trả giá cho những phần trăm còn lại.

Tham dự khoá học SMA-2017 cũng là cơ hội cho tôi ôn lại kiến thức lý thuyết xác suất thống kê đã từng bỏ bê thời còn đi học. Đặc biệt là hướng tiếp cận của Bayesian đang được cộng đồng nghiên cứu và áp dụng rất nhiều trong việc dự báo tương lai. Buổi học bắt đầu bằng những kiến thức căn bản để học viên có thể bắt nhịp lại các khái niệm, các thuật ngữ, lý do tại sao ngành thống kê ra đời. Sau đó là những so sánh chi tiết hơn giữa hướng tiếp cận truyền thống và hướng tiếp cận của Bayesian. Thống kê truyền thống (classical statistics) thường tin vào xác suất tính được sẽ luôn lặp lại đúng như vậy và dùng nó để dự đoán trong tương lai, nghĩa là nếu tung đồng xu 1000 lần ta có tỉ lệ head/tail đều là 70/30 thì các lượt tung tiếp theo tỉ lệ head xuất hiện sẽ cao hơn tail. Ngược lại, Bayesian sử dụng dữ liệu thu thập được theo thời gian để điều chỉnh lại niềm tin ban đầu (prior knowledge) này sao cho ít bị chủ quan hơn, nhờ vậy mà dự đoán trong tương lai sẽ thận trọng hơn nhiều.

Ở đây là ghi chú cũng khá ngắn gọn của tôi, mặc dù đã cố gắng hoàn chỉnh lại nội dung để bạn đọc dễ theo dõi và tìm hiểu nhưng sẽ còn nhiều chỗ khó hiểu cần tham khảo các nguồn tài liệu bên ngoài, nên tôi cũng cung cấp thêm các đường link liên quan, các bạn có thể từ đó bù đắp lại các kiến thức mơ hồ. Hoặc bạn cũng có thể sử dụng bài viết này để làm cheat sheet tham khảo nhanh cho công việc hiện tại của mình.

Tiếp tục đọc

SMA 2017 – Lý thuyết tập thô (P4) – Rút trích luật quyết định

rules_extraction

rules_extraction

Trong thực tế, mặc dù đã có trong tay nhiều thông tin nhưng sự nhập nhằng và mơ hồ luôn tồn tại trong quá trình đưa ra quyết định. Trong quyết định, có quyết định an toàn và chắc chắn như bỏ vốn tiết kiệm vào ngân hàng và biết trước lãi suất hằng năm là bao nhiêu. Cũng có quyết định mang tính rủi ro như đầu tư chứng khoán, ta chỉ biết một vài thông tin về công ty hay lịch sử giao dịch quá khứ, cũng có thể đây là công ty mới lên sàn và không hề có bất kỳ thông tin gì. Ngoài ra, còn có những quyết định mang tính đánh đổi như quyết định giữa việc tiếp tục đi làm hay tự startup công ty để tăng nguồn thu nhập cho bản thân, …

Các thuật toán Machine learning bạn từng biết như Decision tree, Association rules, … cũng hỗ trợ ra quyết định. Trong bài viết này, ta hãy thử tìm hiểu lý thuyết tập thô có giúp cho chúng ta tìm ra quyết định chính xác và phù hợp hay không.

Tiếp tục đọc