Hiển thị các bài đăng có nhãn algorithms. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn algorithms. Hiển thị tất cả bài đăng

Thứ Hai, 3 tháng 8, 2020

HOW-TO: Studying and passing Microsoft Azure certification AI-100 and DP-100 in 3 days!!!

👆👆👆,

I registered and passed AI-100 and DP-100 last week. I registered on last Monday and passed the AI-100 on 29-July-2020 and DP-100 on 30-July-2020 ✌. So, I registered, reviewed materials, and took the exam and passed it in 3 days. It is amazing!!! Hehehe, that maybe just my clickbait. Let's celebrate it first, no matter what!!!
Figure 1: My Microsoft certifications from the Microsoft Certification Dashboard portal.

    Let me tell you what the amazing things were about the exam. I did not know what to expect before the exam happened. I used to the exam format such as going to the hall, and write on the papers. Interestingly, I was taking the last exams 7-8 years ago. You registered the exams online, did the exams on a computer software of PEARSON VUE. Because of the COVID-19 situation, I could register the DP-100 exam at a test center in the city center, which is near my place, and I could only register the AI-100 exam at a quite far-away region. I found taking the exam in the far-away test center is more interesting because their measures for COVID-19 is less stringent. I must wear a mask,  and further I need to wear a pair of gloves in the test center in city area. I think a pair of gloves is redundant and reducing their profits during the pandemic 😀. You can wash your hands of viruses with soap, and all your viruses would be washed away, and the situation in Singapore is not that bad. By the way, their gloves were very nice 🧤!!! If you are know how to use a computer software, then you don't need to wary about the test software. After you clicked the button "Finished", your scores would come out immediately 😀. I never have experienced a kind of tests like that, from admitting to university, tests in schools..., and I need to wait at least a few days or months to know whether I pass or fail. This is very amusing to me.

    That is how I passed AI-100 Designing and Implementing an Azure AI Solution with the score of 717, and DP-100 Designing and Implementing a Data Science Solution on Azure with the score of 816. By the way, you need at least 700 the pass the certification.

Now coming to the main story...

Reviewing for two exams

Before the exam, I don't know how to review for the exams, because I never takes any cloud platform or technology exams. I did some searches online and read around some documents in Microsoft Learn websites. Microsoft did a good job to build the learning resources for their technologies and also for preparing for the certification exams. My company also hires an instructor to teach us the two modules, and he also gave an sample exam paper. But I found this exam paper is not really relevant, and their answers are controversial.
    Let's stick with Microsoft (MS) resources for training yourself and preparing for the exam. If your company has an instructor for you, that is great! Learning with interactions would be easier than learning on your owns. First, I would remind you that MS has a portal of anything can be certified, from there, you can navigate into your wanted certification and its learning resources.

DP-100:

The learning path is here. There is a github repo accompanying with the Online-Free course: https://github.com/MicrosoftLearning/DP100. The first module focuses on developing machine learning pipelines with Azure Machine Learning designer with no codes. The second modules teaches what and how to use Azure Machine Learning SDK (Python) to design machine learning pipelines. If a instructor were to teach you, he also cover the contents similar two modules and the github pipeline.

Figure 2: Learning path for DP-100 including two modules.

Let's look at what it is covered in the second module learning Azure Machine Learning SDK
  • Introduction to Azure Machine Learning
  • Train a machine learning model with Azure Machine Learning
  • Working with Data in Azure Machine Learning
  • Working with Compute Contexts in Azure Machine Learning
  • Orchestrating machine learning with pipelines
  • Deploying machine learning models with Azure Machine Learning
  • Deploy batch inference pipelines with Azure Machine Learning
  • Tune hyperparameters with Azure Machine Learning
  • Automate machine learning model selection with Azure Machine Learning
  • Explain machine learning models with Azure Machine Learning
  • Monitor models with Azure Machine Learning
  • Monitor data drift with Azure Machine Learning
