Showing posts with label ml. Show all posts
Showing posts with label ml. Show all posts

4/06/2022

Khai phá web | Tài liệu, chuyên ngành


Khai phá web là một môn tự chọn được dạy trong học phần kỹ sư của khoa học máy tính và kỹ thuật thuật máy tính. Bởi vì là một môn tự chọn nên các bạn hoàn toàn có thể chọn một môn khác thay thế môn này.

Với khai phá web các bạn sẽ được nhắc lại các kiến thức về Machine learning, Deep learning, một số các phần mới như là tìm kiếm thông tin. Ngoài ra thì các bạn sẽ được đi vào và giới thiệu tới các bài toán cụ thể như là: phân tích liên kết, phân tích quan điểm, trích rút thông tin, khai phá truy vấn & quảng cáo trực tuyến. 

Khi học về những năm cuối, nhất là những bạn theo định hướng hệ thống thông tin thì các bạn sẽ thấy các môn học có sự giao nhau rất nhiều, ví dụ như môn nhập môn khoa học dữ liệu các bạn sẽ thấy có 1 ít về các kiến thức Machine Learning đã được học, 1 ít kiến thức về tìm kiếm thông tin bên khai phá web, 1 ít kiến thức về bigdata đã được học ở lưu trữ và xử lý dữ liệu lớn cộng với 1 phần kiến thức mới là trực quan hóa dữ liệu. Điều này thì cũng hợp lý thôi, các môn học hay các lĩnh vực trong CNTT nói chung và KHMT nói riêng thì có sự liên quan chặt chẽ với nhau chứ không thể nói là môn này, lĩnh vực này tách riêng biệt hoàn toàn với các khác được. Tuy nhiên thì mỗi môn sẽ tập chung vào một phần chính như khi các bạn học nhập môn AI, nhập môn ML các bạn sẽ được tập chung chính vào giới thiệu các thuật toán, cách làm, làm như nào, tối ưu như nào, tức là học sâu về phần mô hình, còn khi học khai phá web các bạn sẽ được giới thiệu sâu hơn về phần ứng dụng như là ứng dụng các mô hình này vào các bài toán thực tế, còn trong nhập môn khoa học dữ liệu các bạn sẽ được học sâu hơn về phần xử lý và trực quan hóa dữ liệu.

Về nhận xét của mình về môn học thì môn học là một môn cũng khá hay, các bạn có thể chọn nó làm 1 trong 3 môn tự chọn kỹ sư của mình.

Thầy dạy môn này có thầy Nguyễn Kiêm Hiếu, thầy thì giao khá nhiều bài tập trong tuần, cũng như các bạn có thể phải làm các bài quizz nhỏ từng tuần. Tuy nhiên thì thầy chấm điểm cũng khá thoáng, học thầy các bạn cũng sẽ được nghe các buổi seminar do sinh viên của thầy trình bày cũng khá hay và thú vị. Các bạn có thể theo dõi website cá nhân của thầy Hiếu tại đây: https://users.soict.hust.edu.vn/hieunk/

Tài liệu môn học

- Slide môn học khai phá web: TẢI VỀ SLIDE
- Đề thi tham khảo khai phá web: TẢI VỀ ĐỀ THI THAM KHẢO

10/18/2021

Chia sẻ các website học Machine Learning, Deep Learning và liên quan | Share


Nếu các bạn học Khoa học máy tính thì sẽ có 1 mô đun có môn học sâu và ứng dụng. Môn học sẽ giới thiệu tới mọi người các kĩ thuật cơ bản của học sâu, ứng dụng của học sâu, các phần cứng, phần mềm sử dụng trong học sâu,... Nhưng về cơ bản thì mọi thứ chỉ là mang tính giới thiệu là chính. 

Nếu muốn đi theo hướng này thì các bạn hãy tự mình tìm hiểu thêm, xin lên lab các thầy cô để được các thầy, các anh chị hướng dẫn và quan trọng hơn trên nếu cố gắng thì các bạn sẽ được các thầy cô giới thiệu tới các công ty để giành những suất học bổng, việc làm,...

Trong bài viết này mình sẽ chia sẻ tới mọi người một số website tốt nhất hỗ trợ việc học AI, ML, DL.

https://stanford.edu/~shervine/l/vi/

