Phần 1: Deep learning cho Chatbot - Giới thiệu

TBD

Mở đầu

Mình đang cố làm một em chatbot học từ lời thoại phim tiếng việt. Mình dùng encoder-decoder lstm impliment bằng tensorflow đã ok map đúng lời thoại. Mình đang cho train với full lời thoại khoảng hơn 6000 câu thoại, khá lâu hiện tại vẫn chưa xong (đã hơn 1 ngày). Cũng có thể do model của mình chưa được tốt. Nhưng loss vẫn đang giảm và chắc là được thôi :D .Mình sẽ giới thiệu trong các bài tiếp theo. Trong lúc chờ đợi thì mình dịch một blog viết về chatbot khá hay.

Deep learning cho chatbot

Chatbots cũng còn được gọi là Conversational Agents hay Dialog Systems, đang là chủ đề nóng. Microsoft đang tạo big bets chatbot, và tương tự với các công ty facebook(M), Apple(Siri), Google, WeChat, Slack. Có nhiều startup đang thay đổi cách giao tiếp người tiêu dùng với dịch vụ của họ bằng cách tạo ra các ứng dụng giống như Operator hay x.ai, hay các nền tảng như Chatfuel, và các thư viện bot như Howdy’s Botkit. Microsoft cũng đang released bot developer framework của họ. Rất nhiều công ty đang hi vọng phát triển bot có thể giao tiếp tự nhiên như con người và nhiều rất nhiều tuyên bố sử dụng NLP (Natual language proccessing - xử lý ngôn ngữ tự nhiên) hay kĩ thuật Deep learning để tạo ra bot có khả năng trên. Nhưng với tất cả đều là thổi phồng xung quanh AI, nói ra sự thật từ viễn tưởng thỉnh thoảng rất khó khăn. Trong series này. Tôi muốn sẽ đi trình bày một vài kĩ thuật Deep Learning được sử dụng để tạo ra conversational agents (Chatbot), bắt đầu từ việc giải thích chúng ta đang ở đâu bây giờ, cái gì có thể, và cái gì gần như không thể trong thời gian gần. Chúng ta sẽ tạo chatbot chi tiết trong các bài viết tiếp theo.

Phân loại

Retrieval-Based vs Generative Models. *Retrieval-Based (dễ hơn): *sử dụng một kho được định nghĩa trước các câu trả lời và một vài thuật toán tìm kiếm để chọn ra câu trả lời thích hợp từ đầu vào (câu thoại trước hay câu hỏi) và ngữ cảnh (đang tán tỉnh hay hỏi về sản phẩm điện thoại, …). Thuật toán tìm kiếm có thể đơn giản như là sử dụng các luật , hoặc phức tạp như là kết hợp một vài thuật toán phân lớp machine learning. Những hệ thống này không thể tạo ra bất kỳ từ mới, chúng chỉ lấy một số câu phản hồi (câu trả lời response) từ một tập có sẵn. *Generative model (khó hơn): *không định nghĩa trước câu trả lời. Chúng tự tạo ra câu trả lời (from scratch). Generative models tạo ra dựa trên kĩ thuật machine translation, nhưng thay về chuyển từ ngôn ngữ này sang ngôn ngữ kia, chúng chuyển từ input sang output. Tất cả các phương pháp đều có ưu nhược điểm. Dùng kho dữ liệu được tạo bằng tay như retrieval-based không tạo ra các lỗi cú pháp. Tuy nhiên chúng không thể trả lời các trường hợp chưa nhìn thấy bao giờ cái mà không thích hợp với các câu trả lời đã định nghĩa trước. Vì nhiều lý do, những models này không biết thông tin đối tượng giống như tên được nhắc tới trong hội thoại. Generative models thông minh hơn. Chúng có thể truy xuất thông tin đối từ từ input và phản hồi ấn tượng như bạn đang nói chuyện với con người. Tuy nhiên, những models này thì khó để train, và hay mắc lỗi cú pháp (đặc biệt là câu hội thoại dài), và cần rất nhiều dữ liệu để train. Deep learning có thể được sử dụng cho cả hai loại trên retrieval-based hay generative models, nhưng nghiên cứu thường nhắm tới hướng generative. Kiến trúc deep learning giống như Sequence to Sequence (mình ví dụ dịch tiếng anh sang việt, text to speech, speech to text hay chatbot này) là phù hợp cho tạo ra câu văn và các nhà nhiên cứu hi vọng sẽ có những tiến bộ nhanh trong lĩnh vực này. Tuy nhiên, chúng ta vẫn ở giai đoạn bắt đầu của việc tạo ra generative models giao tiếp hợp lý. Các hệ thống được sử dụng hiện tại thường là retrieval-based.