Please remember "practice makes it perfect"! There are many questions regarding reading a segment of Python codes, or filling the blank with codes. There is NDA (Non-disclosure agreement) that I signed with MS, hence, I cannot disclose anything further. 

Practice! Practice! Practice! You can register a new Azure account with an email account with some free credits (I remembered around 300$). With that amount, you can practice your skills. When practicing, let focus on setting up an Azure Machine Learning workspace, running experiments and training models, optimizing and managing models, deploying and consuming models. They are as usual as we are doing in jobs as data scientists.

AI-100:
For AI-100, we can follow the same study guides as DP-100. Remembering MS is a nice guy 😆, wants to validate your skills only, and practice makes it perfect.
Figure 3: Learning path for AI-100 including four modules
I found the following github very helpful for reviewing materials after practicing: https://github.com/meet-bhagdev/ai-100

To summarize, we should follow the learning path recommended by MS and practice the lab sessions provided by MS.

P/S: This post is dedicated to my fellow HannLam Woo.
🐘🐘🐘

Thứ Bảy, 1 tháng 8, 2020

Azure! Azure! Azure! chứng chỉ AI-100, DP-100 là gì?

☝☝☝,
Hôm nay, tôi có một tin vui muốn thông báo đến các bạn độc giả là tôi đã được chứng nhận bởi Microsoft (MS) về một kỹ năng. Chắc hẳn, trong một giai đoạn nào đó, tôi cũng như các bạn đã xài lậu hệ điều hành Windows của Microsoft 💥. Thời lúc mới vào đại học, năm 2007, đa số mọi người điều xài Win lậu, vì lúc đó khái niệm bản quyền ở Việt Nam là hơi xa lạ, và vì còn nghèo. Lúc đó, mọi người tìm cách crack Win để xài, hehe. Bây giờ thì tình hình có vẻ khá hơn, vì bây giờ, bạn mua một chiếc máy tính, laptop thì các bạn phải bắt buộc phải mua bản quyền cho Windows hoặc MacOs.

1. Vậy chứng chỉ là gì?

Trở lại chủ đề chính, hình 1 phía dưới là một phần của chứng chỉ (certification) do Microsoft cấp cho tôi tuần này, (được lưu trữ ở Microsoft Certification Dashboard). Chứng chỉ là một chứng nhận mà Microsoft cấp cho bạn nếu bạn vượt qua kỳ thi do Microsòft uỷ quyền cho một công ty chuyên về thi tổ chức (i.e., Pearson VUE). Hai chứng chỉ của tui có thời gian 2 năm đến 29-07-2022, và tôi đã bỏ tên đi vì sự riêng tư.

Câu chuyện mà tôi đi thi để lấy chứng chỉ (Microsoft certification) cũng là do liên quan đến dịch COVID-19. Vì dịch COVID-19, mà công ty của tôi phải làm việc ở nhà, và nhiều người ở Singapore mất việc làm. Công ty tôi cũng hưởng ứng chủ trương của chính phủ Singapore kêu gọi nâng cấp kỹ năng (up-skill) của người làm việc trong thời kì dịch bệnh, để sau khi kinh tế khôi phục, thì mọi người có thể tìm được việc mới. Mà quan trọng hơn, Microsoft có đầu tư trong công ty tôi, và công ty tôi cũng sử dụng nền tảng điện toán đám mây Azure của Microsoft, nên công ty có tổ chức lớp học về những công nghệ Microsoft. Và thế, tôi đăng ký học và thi đậu 2 kỳ thi liên quan đến công việc mà tôi đang làm, 
AI-100 Designing and Implementing an Azure AI solution DP-100 Désigning and Implementing a Data Science Solution on Azure 💪. Hehe!!!

    Kỳ thi diễn ra trên máy tính, và tôi phải đến một trung tâm để thi. Sau khi bạn hoàn thành bài thi trên máy tính, thì bạn sẽ biết kết quả liền. Ở Việt Nam, các bạn có thể thi ở trung tâm Trainocate, địa chỉ trên website của họ. Tôi có kinh nghiệm trong lĩnh vực này và không có nhiều thời gian nên tôi quyết định đăng ký và thi trong tuần này. Tôi đăng ký vào thứ 2, và thi vào ngày thứ 4 và thứ 5. May mắn thay, tôi đã đậu kỳ thi AI-100 với số điểm 717 và DP-100 với số điểm 816 (với 700 điểm, bạn sẽ đậu). Yeah!!!💫💫💫

    Nói một cách vắn tắt, AI-100 là chứng chỉ về những công nghệ liên quan đến trí tuệ nhân tạo (Artificial Intelligence), và DP-100 tập trung vào những công nghệ về học máy, khoa học dữ liệu (machine learning, data science) của Azure. Tôi sẽ viết một blog khác về học những chứng chỉ này như thế nào.