Blog của tác giả Shervine Amidi và người anh em song sinh của anh là Afshine Amidi. Website chia sẻ lại các nội dung là kết quả sau quá trình làm trợ giảng tại đại học Stanford gồm rất nhiều các phần, mục hay: 

  • Trí tuệ nhân tạo

  • Học máy

  • Học sâu

  • Phương trình vi phân thường

  • Xác suất và thống kê

Tek4 - tự học Tensorflow

Tensorflow là một thư viện deep learning mã nguồn mở được phát triển bởi Google và đây là một trong những công cụ phổ biến nhất sử dụng trong deep learning. Loạt bài viết này của Tek4 rất phù hợp cho người mới bắt đầu, biết ít hoặc chưa biết về tensorflow.

https://machinelearningcoban.com/

Chắc chắn là không thể thiếu website của anh Tiệp machinelearningcoban. Anh Vũ Hữu Tiệp là tiến sĩ ngành học máy và thị giác máy tính tại Đại học bang Pennsylvania (Pennsylvania State University), Hoa Kỳ. Blog này mình nghĩ khá là nổi tiếng vì có ranking khá cao trên Google và nếu mình không chia sẻ thì nhiều người cũng sẽ biết tới blog này rồi.

https://nttuan8.com/

Chúng ta đã có blog về machine learning cơ bản vậy thì cũng không thể thiếu blog deep learning cơ bản được. 


Blog deep learnig cơ bản được viết bởi tác giả Nguyễn Thanh Tuấn là thạc sĩ chuyên ngành Machine Learning, đại học Bristol, Anh Quốc. 

Anh Tuấn cũng là tác giả cuốn sách Deep Learning cơ bản. Blog của anh Tuấn cũng chia sẻ các các kiến thức về deep learning, Pytorch, mô hình GAN.

https://trituenhantao.io/

trituenhantao.io cũng là một cộng đồng lớn chia sẻ các kiến thức về AI, ML và DL, các bài viết về công nghệ, các tin tức về trí tuệ nhân tạo trên thế giới. Các bạn có thể tham gia đóng góp bài viết cùng với trituenhantao.io tại community.trituenhantao.io (bạn sẽ nhận được hoa hồng khi đóng góp các bài viết trên community.trituenhantao.io nhận từ Medium).

CS224N: Natural Language Processing with Deep Learning


Đây là loạt video bài giảng về xử lý ngôn ngữ tự nhiên với deep learning được đăng trên kênh youtube stanford online. Các bài giảng đều hấp dẫn và chi tiết với độ dài sấp xỉ 1 tiếng / 1 video.

Một số các blogs khác bạn có thể tham khảo thêm như là: 

9/12/2021

Nhập môn học máy và khai phá dữ liệu


Trong seri bài này mình sẽ tóm tắt các phần liên quan tới học máy và khai phá dữ liệu dựa trên slide và bài giảng môn học được thầy Thân Quang Khoát giảng dậy https://bkai.ai/ (facebook BK AI fb.com/bk.ai ). Bài viết gạch ra một số ý mà theo mình thì nên trọng tâm, tuy nhiên mình khuyên các bạn nên học bài bản và xem video vì cá nhân mình xem 1-2 lần thì vẫn hơi mông lung :(  . Đây là môn học nên tảng, cung cấp kiến thức cơ bản nhất cho các bạn theo định hướng data scientis (hiểu sơ sơ  là sử dụng các kĩ thuật học máy (cluster analysis, decision trees, random forest, neural networks, logistics regression, ...) để xây dựng các mô hình toán học phục vụ các bài toán kinh doanh ), còn cụ thể data scientis, data engineer, data analysis như nào các bạn có thể tham khảo yt.com/dataGuyStory và theo mình tìm hiểu data scientis thường là người có mức lương cao nhất.

Bài này mình sẽ tóm tắt 2 phần giới thiệu chung và Hồi quy (Regression) , còn lại một số khác như -Phân cụm(Kmean) , Học dựa trên láng giềng KNN, Cây quyết định, ... có lẽ (chỉ là có lẽ :D ) mình sẽ ra ở bài sau. Tài liệu môn học này sẽ được đăng sau nha :D 