Long vs Short Conversations

Đoạn hội thoại dài khó tự động hóa. Short-text Conversation sẽ dễ hơn khi mục đích là câu trả lời đơn từ câu đầu vào đơn. Ví dụ, bạn nhận được một câu hỏi từ một người dùng và trả lời với một câu trả lời thích hợp. Long conversations khó hơn, bạn sẽ có nhiều lượt hỏi đáp qua lại và bạn cần phải giữ được thông tin đã nói. Các hệ thống giao tiếp hỗ trợ khách hàng là ví dụ về long conversational với nhiều câu hỏi.

Open Domain vs. Closed Domain

Open domain (khó hơn), người dùng có thể tạo cuộc hội thoại bất kỳ lĩnh vực nào. Không cần thiết phải định nghĩa trước mục tiêu hay ý định. Các cuộc trò chuyện trên các trang mạng xã hội như twitter và reddit là các ví dụ điển hình cho open domain. Chúng có thể đi qua các chủ đề khác nhau. Có vô hạn các chủ đề và sự thật với nhiều hiển biết được yêu cầu để tạo ra câu trả lời hợp lý, đây là một vấn đề khó khăn. Closed domain (dễ hơn), Giới hạn câu đầu vào và câu trả lời bởi vì hệ thống muốn hoàn thành một nhiệm vụ cụ thể. Hệ thống hỗ trợ khách hàng hay trợ lý bán hàng là các ví dụ cho closed domain. Những hệ thống này không cần phải nói về chính trị, chúng chỉ cần hoàn thành các nhiệm vụ cụ thể hiệu quả nhất có thể. Chắc chắn rồi, người dùng vẫn có thể tạo các cuộc hội thoại ở bất kỳ đâu họ muốn, nhưng hệ thống sẽ không cần phải xử lý tất cả các trường hợp và người dùng cũng không mong mỏi điều đó.

Các thử thách thường gặp