Figure 1: Chứng chỉ tin học đầu tiên của đời tôi.

2. Vai trò của chứng chỉ

Lúc đầu, tôi cảm thấy rất vui vì những cái huy hiệu đẹp phía dưới. Tôi có thể làm gì cho chứng chỉ này 😆? Theo như người thầy dạy tôi 2 môn này, posting những chứng chỉ này lên Linkedin, và viết trong CV thì có thể giúp chúng ta có cơ hội được liên hệ với những công việc liên quan đến Azure cloud. Cũng theo như ông ấy, sau khi vượt qua kỳ thi này, chúng ta có thể được gọi là MSP, Microsoft professionals (gọi như, những người hành nghề công nghệ Microsoft). Những chứng chỉ này giống như bằng tin học hoặc tiếng Anh A, B, C hồi xưa, nhưng ở lĩnh vực chuyên môn sâu hơn.
    Hơn thế nữa, với việc đạt được chứng chỉ này, tôi có thể tiến hành những thủ tục tiếp theo để trở thành một Microsoft Certified Trainer (MCT, đại khái, người đào tạo về công nghệ Microsoft). Cũng là một lựa chọn cho công việc sắp tới của tôi. Những kiến thức trong 2 chương trình này, làm cho tôi có nhiều lựa chọn trong việc sử dụng công nghệ trong công ty: tự hiện thực, open-source, Azure, AWS, GCP.
      Bàn một chút về chứng chỉ của MS, MS Azure có 3 loại chứng chỉ: fundamental (1 sao), associate (2 sao), expert (3 sao). Các bạn cũng thấy, chứng chỉ của mình thuộc loại associate có 2 sao. Do lĩnh vực data science và AI tương đối mới, nên hiện giờ, chứng chỉ cao nhất là associate, chắc là sau này sẽ có trình độ expert nếu công nghệ này được ứng dụng và phát triển rộng rãi trong tương lai. Vì vậy, tuỳ theo công việc hiện tại bạn đang làm và sở thích, bạn có thể chọn chứng chỉ cho phù hợp (i.e, toàn bộ danh sách chứng chỉ của Azure).👈
Figure 2: Huy hiệu (badge) của chứng chỉ AI-100 được cấp từ Microsoft.

Figure 3: Huy hiệu (badge) của chứng chỉ DP-100 được cấp từ Microsoft.

Bài liên quan:

P/S: Các bạn có thể sử dụng hệ điều hành open-source như Ubuntu nếu các bạn không chơi game nhiều.🐘🐘🐘
Bình luận 👇👇👇

Thứ Hai, 5 tháng 2, 2018

C++ Algorithm 101: get index of sort algorithm

Hi,
Do you wonder to ask how to get index of a sorted array in C++. The answer is not straightforward, but tangible with C++11 lambda. Keep it in your C++ toolbox, you might need it quite often. I hope people will include some ways to do it easily in C++ next version.