Giới thiệu chung

  • Học máy : xây dựng hệ thống tự cải thiện bản thân bằng cách học từ dữ liệu

  • Khai phá dữ liệu : tìm ra tri thức

  • Học : improve Performance at Task, following Experience.
    ví dụ với bài toán phân loại thư rác :
    • P : độ chính xác của phân loại thư đó là rác 

    • T : phân loại

    • E : tập thư thường/ rác đã có từ trước thời điểm phân loại 

  • Bản chất của việc học : học hàm f : x -> y. f còn gọi là model (dữ liệu theo 1 mô hình nào đó ). học model là học tham số của model đó.

  • Dữ liệu học : tập học (training set, tập quan sát ) gồm X, Y (tập các x và y tương ứng). x là dữ liệu đầu vào và y là đầu ra của dữ liệu đó 

  • Phân loại: 

    • Học có giám sát ( supervised learning): 

      • Classification : Multiclass (phân loại nó vào 1 lớp), Multilabel(phân nó vào nhiều lớp - gán nhiều nhãn)

      • Regression : khác với classification là đây đầu ra liên tục.

    • Unsupervised learning (không có y, dữ liệu không có nhãn)

      • Phân cụm

      • Phát hiện xu hướng

    • Học bán giám sát :  Semi-Supervised Learning

    • Học tăng cường : Reinforcement Learning

  • Vấn đề: 

    • Giải thuật học ( chủ yếu là lặp để tối ưu) không hội tụ : No-free-lunch. không có thuận toán luôn hiệu quả trên mọi ứng dụng. mỗi bài toán cần thử nghiệm nhiều thuật toán xem cái nào tốt nhất.

    • Lựa chọn dữ liệu : nhiễu, lỗi

    • Khả năng học: khả năng khái quát hóa ( generalization) tập học để có thể  phân loại tốt trên tập thực tế(tập dữ liệu mới, tập dữ liệu tương lại  ), tránh vấn đề overfitting.

    • Overfitting (xảy ra khi khái quát hóa tốt khi học nhưng với tập dữ liệu tương lai, cái cần thì lại rất tệ ) : mô hình quá phức tạp, dữ liệu lỗi, quá bé.

    • Mong muốn tổng quát hóa cao , tương đương với việc không dính overfitting

    • Giải quyết : 1 trong số đó là kĩ thuật Regularization

Hồi quy

  • Học hàm, đầu ra liên tục

  • Linear model

  • x là đầu vào(các x i là các thuộc tính của 1 dữ liệu đầu vào / trong tập dữ liệu đầu vào ), w là trọng số, là cái cần đi học, tương đương với việc xác định đầu vào x đóng góp bao nhiêu phần vào việc quyết định đầu ra cho mô hình 

  • Cách học :

    • Hàm lỗi(lost, cost function) : với tập w hiện tại , ta sẽ tính được đầu ra, đầu ra đó là đầu ra của model (linear model ), nó hoàn toàn có thể khác với thực tế. đại loại lấy sai khác 2 cái này (đầu ra dự đoán của model với thực tế) 

    • Mong muốn lỗi này trên tất cả dữ đầu vào mà mình sở hữu trung bình thấp nhất

    • Thuật toán học : 

      • Cực tiểu hóa lỗi ordinary least squares: dùng gradient descent(từ từ cập nhật trọng số cho phù hợp )  có thể giải bằng toán học : chuyển vị gì đấy …(cho đạo hàm bằng 0 tìm luôn w cho nhanh ), vấn đề không có ma trận chuyển vị ?

      • phương pháp trên quá tập trung vào dữ liệu,không có bất cứ gì để điều chỉnh  khả năng tổng quát hóa cho tương lai =>sinh ra Ridge regression  bằng cách thêm lamda nhân bộ w(một đại lượng hiệu chỉnh mà mình đã nhắc trong bài 1 -Regularization ), hiểu là sau khi cho vào thì bạn sẽ cố gắng ép bọn w vê càng 0 càng tốt => kéo theo mỗi thuộc tính sẽ đóng góp rất ít vào việc quyết định đầu ra, tổng quát hơn (đoán thế :D). Nói chung turning lamda sẽ điều chỉnh đc độ overfitting. lamda càng lớn w càng nhỏ, lỗi tập train tăng, độ tổng quát tăng. (đánh đổi). lamda > 0 thì ma trận luôn khả nghịch

      • Lasso : cái lamda nhân bộ w ở trên cụ thể là nhân với L2 bộ w. ở đây thay L2 bằng L1. điểm hay của L1 là giảm miền tìm kiếm, lựa chọn thuộc tính(sẽ có 1 số thuộc tính không tác dụng cho w của nó = 0 ). dùng cho các bài toán nghiệm thưa . mất tính chất luôn  khả nghịch.

Mong nhận được bình luận cảm nhận, góp ý từ các bạn :(