Có một số thử thách rõ ràng và không rõ ràng khi tạo một conversational agents hầu hết chúng là lĩnh vực đang được nghiên cứu. Incorporating Context Để tạo ra câu trả lời có ý nghĩa, hệ thống cần kết hợp cả ngôn ngữ học và ngữ cảnh vật lý ( linguistic context and physical context), Trong các cuộc hội thoại dài con người sẽ lưu lại những gì đã nói và những thông tin đã trao đổi. Đây là một ví dụ về ngôn ngữ học. Hầu hết các cách tiếp cận thường thấy là chuyển cuộc hội thoại thành một vector, nhưng đối với một cuộc thoại dài là một thử thách. Kinh nghiệm trong việc tạo ra một End-To-End Dialogue Systems Using Generative Hierarchical Neural Network ModelsAttention with Intention for a Neural Network Conversation Model cả hai đều theo hướng này. Các thông tin như ngày giờ, địa điểm, hay thông tin về người dùng cũng là những thông tin cần thiết Coheret Personality Khi tạo ra các câu trả lời, máy cần phải trả lời một cách thống nhất với các câu đầu vào giống nhau. Ví dụ, bạn muốn lấy cùng một câu trả lời cho “How old are you?” và “What is your age?”. Điều này nghe thì đơn giản, nhưng kết hợp với hiển biết cố định hay cá nhân và trong model là một vấn đề cần nghiên cứu nhiều. Rất nhiều hệ thống học tạo các câu trả lời đúng về ngữ nghĩa, nhưng chúng không được train từ cùng một nguồn thống nhất. Bởi vì họ train dữ liệu từ nhiều người dùng khác nhau. Model giống như A Persona-Based Neural Conversation Model là bước đầu tiên của hướng này về explicitly modeling a personality. Đánh giá model Có nhiều cách để đánh giá cuộc hội thoại của máy bởi các thang đo hoặc không, nó có hoàn thành nhiệm vụ, ví dụ giải quyết vấn đề hỗ trợ khách hàng, trong một cuộc hội thoại. Việc đánh giá cuộc hội thoại là đắt đỏ bởi vì cần ý kiến đánh giá của con người. Thỉnh thoảng không có một mục đích tốt được định nghĩa trước như trong trường hợp với open-domain models. Các thang đo thông thường như BLEU cái mà được sử dụng trong machine traslation và được dựa trên text maching là không phù hợp bởi vì độ hợp lý của câu trả lời có thể chứa các từ hay cụm từ khác nhau. Sự thật, trong How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation các nhà nghiên cứu đã tìm ra không có thang đo thông thường nào tương đương với ý kiến đánh giá của con người. Intention and Diversity (Ý định và đa dạng) Một vấn đề nữa với generative systems là chúng hay trả lời các câu như “That’s great!” hay “I dont’t know” nó được tạo ra bởi rất nhiều trường hợp đầu vào. Một số phiên bản đầu vào của Google’s Smart thường trả lời với “I love you” với bất cứ thứ gì. Một số nghiên cứu đã thử làm đa dạng các hàm mục tiêu khác nhau, tuy nhiên con người thường tạo ra nhiều câu trả lời với cùng một câu đầu vào cụ thể và mang theo chủ định của họ. Bởi vì generative systems (đặc biệt là open domain systems) không được train với ý định cụ thể, đây là loại đa dạng.

Chatbots đã hoạt động tốt đến đâu?

Lấy tất cả các khía cạnh nghiên cứu ở thời điểm hiện tại, chatbot đã đi tới đâu? Cùng nhau xem lại các loại chatbot. Một retrieval-based open domain là không thể bởi vì bạn không bao giờ có thể tạo bằng tay đủ các câu trả lời có thể cover tất cả các trường hợp. Một hệ thống generate open domain thì là cả trí tuệ nhân tạo rộng lớn bởi vì nó cần xử lý tất cả các kịch bản có thể. Chúng ta còn cách rất xa (nhưng một số nhà nghiên cứu đang đi theo lĩnh vực này). Chúng ta quay lại với vấn đề restricted domains cả phương pháp generative và retrieval based đều thích hợp. Trong một buổi phỏng vấn gần đây, Andrew Ng, bây giờ là chuyên gia chính của Baidu, đã nói:

Most of the value of deep learning today is in narrow domains where you can get a lot of data. Here’s one example of something it cannot do: have a meaningful conversation. There are demos, and if you cherry-pick the conversation, it looks like it’s having a meaningful conversation, but if you actually try it yourself, it quickly goes off the rails.

Mình tạm dịch là hầu hết giá trị deep learning ngày nay là các lĩnh vực hẹp, nơi bạn có thể lấy rất nhiều dữ liệu. Dây là một ví dụ về vài thứ nó không làm được: như có một cuộc hội thoại có nghĩa. Có rất nhiều đề mô và nếu bạn chọn ngẫu nhiên một số cuộc hội thoại, nó trông ngữ có ý nghĩa, nhưng nếu bạn thực sự thử nó thì bạn sẽ nhanh chóng nhận ra chúng trật khỏi đường ray. Rất nhiều công ty bắt đầu với việc gia công phần mềm, các cuộc hội thoại với các công nhân và các lời hứa họ có thể tự động nó khi họ thu thập đủ dữ liệu. Điều này có thể xảy ra chỉ nếu họ hướng đến lĩnh vực nhỏ - giống như giao diện chat gọi một Uber. Bất cứ thứ gì có một chút open domain như thư điện tử bán hàng là vượt ra ngoài cái chúng ta có thể làm ở thời điểm hiện tại. Tuy nhiên chúng ta cũng có thể tạo ra các hệ thống trợ lý con người, các đề xuất và các câu trả lời đúng. Chúng là khả thi. Lỗi cú pháp trong các hệ thống là rất tốn kém và có thể đáh lạc hướng người dùng. Đó là lý do hầu hết các hệ thống thường sử dụng phương pháp retrieval based chúng thoải mái với lỗi cú pháp và các câu trả lời phản cảm. Nếu các công ty bằng cách nào đó làm bằng tay nhiều dữ liệu sau đó generative models là khả thi. Nhưng họ phải được sự hỗ trợ bởi các kĩ thuật để ngăn chặn chúng không bị đi xuống như Microsoft’s Tay.