template <typename T>
vector<int> sort_indexes(const vector<T> &v) {

  // initialize original index locations
  vector<int> idx(v.size());
  iota(idx.begin(), idx.end(), 0);

  // sort indexes based on comparing values in v
  sort(idx.begin(), idx.end(),
       [&v](size_t i1, size_t i2) {return v[i1] < v[i2];});

  return idx;
}
See you in the next post. Happy 2018 with productivity.

Thứ Tư, 18 tháng 11, 2015

Programming languages 101: Python containers vs. C++ containers

Hi all,
    I am always fascinated about programming languages, computer science and technology in general. At a dinner with my friends, we were discussing about programming languages Python, R, Fortran, C/C++ and data science. At a particular time, we were moving into an topic with a simple question how to implement linked-list in Python. For an experienced programmer like me, it is quite ridiculous for me to ask this question, because we do not need it in most cases. I think that Python will take care of basic data structures for you and you just use it. Python uses C to implement basic data structures for you, called CPython. And if you are crazy enough or want to reinvent the wheel or implement a new data structure, you can implement it in C/C++ and bind it to Python.
    So, I spent that a whole night to rethink about a new question: What underlying implementation of Python container list [] and what is the equivalence containers/implementations in C++?
    At first, I think the equivalent container in C++ would be vector. In the end, it has a slight  difference in their implementation. The implementation of Python list uses a contiguous array of references to other objects, and keeps a pointer to this array and the array’s length in a list head structure. Some explanations can found at [1], [2]. The intuitive idea is represented through this simple picture.
Courtesy from Laurent Luce [2]
The first left column represents array of pointers to keep tracking of Python objects. The right column represents Python objects itself. Any insertion, append, removal of elements would affect arrangements of the first column (array of pointers), but not on the second column (Python objects). In fact, moving expensive Python objects around is more than costly than its pointers. In contrast, C++ vector utilizes array as underlying storage mechanism. In a sense, Python list [] is better than C++ vector in the insert operation. In particular, if you insert an element in the middle of the array, the Python list just only need to shift references of Python objects, while C++ need to shift the C++ objects to new positions. The efficiency, you can imagine, is usually between moving heavy class objects and moving slight pointers. However, C++ offers more containers that are suitable your need. For example, if you want to insert objects frequently, it is efficient to use C++ lists (implemented by a double linked-list).
typedef struct {
    PyObject_HEAD
    Py_ssize_t ob_size;

    /* Vector of pointers to list elements.  list[0] is ob_item[0], etc. */
    PyObject **ob_item;

    /* ob_item contains space for 'allocated' elements.  The number
     * currently in use is ob_size.
     * Invariants:
     *     0 <= ob_size <= allocated
     *     len(list) == ob_size
     *     ob_item == NULL implies ob_size == allocated == 0
     */
    Py_ssize_t allocated;
} PyListObject;

    For me, Python is still new. And I think the best way to learn and understand a language is to ask simple and stupid questions like this. I have recently admired the development of Python language because it is motivated and evolved from exciting huge efforts of an open-source community.
    Of course, the container are quite an important concept of a programming language. The container in Python includes list, tupple, dict, string and something else. The container in C++11 includes vector, list (equivalent to Python list), forward_list (single linked-list), map (similar concept to Python dict), unorder_map, deque (double linked-list queue), string, and something else.
    Today, I have motivations to write blogs in Vietnamese. I decided that this blog is bilingual, i.e., English and Vietnamese. For me, it is easier to write technical contents in English, although Vietnamese is my mother tongue. It is because I tried to adapt to technical contents around Internet in English when I first came to learn computer science in university. Now, I find it hard to describe some technical concept in Vietnamese, especially with fast-pace changing field like Computer Science (CS). Overall, it is helpful because it is fun to contribute back to the community.

References:
[1] http://stackoverflow.com/questions/3917574/how-is-pythons-list-implemented
[2] http://www.laurentluce.com/posts/python-list-implementation/