Kết thúc

Nguồn dịch từ [http://Nguồn http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/ ](http://Nguồn http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/) Bài viết từ tháng 4 năm 2016 cũng khá lâu rồi. Chatbot hiện tại có lẽ tiến xa hơn thời điểm viết bài nhiều. Tóm lại, việc sử dụng deep learning để tạo chatbot đã đạt được một số thành tựu, một số khác còn đang nghiên cứu. Các hệ thống hiện tại thường là Retrieval based. Chúng đang hoạt động tốt chỉ trong lĩnh vực nhỏ. Công việc của chúng ta thử tạo ra chatbot của riêng chúng ta. Bài tiếp theo mình sẽ dịch tiếp bài viết về tạo chatbot retrieval based. Cám ơn các bạn!

Sử dụng google colab

TBD

Mở đầu

Trước mình dùng kaggle vừa là chỗ để học, vừa là chỗ để train model. Nhưng mình thấy khó khăn phần ghi file hay lưu data thì mình không lấy được file ngay mà phải commit code, đợi chạy xong rồi vào phần output để tải về. Như thế rất bất tiện. Dùng google colab thì không phải lo chuyện đó.

Sử dụng

Đầu tiên ta truy cập https://colab.research.google.com tạo file notebook mới. Máy mình truy cập thì nó hiển thị tiếng Pháp mình khá bực. Trên menu các bạn chọn Aide (cuối cùng) > Afficher en engl…(cuối cùng)

from google.colab import drive
drive.mount(‘/content/gdrive’)

Phim hay đã xem

TBD

Mở đầu

Danh sách các bộ phim mà mình xem. Danh sách này chắc sẽ dài lắm, ai chẳng thế phải không

Phim viễn tưởng

  • Nhà tù shaw shank
  • Trí tuệ siêu phàm
  • Mr robot
  • Phi thuyền mất tích - Quái vật không gian
  • Cuộc sống tươi đẹp
  • Papillon - Người tù khổ sai

Phim sinh tồn

  • Cast away

Phim truyền hình

  • Gương đen
  • The walking dead
  • Game of thrones

Phim võ thuật

  • Long tranh hổ đấu
  • Mãnh long quá giang

Phim siêu anh hùng

  • Quái vật venom

Phim Việt Nam

  • Quỳnh búp bê

Sách hay đã đọc

Mỗi cuốn sách có một số phận

Mở đầu

Danh sách các sách mình đọc và mình cảm thấy hay.

Văn học trong nước

Văn học trong nước rất hay các bạn ạ. Mình thích đọc truyện ngắn, tiểu thuyết. Ngoài các truyện trong sgk hồi mình học thì đây là các sách mình tự tìm đọc.

  • Bỉ vỏ
  • Cuộc đời ngoài cửa (bố và con gái đi du lịch Việt Nam)
  • Vượt côn đảo

Văn học nước ngoài

Mình đọc khá nhiều tiểu thuyết nước ngoài và mình nhận ra mình không nhớ được nội dung của nhiều truyện. Nhưng mình nghĩ đọc không phải để nhớ, không phải để tìm thấy ý nghĩa, hay tìm câu trả lời gì, mình đọc để cho vui thôi.

  • Hai số phận (Kể về cuộc đời của Kane và Abel)
  • Đồi gió hú
  • Tam quốc diễn nghĩa
  • Không gia đình
  • Cuộc phiêu lưu của Huckfin
  • Người đàn ông mang tên Ove
  • Ông trăm tuổi bốc hơi qua cửa sổ
  • Nơi dòng sông chảy qua
  • Tôi charley và hành trình nước Mỹ (đọc xong mình cũng muốn đi một vòng Việt Nam quá)
  • Khởi sinh của cô độc (mình đọc hết phần đầu)
  • Đi tìm lẽ sống (nói về trại tị nạn ở Đức quốc xã)
  • Tiếng chim hót trong bụi mận gai
  • Những lá thư không gửi
  • Những bức thư không gửi (Thực ra mình định đọc những lá thư không gửi nhưng lại tìm truyện này đọc trước cũng hay - Kể về tình yêu cô gái Nga)
  • Con đầm bích (Truyện ngắn)
  • Chúa ruồi
  • Robinson crusoe
  • Nhật ký của Anne Frank (Cô gái phải trốn cùng gia đình và bị giết thời đức quốc xã)
  • Thuyền trưởng tuổi 15 (kể về một thủy thủ 15 tuổi trên tàu, thuyền trưởng và các thủy thủ đoàn bị chết khi săn cá voi, thủy thủ nhỏ trở thành thuyền trưởng của tàu Hải Âu, nhưng bị nhân vật phản diện là đầu bếp hại và rơi vào tay của những kẻ buôn người)
  • Con trai kẻ khủng bố (kể về con trai của el sayyid nosair có liên quan đến osama binladen - con trai không theo chủ nghĩa cực đoạn - con người là sản phẩm từ trong suy nghĩ của bản thân họ. Họ sẽ trở thành chính những gì họ nghĩ)

Sách khoa học

  • Chúa trời có phải là nhà toán học
  • Hai vạn dặm dưới đáy biển

Truyện mạng (truyện teen, truyện voz)

  • Nhà nàng ở cạnh nhà tôi
  • Nghề Vệ Sĩ - Đời ko như mơ (truyện bác Bob - Voz)

Truyện ma

Trước mình đọc truyện ma, phim ma nhiều lắm. Giờ thì thôi, tại đọc nhiều nó cũng hết mà nội dung thì lại giống giống nhau

  • Ngôi nhà mồ - Người khăn trắng
  • Tuyển tập Nguyễn Ngọc Ngạn

Sách self-help (kiểu truyền cảm hứng)

“A self-help book is one that is written with the intention to instruct its readers on solving personal problems” - Mình không tìm thấy bản giải thích tiếng việt. Sách self-help được viết nhằm dạy cho đọc giả cách để giải quyết các vấn đề cá nhân. Loại sách này mình khá ít đọc.

  • Tôi tài giỏi bạn cũng thế. (Sách dạy cách học, hồi thi đại học mình có đọc, mình cảm thấy có động lực để học tập, nhưng mình cũng không áp dụng được các cách học ở trong sách).
  • Đắc nhân tâm. (Hầu như các lần tra google về sách thì sẽ ra quyển này. Mình thì mình thấy không hay. Mình muốn thoải mái, giao tiếp các thứ mình không nghĩ nhiều như vậy, mình cảm thấy khá giả tạo)
  • Ngoài ra còn một số sách khác như Quẳng gánh lo đi và vui sống, hay Dạy con làm giàu nhưng mình chỉ đọc vài chương có lẽ mình không hợp với thể loại này.

Một số câu hỏi phỏng vấn Machine Learning Engineer

Hoàn thành vào ngày mai (26/11/2018)

  1. Đạo hàm Sigmoid function
  2. Giải 1 bài toán đơn giản dùng Naive Bayes
  3. Trình bày 1 thuật toán sorting bất kỳ
  4. Giải 1 bài toán về trong 1 graph, tìm các cặp đầu-cuối mà có đường đi kết nối chúng với nhau.
  5. Hỏi về Database (câu này mình fail nên họ skip và không hỏi kỹ)
  6. Hỏi về 1 bài toán thực tế mà mình đã làm: Khi mình fine-tunning/chọn một kiến trúc NN để giải bài toán thì mình làm gì + kết quả.
  7. Overfitting là gì?
  8. Các phương pháp tránh overfitting.
  9. So sánh ℓ1 regularization và ℓ2 regularization.
  10. Tại sao BatchNorm giúp thuật toán tối ưu deep learning hội tụ nhanh hơn?
  11. Nêu sự khác nhau của pha training và pha test khi thực hiện BatchNorm.
  12. Khi thực hiện mini-batch gradient desecent, việc mini-batch nhỏ hay lớn có ảnh hưởng như thế nào tới kết quả? Nêu ưu nhược điểm của mini-batch với kích thước nhỏ hoặc lớn.
  13. Trong một bài toán, giả sử rằng thuật toán mini-batch gradient descent làm việc tốt với mini-batch lớn. Tuy nhiên, vì bộ nhớ có giới hạn, ta không thể tính được bachprogagation với mini-batch lớn. Có cách nào sử dụng backpropagation với mini-batch nhỏ để có hiệu quả tương tự như khi sử dụng mini-batch lớn?
  14. Imbalanced data problem là gì?
  15. Có những cách nào để solve imbalanced data không? (Trình bày về Under-sampling và Over sampling)
  16. Khi imbalanced thì nên dùng bộ đo nào để đo độ chỉnh xác của model? (Hỏi về Confusion matrix, ROC Curve)

Các mục tiêu vớ vẩn

Mỗi sáng ở Châu Phi, một con linh dương thức dậy. Nó biết rằng nó phải chạy nhanh hơn con sư tử nhanh nhất nếu không muốn bị giết. Mỗi sáng, một con sư tử thức dậy, nó biết nó phải chạy nhanh hơn con linh dương chậm nhất hoặc nó sẽ bị chết đói. Điều quan trọng không phải ở chỗ bạn là sư tử hay linh dương. Khi Mặt Trời mọc, bạn hãy bắt đầu chạy.

Mở đầu

Trước đây mình cũng đọc một blog và thấy một anh có làm một bài như thế này. Mình thấy rất tuyệt vời. Có những mục đã được gạch bỏ (đã hoàn thành), có những việc đã quá hạn(bôi đỏ) và có rất nhiều mục trong tương lai. Hãy đặt mục tiêu và cùng cố gắng. Sẽ có những lúc sẽ mệt mỏi, hãy nghe một bài nhạc, chơi một nhạc cụ và đi ngủ. Tỉnh dậy chúng ta lại tiếp tục.

2019-08-20

Trước đây mình note những dòng này tại một site khác, mình đã export các bài viết này ra và import vào website này. Hôm nay mới đọc lại và mình đã bỏ qua nhiều quá

Các lời hứa hằng ngày

  • Lên giường ngủ từ 11h30 và thức dậy vào lúc 5h30
  • Chạy bộ vào buổi sáng
  • Ngày nào cũng viết 1 bài blog và 1 video

Các mục tiêu ngắn hạn

  • Hoàn thành cuốn Hai vạn dặm dưới biển trong 3 ngày 30/11/2018 (quá hạn hoàn thành 1/12/2018)
  • Chạy 6km không nghỉ trong một tháng (26/11/2018) đến ngày 25/12/2018 (quá hạn)
  • Hít đất 50 cái trong 1 tháng đến ngày 25/12/2018
  • Hít đất 60 cái trong 2 tháng đến ngày 25/1/2019

Các mục tiêu dài hạn

  • Toeic 700 trong 4 tháng 25/3/2019 (quá hạn)

Đã hoàn thành

  • Hoàn thành bậc đại học trong năm 2018 (Đã hoàn thành 06-2019)

Không thể hoàn thành

  • Tìm một công việc Data Scientist trong vòng 1 tháng nữa 25/12/2018 (đã không làm được hiện tại mình đang làm tại công ty tư vấn giải pháp lâm nghiệp, mình làm công việc như một nhà lập trình viên)

Các lần không thực hiện được sẽ được viết ra ở đây và nêu ra lý do

1.2. Cài đặt python, pip và sử dụng jupyter notebook

TBD

Mở đầu

Trong bài này mình sẽ hướng dẫn các bạn cài đặt các công cụ sử dụng trong các bài hướng dẫn

Cài đặt python

Hiện tại phiên bản python3 mới nhất là bản python 3.7. Nhưng phiên bản Tensorflow hiện tại mới chỉ hỗ trợ bản python 3.6. Nên các bạn truy cập link dưới để tài python 3.6.

Sử dụng pip

Pip là hệ thống quản lý các thư viện, gói dùng trong python. Cũng giống với Maven trong Java, Composer của Php hay Nuget của C# vậy. Không chỉ có pip bạn có thể sử dụng conda thay thế. Bài viết sẽ hướng dẫn sử dụng pip để cài đặt jupyter notebook Sử dụng pip để cài đặt package:

pip install <>

Để gỡ một package

pip uninstall <>

Cài đặt package sử dụng file

pip install -r <<filename.txt>>

Cài đặt và sử dụng jupyter notebook

Cài đặt jupyter notebook sử dụng pip

pip install jupyter

Khởi động jupyter notebook Mở command line của windows hoặc terminal đối với macos hoặc linux

jupyter notebook

Trên trình duyệt sẽ hiện lên danh sách thư mục. Các bạn đã có thể bắt đầu sử dụng. Nhấn vào nút New >> Python để tạo file và bắt đầu dự án mới Jupyter notebook vừa để viết code vừa viết tài liệu. Rất tiện phải không các bạn.

Tham khảo

1. Giới thiệu khóa học machine learning cơ bản

TBD

Mở đầu

Chào các bạn, mình muốn làm một khóa machine learning cho người mới bắt đầu. Mình mong đây sẽ là nguồn tài liệu tiếng việt để cho các bạn mới bắt đầu tìm hiểu machine learning. Các khóa học bằng tiếng anh như khóa Machine learning - Coursera, Deep learning - Coursera, …, các blog tiếng việt như Machinelearningcoban, ongxuanhong đều là các nguồn tài liệu tốt. Mình khuyên các bạn hãy học trên các nguồn này. Đều tốt để bắt đầu. Nhưng nếu các bạn cảm thấy tiếng anh khó quá, kể cả bài viết tiếng việt cũng nhiều toán, bạn đã thử và học không vào. Thì có thể theo dõi khóa này của mình. Mình vẫn sẽ nói về lý thuyết để các bạn hình dung, bên cạnh đó mình sẽ đưa ra nhiều bài tập để các bạn làm quen, thực hành, thực hành và thực hành.

Cần gì để bắt đầu

Ở đâu bạn cũng thấy yêu cầu giải tích, thống kê, xác suất. Bản thân mình, mình là người mới, có lẽ về sau chúng ta mới phải giải quyết các vấn đề về toán, còn hiện tại mình chưa thấy phải lo lắng nhiều. Ít nhất là đối với khóa này của mình. Các bạn chỉ cần có kinh nghiệm lập trình mình sẽ dùng python, về toán chỉ cần các bạn biết cộng nhân ma trận, đạo hàm cơ bản thế là đủ. Nếu các bạn chưa biết thì mình sẽ ra thêm cả khóa python cơ bản nữa. Mình sẽ cố gắng để làm khóa học này, nhưng machine learning, deep learning là lĩnh vực khó, bản thân mình thì chỉ mới tiếp xúc, sẽ có những chỗ mình không hiểu đúng. Mình rất mong phản hồi của các bạn.

Danh sách bài học

Kèm theo blog này là các video hưóng dẫn trên youtube Tạ Minh Luận - youtube channel. Mình sẽ viết blog trước, trình bày slide và làm video hướng dẫn.

  1. Giới thiệu về khóa học machine learning
    • Machine learning và các nguồn học tập
    • Cài đặt python, pip và sử dụng jupyter notebook
  2. Linear Regression với hàm một biến
    • Bài tập: Dự đoán chiều cao từ cân nặng
    • Bài tập: Dự đoán giá nhà
  3. Linear Regression với hàm nhiều biến
    • Bài tập: Dự đoán giá nhà với dữ liệu Boston Housing Dataset
  4. KNN
  5. Decision Tree
  6. Logistic Regression
  7. Softmax Regression
  8. Neural Network
  9. SVM
  10. Recommandation System

Danh sách bài sẽ được cập nhật…

Tham khảo